Skip to main content
Glama

Server Details

Nutrition for more than 1,100 plant foods from 30 national tables, plus GB/EU & US claim checking

Ownership verified
Status
Healthy
Uptime
100.0% over 40 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
Chandata/heathy-mcp
GitHub Stars
0
Server Listing
heathy-mcp

TDQS

A4/5.0

Scored across 8 tools

Disambiguation4/5

Each tool targets a distinct purpose: lookup_food (single-food profile), nutrient_ranking (comparative ranking), search_foods (slug resolution), search_recipes (recipe discovery), get_recipe (recipe detail), health_topic (goal guidance), herb_monograph (herb monographs), and check_claim (regulatory claims). The search/detail pairs are clearly separated, and descriptions explicitly cross-reference to disambiguate (e.g. search_recipes points to get_recipe, health_topic notes it covers goals). Minor risk of confusion between health_topic and search_recipes since both can be reached via a health goal, but the descriptions draw the line.

Naming Consistency3/5

Five tools follow a verb_noun pattern (check_claim, get_recipe, lookup_food, search_foods, search_recipes), but three are bare noun phrases (health_topic, herb_monograph, nutrient_ranking). It's a mixed convention though still readable and intuitive.

Tool Count5/5

Eight tools is well-scoped for a nutrition domain: two search tools, two detail tools, and four analysis/domain tools each with a clear role. No tool feels redundant or padding.

Completeness4/5

The surface covers discovery (search_foods, search_recipes), retrieval (lookup_food, get_recipe, herb_monograph), analysis (nutrient_ranking, check_claim), and guidance (health_topic) — a full lifecycle for the domain. Minor gaps: no direct food comparison tool (nutrient_ranking is one-directional) and no way to enumerate available health topics/claims beyond omission flags, but these are workable.

Available Tools

8 tools
check_claimCheck nutrition claims against GB/EU and US rulesA
Read-onlyIdempotent
Inspect

For a RAW or minimally-processed whole food, or an unfortified single-ingredient flour, report which nutrition claims ("source of iron", "high in vitamin C", "high fibre") the published data supports under GB/EU rules (15%/30% of NRV per 100 g, Reg. 1924/2006) and US rules (10-19%/20% of DV per RACC, 21 CFR 101.54), and flags where that answer depends on which national food-composition table was used, since the 30 tables reconciled here disagree on the same food by a median of 1.96x. Applies to claims wherever they appear, including websites and advertising (Reg. 1924/2006 Art. 1(2)), not only packaging. NOT valid for cooked or manufactured products — their composition depends on recipe and processing. Screening only: under Art. 5(1)(b)(i) the nutrient must be in THE FINAL PRODUCT, so a supported claim still needs an analysis of the producer's own produce. Results list the tables that do and do not support each claim; the tool does not select a qualifying table.

ParametersJSON Schema
NameRequiredDescriptionDefault
foodYesFood slug or name — e.g. "banana", "brazil-nuts".
marketNoWhich rules to apply. Default "both" — the divergence is usually the point.
nutrientNoOptional: check one nutrient only, e.g. "potassium".
preparationNoMust be "raw" (the default). This tool holds raw and minimally-processed commodity data only and REFUSES anything else, because cooking changes composition in both directions — vitamin C and folate are destroyed while minerals concentrate as water is lost. If the food you are asking about has been cooked, juiced, or made into a product, do not call this tool: its answer would not describe your product, and a nutrition claim is a legal statement about the product actually sold.
only_permittedNoOptional: return only claims the data supports, dropping the ones that fail.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds substantial behavior: it REFUSES non-raw input, warns that the 30 reconciled tables disagree by a median of 1.96x, and states it does not select a qualifying table. It does not describe pagination or latency, but for a screening tool this is strong disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with scope and the NOT-valid exclusion, with a clear screening-only qualifier at the end. It is long, and the raw/preparation reasoning partly restates the schema's own parameter description, so a few sentences do not fully earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must carry the return contract, and it does: results list the tables that do and do not support each claim and the tool does not pick a qualifying table. Combined with the scope and refusal rules, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the schema already documents every parameter in detail. The description adds genuine meaning on top: the market default is justified ("the divergence is usually the point"), which tells the agent why 'both' matters rather than just what it does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (report which nutrition claims the published data supports) and immediately scopes it to GB/EU and US rules with concrete thresholds. It is unmistakably distinct from every sibling (lookup_food, nutrient_ranking, search_foods), none of which evaluate legal claim thresholds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use (raw or minimally-processed whole food, unfortified single-ingredient flour) and when-not (cooked, juiced, or manufactured products), and instructs the agent not to call it in those cases. The screening-only caveat under Art. 5(1)(b)(i) further bounds what the result means.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recipeGet a raw recipeA
Read-onlyIdempotent
Inspect

