Skip to content

MALAI

com.itsmalai/malaiitsmalai.comstreamable-httpv1.1.0Scanned

GLP-1 nutrition companion: your food log, protein targets, next meals, plus USDA food facts.

11 tools: 4 change things and 7 only read.

Tools: 0 delete, 0 irreversible, 4 write, 7 read.
  • Reads private data · 1
  • Reads text others write · 0
  • Can send data out · 0
  • 1 finding

Anlyon alternative

4 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

11 tools

Changes things 4Claude Code: ask
  • malai_calculate_daily_targetsMALAI: Estimate daily calories, protein, carbs, fat and fiber from sex, age, height, weight, activity and goal, with MALAI's safety limits (a calorie floor and a cap on the rate of…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    MALAI: Estimate daily calories, protein, carbs, fat and fiber from sex, age, height, weight, activity and goal, with MALAI's safety limits (a calorie floor and a cap on the rate of loss). Same calculator the MALAI app uses. Use for "how many calories should I eat on Wegovy", "what macros to lose 1 lb a week". Adults only. Don't use for a signed-in user's saved targets (that is malai_get_nutrition_targets).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • malai_calculate_protein_targetMALAI: Calculate a daily protein range for someone on a GLP-1 medication from their body weight: 1.2–1.6 g per kg, the 2025 joint advisory range for weight loss, split into per-mea…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    MALAI: Calculate a daily protein range for someone on a GLP-1 medication from their body weight: 1.2–1.6 g per kg, the 2025 joint advisory range for weight loss, split into per-meal amounts. Same method as MALAI's protein calculator. Use for "how much protein should I eat on Zepbound", "I weigh 210 lb, what's my protein target". Don't use for a signed-in user's saved MALAI target (that is malai_get_nutrition_targets).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • malai_log_foodMALAI: Log food or drink the user says they ate into their MALAI food log, from their own words, e.g.1 finding

    Why it is in this group

    • The name "malai_log_food" says "log": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "malai_log_food" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "malai_log_food" says "log": a word for reading.

      What this check looks for
    Description, as the server wrote it
    MALAI: Log food or drink the user says they ate into their MALAI food log, from their own words, e.g. "2 boiled eggs", "a protein shake", "half my chicken rice bowl". Use whenever the user says they ate, drank, or want to log something. Step 1: call with text only; MALAI returns matching options from its food database and the user's saved recipes. Step 2: confirm the right option with the user (or pick the clear best match), then call again with itemId, itemType and amount/unit. Returns what was logged and today's updated protein. Pass requestId on step 2 so a retry never logs twice. The returned entryId identifies the entry.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • malai_suggest_next_mealMALAI: Get personalised ideas for the user's next meal or snack, chosen by MALAI from their saved recipes and MALAI's GLP-1-friendly recipes to close today's protein gap at this ti…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    MALAI: Get personalised ideas for the user's next meal or snack, chosen by MALAI from their saved recipes and MALAI's GLP-1-friendly recipes to close today's protein gap at this time of day. Use for "what should I eat", "what's for dinner", "I'm hungry", "something light with protein". Returns up to 3 options with protein and calories. To log one, call malai_log_food with the values in its logWith field.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 7Show 7 read-only tools
  • malai_get_body_profileMALAI: Read the user's body profile in MALAI: age, sex, height, weight, activity level, goal and units.No findings

    Why it is in this group

    • The name "malai_get_body_profile" says "get": a word for reading.
    Description, as the server wrote it
    MALAI: Read the user's body profile in MALAI: age, sex, height, weight, activity level, goal and units. Use before advice that depends on their body or goal. If isPlaceholder is true the profile was never filled in; tell the user and suggest completing it in the MALAI app rather than quoting numbers based on it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • malai_get_food_logMALAI: Read what the user actually logged in MALAI across a date range: their real history, not a plan.No findings

    Why it is in this group

    • The name "malai_get_food_log" says "get": a word for reading.
    Description, as the server wrote it
    MALAI: Read what the user actually logged in MALAI across a date range: their real history, not a plan. Use for "what did I eat yesterday", "what did I have this week", "how has my protein been lately". Defaults to the last 7 days. Returns each entry with its entryId, meal and nutrition, and a total.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • malai_get_medication_guideMALAI: Get MALAI's guide to a GLP-1 medication (Ozempic, Wegovy, Mounjaro or Zepbound): dose steps, common side effects with trial frequencies and food tips, what to eat, treatment…No findings

    Why it is in this group

    • The name "malai_get_medication_guide" says "get": a word for reading.
    Description, as the server wrote it
    MALAI: Get MALAI's guide to a GLP-1 medication (Ozempic, Wegovy, Mounjaro or Zepbound): dose steps, common side effects with trial frequencies and food tips, what to eat, treatment phases, the first week, and FAQs, citing prescribing information. Use for "what are Mounjaro side effects", "what should I eat in my first week on Wegovy". Never use it to recommend a dose change, skipping or stopping; tell the user to ask their prescriber.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • malai_get_nutrition_targetsMALAI: Read the user's daily nutrition targets from MALAI: calories, protein, carbs, fat, fiber, plus BMR and TDEE.No findings

    Why it is in this group

    • The name "malai_get_nutrition_targets" says "get": a word for reading.
    Description, as the server wrote it
    MALAI: Read the user's daily nutrition targets from MALAI: calories, protein, carbs, fat, fiber, plus BMR and TDEE. MALAI calculates these from the user's profile and GLP-1 needs; use them exactly as given rather than calculating your own. Use when the user asks about their goals, their protein target, or whether an amount is enough.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • malai_get_saved_recipesMALAI: List the recipes and foods the user saved in MALAI, with the meal times each is marked for and per-serving nutrition.No findings

    Why it is in this group

    • The name "malai_get_saved_recipes" says "get": a word for reading.
    Description, as the server wrote it
    MALAI: List the recipes and foods the user saved in MALAI, with the meal times each is marked for and per-serving nutrition. Use for "what recipes do I have", "show my saved meals", or to suggest something the user already likes.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • malai_get_today_nutritionMALAI: Get what the user has eaten today against their MALAI targets: calories, protein, carbs, fat and fiber eaten vs target, what is left (especially protein), and how many entri…No findings

    Why it is in this group

    • The name "malai_get_today_nutrition" says "get": a word for reading.
    Description, as the server wrote it
    MALAI: Get what the user has eaten today against their MALAI targets: calories, protein, carbs, fat and fiber eaten vs target, what is left (especially protein), and how many entries are logged. Use for "how am I doing today", "how much protein do I have left", "am I on track", or before suggesting what to eat. These are the user's real logged numbers; do not estimate them.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • malai_search_foodsMALAI: Look up nutrition for a food in MALAI's database (USDA FoodData Central, US foods): calories, protein, carbs, fat, fiber, saturated fat and sugar per serving (or per 100 g),…Reads private dataNo findings

    Why it is in this group

    • The name "malai_search_foods" says "search": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "database": it reads databases.
    Description, as the server wrote it
    MALAI: Look up nutrition for a food in MALAI's database (USDA FoodData Central, US foods): calories, protein, carbs, fat, fiber, saturated fat and sugar per serving (or per 100 g), plus the share of calories from protein. Use for "how much protein is in cottage cheese", "compare tofu and chicken", "is a turkey sandwich high in protein". A null value means unknown, not zero. Don't use to log food (that needs a MALAI account: malai_how_to_connect).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged untrusted-input or outbound.

