mcp-recipes
Server Quality Checklist
Latest release: v3.0.1
- Disambiguation5/5
Each tool targets a distinct operation: search_recipes returns merged result lists, get_recipe retrieves one full recipe, scale_ingredients transforms standalone ingredient lines, and compare_recipes produces a side-by-side source comparison. Overlap in searching and scaling is acknowledged but clearly scoped, so an agent should not confuse them.
Naming Consistency5/5All four names follow a consistent verb_noun snake_case pattern: search, get, scale, and compare, each paired with a clear object. The only minor variation is get_recipe being singular, but that is semantically appropriate since it returns one recipe.
Tool Count5/5Four tools is a well-scoped size for a read-only recipe aggregation server. Each tool earns its place by covering a distinct stage: discovery, retrieval, scaling, and comparison.
Completeness5/5The surface covers the full read-oriented workflow: search across sources, retrieve full recipe details, rescale ingredients, and compare sources side by side. Since the underlying sources are external and read-only, create/update/delete operations are not expected, and source metadata is surfaced through per_source and id naming.
Average 4.6/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 0 of 1 community issues answered or closed in the last 6 months
- 55 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
This repository includes a glama.json configuration file.
This server has been verified by its author.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations by disclosing detailed behavioral edge cases: rescaling rules (eggs stay whole, pours/cuts may halve, unmultipliable fields are flagged), behavior when no serving count is published, how absent sections are reported, the meaning of empty ingredient lists, and the null-versus-zero convention. These are exactly the caveats an agent needs to interpret results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured: the core purpose is front-loaded, followed by id provenance, rescaling behavior, and result interpretation rules. Each sentence contributes a distinct behavioral or usage nuance. A few sentences could be tightened, but for a tool with this many edge cases the length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich output schema and annotations covering read-only, idempotent, and non-destructive behavior, the description covers everything an agent needs to call the tool correctly and interpret its results: identity constraints, rescaling semantics, section omission behavior, null-versus-zero conventions, and the significance of empty ingredient lists. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a detailed description with defaults and constraints. The tool description adds minimal parameter-level meaning beyond the schema, mostly restating that servings triggers rescaling and sections selects output. This matches the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Read one recipe in full') and enumerates what is returned: ingredients, steps, yield, times, rating, nutrition. It also differentiates from the sibling search_recipes by requiring that 'id' come from it, so there is no ambiguity about which tool does what.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational guidance: the id must originate from search_recipes, servings can be passed to rescale, and sections controls what is returned. It also explains why unknown ids are refused. It does not explicitly name when to prefer a sibling such as scale_ingredients or compare_recipes, but the context is strong enough that an agent will know when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly, idempotent, and openWorld annotations, the description discloses meaningful behavioral traits: no ranking among versions, no shared score because some sources lack ratings, rescaled servings for comparability, and an explicit policy that a single matching source is shown rather than presenting a partial comparison. These details are not visible in the schema and materially shape output expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and each subsequent sentence earns its place by explaining comparison behavior, non-ranking, rating limitations, and single-source fallback. It is prose-style but compact and free of pointless decoration; every sentence contributes to correct invocation and interpretation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and a full input schema, the description covers the essential behavioral context: what comparison means, how rescaling works, what is reported, what is not compared, and how edge cases are handled. An agent has enough information to select this tool and set expectations for the response without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the purpose of servings rescaling and the idea of matching sources, but it does not add significant parameter-level meaning beyond what the schema already documents. It earns the baseline without exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Take a dish and show how each source writes it, side by side.' This unambiguously identifies the tool as a multi-source comparissor and distinguishes it from sibling tools like get_recipe or scale_ingredients by emphasizing side-by-side comparison and differing source treatments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is appropriate: when an agent wants to see how different sources treat the same dish. It also explains the all-sources-by-default behavior and the single-source fallback. It does not explicitly name sibling alternatives or say 'use get_recipe instead for a single recipe,' but the comparative purpose is clear enough to infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description discloses rich behavioral traits: rounding rules ('an egg stays whole', 'a spoonful shrinks into the smaller spoon'), the exact 'scaling' status values ('scaled', 'rounded', 'unscaled'), and the constraint that no quantity is converted between measuring systems. This provides significant added value for predicting tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a clear opening statement of function, followed by input guidance, then detailed behavioral rules. Every sentence contributes unique information—from language support to output scaling categories to the no-conversion constraint—without unnecessary repetition. It is detailed yet efficiently organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema, the description covers all essential aspects: language handling, parameter alternatives, rounding behavior, scaling statuses, and conversion constraints. The agent has enough information to select and invoke the tool correctly, and with the output schema available, return values do not need to be re-explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes all parameters with 100% coverage, including the factor/servings exclusivity. The description reinforces this relationship and adds context about output rounding, but it does not add substantial new meaning to individual parameters beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Multiply a list of ingredient lines' in multiple language contexts. This specific verb-resource pairing distinguishes it from sibling tools like get_recipe, search_recipes, and compare_recipes, which focus on retrieval and comparison rather than scaling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains the two input modes: give either 'factor', or 'from_servings' and 'to_servings', and clarifies that the factor is worked out from servings. It does not mention alternative tools or exclusions, but the context for using this scaling tool is clear and directly actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, openWorld, idempotent), it reveals per-source language/count differences, the meaning of 'per_source', the possibility of reference pages, the fan_out union behavior, negation/allergy handling, and interleaved ordering. This is extensive behavioral disclosure that goes far beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and every sentence adds value, but it is a single dense paragraph that could benefit from logical section breaks (e.g., fan_out, per_source, limitations). Given the tool's complexity, the verbosity is justified, but structure could be improved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers language differences, per_source failure reporting, false-negative warnings, page-type ambiguity, fan_out mechanics, negation handling, and ranking behavior. With an output schema present and annotations covering safety, it is remarkably complete for a complex search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds meaningful extra context for query (sent as free text with no filtering), fan_out (additional wordings and union results), and sources (ids from per_source). It does not add much for limit_per_source, but the schema already explains it adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search every recipe source this server reads, at the same time, for a dish or an ingredient, and get one merged list.' This clearly states the tool's function and differentiates it from the sibling get_recipe by noting that each row carries the id get_recipe takes, implying search is the discovery step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs when to use get_recipe instead: 'open a row with get_recipe and read the ingredient list before calling it suitable.' It also explains when to turn fan_out off, and warns that a short list is not evidence. These are clear, actionable usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/smeet666/mcp-recipes'
If you have feedback or need assistance with the MCP directory API, please join our Discord server