Get one Heathy recipe in full: ingredients with their food slugs and gram weights, method, per-serving nutrition, allergens and carbon footprint. All recipes are original, strictly raw / no-cook and vegan. The nutrition is computed from the ingredient food rows rather than entered by hand, so each figure traces back to the national datasets lookup_food cites. Accepts a slug or the recipe name; use search_recipes to find one.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeYesRecipe slug or name — e.g. "dragon-fruit-coconut-breakfast-bowl".

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds value beyond annotations by disclosing that recipes are original and strictly raw/no-cook/vegan, and that nutrition is computed from ingredient food rows traced back to national datasets cited by lookup_food. This gives useful context about data provenance and content characteristics. No contradictions found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused paragraph that front-loads the core purpose ('Get one Heathy recipe in full') and then adds supporting details about contents, recipe origin, nutrition computation, and how to find a recipe. Every sentence contributes information, though it is slightly dense; it could be trimmed without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schema, the description explicitly lists the return contents (ingredients, method, per-serving nutrition, allergens, carbon footprint), which is the critical information for an agent. It also explains nutrition provenance. It does not mention error behavior or not-found handling, but for a read-only, idempotent single-item get tool, that is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes the single 'recipe' parameter as a slug or name with an example. The description largely restates this ('Accepts a slug or the recipe name') and points to search_recipes for discovery, but it doesn't add new format details or semantics beyond what the schema provides. Baseline 3 is appropriate when the schema handles parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get one Heathy recipe in full') and enumerates the contents (ingredients with food slugs and gram weights, method, per-serving nutrition, allergens, carbon footprint). It also distinguishes itself from search_recipes by explicitly noting it accepts a slug or name, showing the agent which tool to use for retrieval vs discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly directs the agent to use search_recipes when it needs to find a recipe ('use search_recipes to find one'), creating a clear when-to-use vs when-not-to-use boundary. It also describes the recipe characteristics (original, raw/no-cook, vegan) so the agent can decide if this tool satisfies the query.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

health_topicEat for a health goalA
Read-onlyIdempotent
Inspect

What to eat for a health goal — the nutrients involved, why each one, and which raw recipes carry them — the "what should I eat for X" question. Accepts a goal ("gut health", "bone-health") or a named condition ("PCOS", "ADHD", "anaemia"): condition names resolve even though topic titles are physiological. Topics often looked up alongside a diagnosis include a note on what the evidence does and does not support, with its own evidence rating; for ADHD and autism the note states that diet is not a treatment, per NICE. Omit the argument to list every topic.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoGoal slug or title, or a condition name — e.g. "digestion-gut", "PCOS", "anaemia". Omit to list all topics.
include_recipesNoInclude raw recipes carrying this goal. Default true.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe read (readOnly, idempotent, non-destructive), so the description is free to add domain behavior — condition names resolving despite physiological titles, the presence of evidence notes with their own rating, and the NICE-based caveat that diet is not a treatment for ADHD/autism. That is meaningful behavior beyond the annotations; only return/pagination detail is absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the accepted argument forms are front-loaded, and each sentence carries distinct information about inputs and evidence behavior. It is fairly dense in the middle, but no sentence is redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only lookup with full annotation coverage and no output schema, the description supplies enough: what it returns conceptually (nutrients, reasons, recipes), input resolution rules, and the caveat content. Return format detail is omitted, but that is a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics: condition names ("PCOS", "anaemia") resolve even though topic titles are physiological, and omitting the argument lists everything. This clarifies the topic parameter's accepted forms beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource (goal-oriented nutrition topics) and scope (nutrients, rationale, raw recipes), and frames the exact question it answers ("what should I eat for X"). It clearly distinguishes itself from narrow siblings like lookup_food or nutrient_ranking by covering the goal-level synthesis, though it never names a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent the trigger question ("what should I eat for X") and the argument forms that work (goal vs. named condition), plus the no-argument behavior. It gives clear context but no explicit exclusions or direct routing to alternatives such as search_recipes or nutrient_ranking.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