Reads private data1
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write0
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "malai_log_food" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "malai_log_food" says "log": a word for reading.

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http malai https://mcp.itsmalai.com/mcp
claude mcp add --transport http malai https://mcp.itsmalai.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__malai__malai_get_today_nutrition",
      "mcp__malai__malai_get_food_log",
      "mcp__malai__malai_get_nutrition_targets",
      "mcp__malai__malai_get_saved_recipes",
      "mcp__malai__malai_get_body_profile",
      "mcp__malai__malai_search_foods",
      "mcp__malai__malai_get_medication_guide"
    ],
    "ask": [
      "mcp__malai__malai_log_food",
      "mcp__malai__malai_suggest_next_meal",
      "mcp__malai__malai_calculate_protein_target",
      "mcp__malai__malai_calculate_daily_targets"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as malai. Review it before you use it.

Capability tags behind 1 rule
  • mcp__malai__malai_search_foods private-data

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/com.itsmalai/malai/verify?hash=2ce52c032ce53dde30917bab12e0425805eddb40b37603715c735b61f7b6c2c3" | jq -e '.changed == false'

Pinned hash 2ce52c032ce5, from Nov 4, 2026, 12:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/com.itsmalai/malai/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for com.itsmalai/malai
[![anlyon.dev](https://anlyon.dev/badge/com.itsmalai/malai.svg)](https://anlyon.dev/servers/com.itsmalai/malai)

Source: MCP Registry. Synced Nov 4, 2026, 12:17 UTC.