Tandoor MCP Server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation5/5
Each tool has a clearly distinct purpose targeting specific resources and actions, such as create_meal_plan vs. auto_meal_plan for manual vs. automated generation, and list_meal_plans vs. get_meal_plan for listing vs. retrieving details. No tools overlap in functionality, making selection straightforward for an agent.
Naming Consistency5/5All tools follow a consistent verb_noun naming pattern, such as create_meal_plan, list_recipes, update_recipe, and delete_meal_plan. The pattern is uniformly applied across all 11 tools, with no deviations in style or convention.
Tool Count5/5With 11 tools, the count is well-scoped for a meal planning and recipe management server, covering core operations like CRUD for recipes and meal plans, listing, and auto-generation. Each tool earns its place without being excessive or insufficient for the domain.
Completeness5/5The tool set provides complete CRUD/lifecycle coverage for both recipes and meal plans, including creation, retrieval, updating, deletion, listing, and auto-generation. There are no obvious gaps, as all essential operations for the domain are covered, ensuring agents can handle full workflows without dead ends.
Average 2.8/5 across 11 of 11 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
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.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
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
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create meal plan' which implies a write/mutation operation, but doesn't disclose any behavioral traits like permission requirements, whether the operation is idempotent, what happens on failure, or what the response contains. The description is minimal and lacks essential behavioral context.
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 extremely concise - just two sentences that efficiently state the purpose and parameter requirements. It's front-loaded with the core function. However, the brevity comes at the cost of completeness, as noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 8 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what a meal plan is in this context, what the creation process entails, what happens after creation, or how this differs from auto_meal_plan. The description leaves too many contextual questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for 8 parameters, the description must compensate but only partially does so. It mentions 'Required: from_date (ISO), meal_type_id, servings. Optional: recipe_id, title, note, addshopping' - this identifies required vs optional parameters and provides format hint for from_date, but doesn't explain what meal_type_id represents, what 'addshopping' does, or the purpose of to_date (which isn't mentioned in the description at all). The description adds some value but doesn't fully compensate for the schema coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool creates a meal plan, which is a clear verb+resource combination. However, it doesn't differentiate from sibling tools like 'auto_meal_plan' or explain what distinguishes creation from other meal plan operations. The purpose is understandable but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'auto_meal_plan' or 'update_meal_plan'. It lists required and optional parameters but doesn't explain the context or prerequisites for creating a meal plan. No explicit when/when-not instructions are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Get' but doesn't clarify if this is a read-only operation, what permissions might be needed, how errors are handled (e.g., invalid ID), or the response format. This leaves significant gaps in understanding the tool's behavior beyond basic retrieval.
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 concise with a single sentence, 'Get meal plan by ID', which is front-loaded and wastes no words. However, it's overly terse, bordering on under-specification, as it lacks necessary details for effective use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is incomplete. It doesn't explain what 'Get' returns (e.g., meal plan details, recipes), how to handle errors, or tie into the sibling tools for a cohesive workflow. This makes it inadequate for reliable agent use without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter ('id') with 0% description coverage, and the description adds minimal meaning—it only mentions 'by ID' without explaining what the ID represents (e.g., numeric identifier from 'list_meal_plans'), its format, or constraints. This fails to compensate for the low schema coverage, leaving the parameter poorly documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get meal plan by ID' states the verb ('Get') and resource ('meal plan'), but it's vague about what 'Get' entails—does it retrieve details, metadata, or something else? It doesn't differentiate from siblings like 'list_meal_plans' or 'update_meal_plan', leaving ambiguity in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify if this is for retrieving a single meal plan's details after listing IDs with 'list_meal_plans', or when to prefer 'update_meal_plan' for modifications. The description implies usage by ID but offers no context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is an 'update' operation, implying mutation, but doesn't disclose any behavioral traits such as permission requirements, whether updates are reversible, what happens to unspecified fields, or any rate limits. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
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 extremely concise with two short sentences that are front-loaded: it immediately states the purpose and key parameter information. There is no wasted text, and every sentence earns its place by providing essential details efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool with 7 parameters), no annotations, and no output schema, the description is incomplete. It lacks information on behavioral aspects, parameter meanings, and expected outcomes. For a tool that modifies data, this level of detail is inadequate to ensure correct agent usage without additional context.
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 description adds minimal value beyond the input schema: it clarifies that 'id' is required and other fields are optional, which is already implied by the schema's required array and optional properties. With 0% schema description coverage, the description doesn't compensate by explaining parameter meanings (e.g., what 'meal_type_id' represents or date formats). Baseline is 3 due to low coverage but no real compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'update' and resource 'meal plan', which clarifies the basic purpose. However, it doesn't differentiate this tool from sibling tools like 'auto_meal_plan' or 'create_meal_plan', nor does it specify what aspects of a meal plan can be updated beyond the parameter list. The purpose is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_meal_plan' or 'delete_meal_plan'. It mentions that 'id' is required and other fields are optional, which is basic parameter guidance but doesn't help an agent decide when this tool is appropriate in context. No explicit when/when-not or alternative usage is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'Auto-generate' but doesn't explain what this generation entails, whether it's based on algorithms or templates, what happens to existing meal plans, or what the output format looks like. For a tool with 6 parameters and no output schema, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just two sentences, but this brevity comes at the cost of completeness. The first sentence states the purpose, and the second lists parameters without explanation. While there's no wasted text, the structure doesn't effectively communicate the tool's full functionality or usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no annotations, no output schema, and 0% schema description coverage, the description is inadequate. It doesn't explain what the tool returns, how the auto-generation works, what the parameters actually mean, or how this differs from sibling tools. The minimal description leaves too many contextual gaps for effective agent use.
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 description lists all 6 required parameters by name, which adds value beyond the 0% schema description coverage. However, it provides no semantic context about what these parameters mean - for example, what 'meal_type_id' represents, what 'keyword_ids' should contain, or what 'addshopping' actually does. The parameter listing is helpful but lacks explanatory depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Auto-generate meal plans' which is a specific verb+resource combination. It distinguishes itself from siblings like 'create_meal_plan' by emphasizing automation rather than manual creation. However, it doesn't explicitly differentiate from other planning tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'create_meal_plan', 'list_meal_plans', and 'get_meal_plan', there's no indication of when automated generation is preferred over manual creation or retrieval. The required parameters are listed but without context about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a write operation ('Create') but doesn't disclose permissions needed, whether creation is idempotent, error handling, or what happens on success (e.g., returns a recipe ID). It mentions required/optional fields but lacks context on constraints or side effects.
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 appropriately concise and front-loaded with the core purpose. It efficiently lists key parameters in a structured way. However, it could be slightly more organized (e.g., separating required and optional lists clearly) and includes some redundancy (e.g., 'steps[{instruction, ingredients[{food, amount, unit?}]}]' is somewhat nested in text).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, nested objects in schema, no annotations, no output schema), the description is incomplete. It doesn't explain the return value, error conditions, or behavioral nuances. For a creation tool with many parameters, more context is needed to guide effective use, especially with siblings like 'update_recipe' that might share parameters.
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 description adds some value by specifying required vs. optional parameters and clarifying nested structure (steps with instruction and ingredients). However, with 0% schema description coverage and 12 total parameters, it only covers 5 parameters explicitly (name, steps, description, servings, working_time, waiting_time, keywords) and misses others like 'servings_text', 'source_url', 'internal', 'show_ingredient_overview', and 'private'. It partially compensates but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create recipe') and identifies the core resource being created. It distinguishes from siblings like 'get_recipe' or 'update_recipe' by specifying creation. However, it doesn't explicitly differentiate from 'auto_meal_plan' or 'create_meal_plan' which might involve recipe creation indirectly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), when not to use it, or how it relates to sibling tools like 'create_meal_plan' or 'update_recipe'. The description only lists parameters without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the destructive action ('Delete') but fails to mention critical details like whether deletion is permanent, requires specific permissions, has side effects (e.g., cascading deletions), or returns any confirmation. This is inadequate for a mutation tool with zero annotation coverage.
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 extremely concise with a single sentence that directly states the tool's function. It is front-loaded with the core action and resource, with zero wasted words, making it efficient for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature, lack of annotations, no output schema, and low schema coverage, the description is incomplete. It omits behavioral traits, usage context, parameter details, and return values, failing to provide sufficient information for safe and effective tool invocation.
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 description coverage is 0%, so the description must compensate. It specifies that the parameter 'id' is for identifying the meal plan to delete, adding meaning beyond the schema's type definition. However, it doesn't clarify the ID format, source, or constraints, leaving gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('meal plan by ID'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'update_meal_plan' or 'get_meal_plan' beyond the verb, missing explicit sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'update_meal_plan' or 'list_meal_plans'. The description lacks context about prerequisites, such as needing an existing meal plan ID, or exclusions, leaving the agent to infer usage from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as whether it's read-only (implied by 'get' but not confirmed), error handling (e.g., for invalid IDs), authentication needs, rate limits, or response format. This leaves significant gaps for a tool with mutation siblings.
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 a single, efficient sentence with zero waste: 'Get recipe details by ID'. It is front-loaded with the core purpose, appropriately sized for a simple tool, and every word earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the context: no annotations, no output schema, and siblings include mutation tools (e.g., create_recipe, update_recipe), the description is incomplete. It doesn't address safety (e.g., read-only vs. destructive), response details, or error cases, which are crucial for an AI agent to use it correctly alongside other tools.
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 description coverage is 100%, with the parameter 'id' fully documented as 'Recipe ID'. The description adds no additional meaning beyond this, such as ID format or examples. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, but no extra value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get recipe details by ID' clearly states the action (get) and resource (recipe details), specifying retrieval by ID. It distinguishes from siblings like list_recipes (which lists multiple) and create_recipe/update_recipe (which modify). However, it doesn't explicitly contrast with get_meal_plan or other get-style tools, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid recipe ID), exclusions (e.g., not for creating or listing), or comparisons to siblings like list_recipes (for browsing) or get_meal_plan (for related data). The description implies usage by ID but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions optional parameters for filtering and pagination, implying read-only behavior, but doesn't disclose critical traits like whether it's safe, requires authentication, has rate limits, or returns structured data. For a list tool with zero annotation coverage, this leaves significant behavioral gaps.
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 extremely concise and front-loaded, with zero wasted words. The first sentence states the core purpose, and the second efficiently lists parameters with minimal formatting. Every sentence earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, no annotations, no output schema), the description is incomplete. It covers basic purpose and parameters but lacks behavioral context, usage guidelines, and output details. For a list tool with filtering and pagination, more information on response format, limits, or error handling would be needed for full contextual understanding.
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 0%, so the description must compensate. It lists all four parameters (from_date, to_date, page, page_size) and provides format hints (YYYY-MM-DD), adding meaning beyond the bare schema. However, it doesn't explain parameter interactions, defaults, or constraints, leaving some semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('meal plans'), making the purpose immediately understandable. It distinguishes from siblings like 'get_meal_plan' (singular retrieval) and 'create_meal_plan' (creation), though it doesn't explicitly mention these distinctions. The purpose is specific but lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_meal_plan' for single retrieval and 'list_meal_types' for related lists, there's no indication of context, prerequisites, or exclusions. It merely states what the tool does without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions filtering and pagination parameters, lacking details on permissions, rate limits, response format, or error handling. For a list operation with 5 parameters, this is insufficient to guide safe and effective usage.
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 a single, efficient sentence that front-loads the core purpose ('List recipes') and immediately lists optional filters. There is no wasted text, and it's structured to convey essential information quickly, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It doesn't cover behavioral aspects like pagination defaults, sorting options, or response structure, leaving gaps that could hinder the agent's ability to use the tool correctly without additional context.
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 description lists all 5 parameters by name, which adds value since schema description coverage is 0%. However, it doesn't explain what each parameter does (e.g., 'rating_gte' likely means 'rating greater than or equal to'), their formats, or constraints. This provides basic awareness but not full semantic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List recipes with optional filters'. It specifies the verb ('List') and resource ('recipes'), making the function unambiguous. However, it doesn't differentiate from sibling tools like 'get_recipe' or 'list_meal_plans', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_recipe' (for single recipes) or 'list_meal_plans' (for different resources), nor does it specify prerequisites or exclusions. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only operation ('List'), but doesn't disclose behavioral traits such as whether it requires authentication, has rate limits, returns paginated results, or what format the output takes. For a tool with zero annotation coverage, this is a significant gap.
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 a single, efficient sentence that front-loads the core purpose ('List available meal types') and adds clarifying examples without unnecessary elaboration. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate as a minimum viable explanation. However, it lacks details on output format or behavioral context, which could be helpful for an agent. It's complete enough for basic understanding but has clear gaps in operational guidance.
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 tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and a baseline of 4 is appropriate for this case as it doesn't introduce confusion or redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('available meal types'), and provides specific examples ('breakfast, lunch, dinner, etc.'). However, it doesn't explicitly differentiate from sibling tools like 'list_meal_plans' or 'list_recipes' beyond the resource name, which is why it doesn't achieve a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_meal_plans' or 'list_recipes', nor does it mention any prerequisites or context for usage. It's a basic statement of function without operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that 'steps' are a 'full replacement if provided', which is a crucial behavioral detail. However, it lacks other important traits like required permissions, whether updates are reversible, rate limits, or what the response looks like. For a mutation tool with zero annotation coverage, this is insufficient.
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 concise and front-loaded: two sentences that directly state the tool's purpose and key usage rule. Every sentence earns its place, though it could be slightly more structured by separating purpose from guidelines.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, nested 'steps' object), no annotations, and no output schema, the description is moderately complete. It covers the partial update pattern and 'steps' replacement behavior, but lacks details on permissions, response format, or error handling. For a mutation tool with this complexity, it should do more to be fully adequate.
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 schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by emphasizing that all fields are optional except 'id' and that only provided fields are updated. This aligns with the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Update recipe metadata and content.' It specifies the verb ('update') and resource ('recipe'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'update_meal_plan' or 'create_recipe', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance: 'Only provide fields you want to update. All fields optional except id.' This implies a partial update pattern but doesn't explicitly state when to use this tool versus alternatives like 'create_recipe' or 'update_meal_plan'. It offers basic context but lacks explicit when/when-not instructions or named alternatives.
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/mc-mario/tandoor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server