herb_monographAyurvedic herb monographA
Read-onlyIdempotent
Inspect

Get a sourced monograph for an Ayurvedic herb, with traditional use and modern research kept strictly separate and never blended: traditional records what the tradition claims, modern records what research shows with an evidence tier (1 = strongest). Each response includes attribution, disclaimer, source_url and a safety block with cautions, pregnancy guidance and drug interactions. Accepts English, Sanskrit, Hindi or botanical names ("turmeric", "haldi", "Curcuma longa").

ParametersJSON Schema
NameRequiredDescriptionDefault
herbYesHerb slug or name — English, Sanskrit, Hindi, or botanical.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial non-annotation detail: traditional and modern content are 'never blended', evidence tiers are ranked (1 = strongest), and each response carries attribution, disclaimer, source_url and a safety block with cautions, pregnancy guidance and drug interactions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded in the first clause and every subsequent clause carries real information (separation rule, tier semantics, return fields, accepted inputs). It is dense and slightly run-on, but nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully compensates by enumerating the returned blocks and their contents, and the annotations already carry the read/idempotency profile. An agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already lists the four accepted name languages, so the baseline is 3; the description earns an extra point by giving concrete interchangeable examples ('turmeric', 'haldi', 'Curcuma longa') that make the lookup key's flexibility unambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get a sourced monograph for an Ayurvedic herb') and immediately differentiates the payload structure (traditional vs modern, evidence tier, safety block) in a way that separates it from siblings like check_claim, health_topic or lookup_food.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the resource ('Ayurvedic herb') and the accepted name forms are given, but there is no explicit when-to-use/when-not statement and no sibling is named as an alternative (e.g. check_claim for verifying a specific assertion). Adequate but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_foodLook up a foodA
Read-onlyIdempotent
Inspect

Get the full per-100 g nutrient profile of a whole plant food, reconciled across up to 30 national food-composition tables (USDA, UK CoFID, IFCT India, Ciqual, BLS, Fineli, and more). Unlike a single-source table, every value reports how many sources contributed, which ones, and the per-source spread — so the number can be cited rather than asserted. Covers Indian foods from IFCT 2017 (ICMR–NIN, India). Accepts a slug ("bitter-gourd") or a plain or regional name ("karela", "chickoo").

ParametersJSON Schema
NameRequiredDescriptionDefault
foodYesFood slug, common name, or regional alias.
nutrientsNoOptional nutrient slugs or names to return (e.g. ["iron","vitamin-c"]). Omit for the full profile of 132 nutrients (plus 66 research-tier).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is lower. The description goes well beyond them by disclosing the data provenance model — up to 30 tables, per-source contribution counts, and per-source spread — which tells the agent the values are citable and not asserted, plus the 132-nutrient plus 66 research-tier breadth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core capability, then the differentiator, then accepted input formats — efficient and well ordered. Minor redundancy: 'Covers Indian foods from IFCT 2017 (ICMR–NIN, India)' restates IFCT India already named in the source list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters, no output schema, and rich annotations, the description is nearly sufficient: it explains what comes back (full nutrient profile with source attribution) and what inputs work. It omits behavior for ambiguous names and whether a partial-match returns one record or several, which would matter for a lookup tool without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so a baseline of 3 applies. The description adds real meaning beyond the schema's terse 'Food slug, common name, or regional alias' by giving concrete alias examples ('karela', 'chickoo') and the slug form ('bitter-gourd'), which clarifies the fuzzy-match behavior the agent should expect. The optional nutrients filter is left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Get the full per-100 g nutrient profile of a whole plant food,' with the distinguishing trait of multi-source reconciliation. It contrasts itself with 'a single-source table' rather than naming sibling tools like search_foods, so the differentiation is topical rather than tool-directed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (look up a food you can name to get its nutrient profile) but there is no explicit when-to-use versus search_foods, no note on what to do if the name is ambiguous, and no stated exclusions. The accepted-input sentence is helpful context but not routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nutrient_rankingRank foods by a nutrient
Read-onlyIdempotent
Inspect

Ranks whole plant foods by the amount of one nutrient per 100 g of edible portion, optionally within one food category. Each row of results gives the value per 100 g, the number of sources behind it and, where heathy.org holds a typical serving for the food, that serving and the amount in it; the order is per 100 g. Foods eaten a few grams at a time (dried herbs, spices, tea leaves, and dried seaweed, mushrooms and vegetables) are not ranked in results. They are reported beside it in also_higher.small_amounts: a count of those holding more per 100 g than the last row, and the first five. They are ranked in results when include_small_amounts is true, and when the category filter selects mostly such foods ("spice", "tea", "seaweed"). With min_sources above 1, foods measured by fewer sources are reported in also_higher.fewer_sources in the same way. A nutrient that reads 0 on every food returns an explanation in all_zero and no ranking.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results, 1–100. Default 20.
categoryNoOptional substring filter on the food category — e.g. "fruit", "legume", "millet".
nutrientYesNutrient slug or name — e.g. "iron", "vitamin-c", "folate".
min_sourcesNoSmallest number of sources behind a value for its food to be ranked in results (1–32). Default 1. Above 1, foods measured by fewer sources are counted in also_higher.fewer_sources.
include_small_amountsNotrue ranks the foods eaten a few grams at a time (dried herbs, spices, tea leaves, dried seaweed, mushrooms and vegetables) in results with every other food. Default false.
search_foodsSearch foods and herbsA
Read-onlyIdempotent
Inspect

Find the Heathy slug for a food or Ayurvedic herb by name, including regional and non-English aliases (Hindi, Sanskrit, botanical names). Resolves a plain-English or local name to the slug that lookup_food and herb_monograph accept. Returns ranked candidates rather than guessing a single answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoRestrict to foods or Ayurvedic herbs. Default "any".
limitNoMax results, 1–50. Default 10.
queryYesName, partial name, or alias — e.g. "haldi", "bitter gou".

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and openWorld=false, so the safety profile is covered. The description adds genuinely new behavioral context: it returns ranked candidates rather than guessing a single answer, which tells the agent to expect a disambiguation list. No auth, rate limit, or tie-breaking detail beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the action, followed by the routing purpose and the return-shape caveat. Every sentence earns its place with no restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description characterizes the return as ranked candidates, which is the key thing an agent needs. Combined with the 100%-covered input schema and read-only annotations, only minor gaps remain (e.g., no hint on how to pick among candidates).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so query, kind, and limit are already documented with examples and defaults. The description reinforces alias coverage (Hindi, Sanskrit, botanical names) but does not add syntax or semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (find/resolve) and resource (Heathy slug for a food or Ayurvedic herb), and explicitly contrasts with lookup_food and herb_monograph, which consume the slug rather than produce it. An agent can distinguish this from its siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly frames the use case: resolving a plain-English or local name to the slug that lookup_food and herb_monograph accept. The alternative consumers are named, but there is no explicit when-not-to-use guidance (e.g., versus nutrient_ranking or search_recipes) beyond the slug-resolution framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_recipesSearch raw recipesA
Read-onlyIdempotent
Inspect

Find raw / no-cook vegan recipes on Heathy by free text, health goal, category, ingredient, time or allergen. Every recipe is original and its per-serving nutrition is computed from the same food rows lookup_food returns, so figures are checkable rather than asserted. Returns ranked summaries — call get_recipe with a slug for ingredients, method and full nutrition. health_topic covers what the evidence supports for a goal or a named condition.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNoRestrict to recipes carrying this health goal.
limitNoMax results, 1–50. Default 10.
queryNoFree text over name, description and tags — e.g. "dragon fruit", "breakfast".
categoryNoRestrict to one recipe category.
max_timeNoMaximum total time in minutes.
ingredientNoFood slug or name that must appear in the ingredients — e.g. "pitaya-raw".
exclude_allergensNoDrop recipes containing any of these allergens — e.g. ["tree-nuts","sesame"].

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds meaningful context beyond that: results are ranked summaries, nutrition is computed from the same food rows lookup_food returns (checkable rather than asserted), and recipes are original.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and the routing instruction in the second sentence. The trailing sentence about health_topic is tangential to this tool and slightly dilutes focus, but the whole is still compact and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does explain that results are ranked summaries with a follow-up path. It omits any mention of result-count behavior or pagination beyond the limit parameter, which is a minor gap for a 7-parameter search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and every filter is already documented, so the baseline is 3. The description enumerates the same dimensions (free text, health goal, category, ingredient, time, allergen) without adding syntax or format detail; the health_topic remark is about a sibling tool rather than clarifying a parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Find) and resource (raw/no-cook vegan recipes on Heathy) plus the filter dimensions, and implicitly distinguishes itself from get_recipe by positioning itself as the summary-level search. An agent can tell it apart from search_foods and nutrient_ranking from the wording.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to get_recipe with a slug for full detail, which is clear context for when this tool is sufficient vs. when a follow-up is needed. It does not state when to prefer it over sibling search tools like search_foods, so it stops short of full alternative coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changednutrient_ranking2 fields changed
      • addedInput schema / properties / include_small_amounts
        Added value: +{
        +  "description": "true ranks the foods eaten a few grams at a time (dried herbs, spices, tea leaves, dried seaweed, mushrooms and vegetables) in results with every other food. Default false.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / min_sources / description
        Previous value: -"Only include values backed by at least this many datasets (1–32). Default 1; use 2+ to drop single-source values."New value: +"Smallest number of sources behind a value for its food to be ranked in results (1–32). Default 1. Above 1, foods measured by fewer sources are counted in also_higher.fewer_sources."
  2. 1 tool update
    • Changedlookup_food1 field changed
      • changedInput schema / properties / nutrients / description
        Previous value: -"Optional nutrient slugs or names to return (e.g. [\"iron\",\"vitamin-c\"]). Omit for the full profile of 131 nutrients (plus 67 research-tier)."New value: +"Optional nutrient slugs or names to return (e.g. [\"iron\",\"vitamin-c\"]). Omit for the full profile of 132 nutrients (plus 66 research-tier)."
  3. 2 tool updates
    • Changedlookup_food1 field changed
      • changedInput schema / properties / nutrients / description
        Previous value: -"Optional nutrient slugs or names to return (e.g. [\"iron\",\"vitamin-c\"]). Omit for the full profile of 130 nutrients (plus 67 research-tier)."New value: +"Optional nutrient slugs or names to return (e.g. [\"iron\",\"vitamin-c\"]). Omit for the full profile of 131 nutrients (plus 67 research-tier)."
    • Changednutrient_ranking1 field changed
      • changedInput schema / properties / min_sources / description
        Previous value: -"Only include values backed by at least this many datasets (1–31). Default 1; use 2+ to drop single-source values."New value: +"Only include values backed by at least this many datasets (1–32). Default 1; use 2+ to drop single-source values."
  4. 2 tool updates
    • Changedlookup_food1 field changed
      • changedInput schema / properties / nutrients / description
        Previous value: -"Optional nutrient slugs or names to return (e.g. [\"iron\",\"vitamin-c\"]). Omit for the full profile of ~168 nutrients."New value: +"Optional nutrient slugs or names to return (e.g. [\"iron\",\"vitamin-c\"]). Omit for the full profile of 130 nutrients (plus 67 research-tier)."
    • Changednutrient_ranking1 field changed
      • changedInput schema / properties / min_sources / description
        Previous value: -"Only include values backed by at least this many datasets (1–11). Default 1."New value: +"Only include values backed by at least this many datasets (1–31). Default 1; use 2+ to drop single-source values."
  5. 8 tool updates
    • First observedcheck_claim
    • First observedget_recipe
    • First observedhealth_topic
    • First observedherb_monograph
    • First observedlookup_food
    • First observednutrient_ranking
    • First observedsearch_foods
    • First observedsearch_recipes

Publisher details

Operator
CCT Technologies Ltd
Operator website
Not available
Vendor relationship
Not available
Trust center
Not applicable
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.