Skip to main content
Glama

Server Details

AI-powered recipe platform: 18 MCP tools for meal planning, grocery lists & Instacart.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4/5 across 31 of 31 tools scored. Lowest: 2.7/5.

Server CoherenceA
Disambiguation4/5

Most tools have clearly distinct purposes across cooking, nutrition, recipes, and shopping domains, with minimal overlap. However, some potential confusion exists between 'nutrition_analyze' and 'recipes_get_nutrition' (both provide nutritional analysis) and between 'recipes_find_by_ingredient' and 'recipes_search' (both handle ingredient-based filtering). Descriptions help differentiate, but the boundaries could be clearer.

Naming Consistency5/5

Tool names follow a highly consistent snake_case pattern with clear domain prefixes (cooking_, nutrition_, recipes_, etc.) and descriptive action_noun combinations. Examples like 'cooking_convert_units', 'nutrition_analyze', and 'recipes_get_dietary' demonstrate uniform conventions throughout the set, making them predictable and readable.

Tool Count2/5

With 31 tools, the count feels excessive for a cooking/recipe server, leading to potential cognitive overload and redundancy. While the domain is broad, many tools could be consolidated (e.g., multiple nutrition tools or recipe filters) without losing functionality. A more streamlined set of 15-20 tools would better serve the scope.

Completeness5/5

The tool set comprehensively covers the cooking and recipe domain, including CRUD-like operations (e.g., get, search, compare), nutritional analysis, meal planning, shopping integration, and platform info. There are no obvious gaps; tools support full workflows from discovery to preparation, with dietary, seasonal, and practical considerations addressed.

Available Tools

31 tools
account_api_key_statusA
Read-onlyIdempotent
Inspect

Check the status of the API key you're using right now — see call count, rate limit, and creation date. Useful for monitoring your MCP usage. TRIGGERS:

  • 'check my API key', 'API key status', 'how many calls have I made'

  • 'my usage', 'rate limit status', 'key info'

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral context by specifying the API key is 'the one you're using right now' and enumerates the returned data (call count, rate limit, creation date), adding value beyond the annotations.

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?

The description is concise and well-structured: the main purpose is front-loaded, followed by the trigger list. Every sentence adds value, with no fluff or repetition of schema/annotation information.

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 zero parameters and no output schema, the description fully covers what the tool does and what it returns. The inclusion of trigger phrases makes it self-contained for an agent to invoke 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?

The input schema has zero properties, so there are no parameters to explain. Baseline 4 applies since the description doesn't need to compensate for missing 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?

The description clearly states the tool checks the status of the API key in use, listing specific outputs (call count, rate limit, creation date). It uses a specific verb+resource and is clearly distinct from the cooking/recipe siblings.

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?

The description explicitly provides trigger phrases ('check my API key', 'API key status', 'my usage') and states the tool is useful for monitoring MCP usage. This gives clear guidance on when to use it, and no alternatives exist among the sibling tools.

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

cooking_convert_unitsA
Read-onlyIdempotent
Inspect

Convert between cooking measurement units — cups, tablespoons, grams, ounces, milliliters, and more. TRIGGERS:

  • 'how many grams in a cup', 'convert tablespoons to cups'

  • 'ounces to grams', 'ml to cups', 'teaspoons in a tablespoon'

  • 'metric to imperial', 'cooking conversions'

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount to convert (e.g. 2.5)
toUnitYesUnit to convert to
fromUnitYesUnit to convert from (e.g. 'cups', 'tbsp', 'oz', 'g', 'ml', 'tsp', 'lb', 'kg')
ingredientNoOptional ingredient for weight/volume conversions (e.g. 'flour', 'sugar', 'butter') — different ingredients have different densities
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the agent knows this is a safe, non-mutating operation. The description adds that it handles various units and includes triggers, but does not mention ingredient-specific density behaviors or output precision. Given the annotations, this level of added context is adequate but not enriching.

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?

The description is compact: one purpose sentence plus a clear trigger list. Every element earns its place—the triggers are practical and directly aid selection. There is no redundancy or fluff.

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 straightforward conversion tool with complete schema annotations, the description provides sufficient context—unit examples, trigger phrases, and clear scope. The lack of an output schema is acceptable since the return value is likely simple and predictable. Not quite a 5 because it omits any note about unsupported unit handling or precision.

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?

The input schema has 100% coverage with descriptions for all four parameters, including examples (e.g., fromUnit lists 'cups', 'tbsp', 'oz'). The description's unit list adds minimal new meaning beyond the schema. A baseline of 3 is appropriate since the schema carries the semantic weight.

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 opens with 'Convert between cooking measurement units', a specific verb+resource, and enumerates unit types (cups, tablespoons, grams, etc.). This clearly distinguishes it from sibling tools like cooking_get_substitutions or nutrition_analyze, which address different tasks.

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?

The 'TRIGGERS' section provides explicit example user queries ('how many grams in a cup', 'convert tablespoons to cups') that signal when to use the tool. This is clear context for selection, though it does not explicitly mention when not to use it or name alternative tools.

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

cooking_get_substitutionsA
Read-onlyIdempotent
Inspect

Get ingredient substitutions and alternatives for dietary needs, allergies, or when you're missing an ingredient. TRIGGERS:

  • 'substitute for X', 'what can I use instead of X'

  • 'replace X in recipe', 'alternative for X'

  • 'dairy-free substitute for X', 'vegan alternative for X'

  • 'I don't have X, what can I use'

ParametersJSON Schema
NameRequiredDescriptionDefault
ingredientYesThe ingredient you need a substitute for (e.g. 'fish sauce', 'butter', 'eggs', 'soy sauce')
dietaryNeedNoSpecific dietary need for the substitution (e.g. 'vegan', 'dairy-free', 'gluten-free', 'nut-free', 'low-sodium')
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context, such as output format, error handling, or limitations. It primarily focuses on usage triggers rather than disclosing how the tool behaves.

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 front-loaded with a clear main sentence, followed by a labeled TRIGGERS section with four bullet-like examples. It is slightly longer than necessary but each trigger is informative. The structure is logical and aids scanning.

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 simple read-only lookup tool with two parameters and no output schema, the description adequately covers purpose and usage. It lacks details about return behavior or edge cases, but the annotations and schema fill in safety and parameter information. The tool's low complexity means less is required.

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?

Both parameters have descriptive schema entries with 100% coverage, so the schema already explains meaning. The description's triggers provide real-world examples (e.g., 'dairy-free substitute for X') that map to the dietaryNeed parameter, but this does not add substantial new semantic information beyond the schema.

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 clearly states it retrieves ingredient substitutions for dietary needs, allergies, or missing ingredients. The verb 'Get' and resource 'ingredient substitutions' are specific, and the trigger examples further clarify what it does. It distinguishes from sibling nutrition tools by focusing on substitutions rather than analysis or planning.

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?

The TRIGGERS section explicitly lists example queries that should use this tool, such as 'substitute for X' and 'vegan alternative for X'. This provides clear contextual guidance on when to invoke. However, it does not mention alternative tools or when not to use this tool, so it falls short of the highest bar.

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

cooking_get_tipsA
Read-onlyIdempotent
Inspect

Get practical cooking tips and expert techniques for any topic. Covers ingredients, methods, equipment, and cuisines. TRIGGERS:

  • 'how do I X', 'tips for X', 'cooking advice for X'

  • 'best way to cook X', 'technique for X'

  • 'help me with X', 'kitchen tips', 'cooking hack for X' TOPICS: knife skills, rice, broth, pho, grilling, baking, fermentation, wok cooking, seasoning, mise en place, sous vide, smoking, braising, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesCooking topic — ingredient, technique, dish, or equipment (e.g. 'knife skills', 'making pho broth', 'fermentation', 'grilling', 'wok cooking', 'baking bread')
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-mutating operation. The description adds no new behavioral details (e.g., rate limits, auth requirements, output format) beyond confirming it is a knowledge-retrieval tool. It does not contradict annotations.

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 structured with a clear opening sentence, followed by TRIGGERS and TOPICS lists that are directly useful for an agent. It is moderately long but every section serves a purpose; it avoids fluff and is front-loaded with the main purpose.

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 simple tool with one parameter, no output schema, and strong annotations, the description covers purpose, trigger phrases, and topic examples. It is sufficiently complete for an agent to select and invoke correctly, though it could be more explicit about what the response contains (e.g., a list of tips vs. a single tip).

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?

The input schema has 100% coverage with a detailed description of the 'topic' parameter, including examples like 'knife skills' and 'making pho broth'. The description's TOPICS list adds more examples but does not add significant new meaning beyond the schema, which already explains the parameter well.

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 'Get practical cooking tips and expert techniques for any topic,' which clearly identifies the verb (get) and resource (cooking tips). It also lists example topics (knife skills, rice, pho, grilling) that distinguish it from sibling tools like cooking_convert_units or cooking_get_substitutions, though it does not explicitly name these alternatives.

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?

The TRIGGERS section provides explicit examples of when to invoke the tool ('how do I X', 'tips for X', 'best way to cook X'), giving an agent clear usage context. However, it does not specify when not to use this tool or direct the agent to alternative tools like cooking_convert_units or recipes_get.

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

cooking_meal_prep_guideA
Read-onlyIdempotent
Inspect

Get a meal prep guide — how to batch cook, store, and reheat recipes for the week. Saves time and reduces food waste. TRIGGERS:

  • 'how to meal prep X', 'batch cooking tips', 'meal prep guide'

  • 'how to store leftovers', 'can I freeze X', 'how long does X last'

  • 'Sunday meal prep', 'weekly prep plan'

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeSlugYesRecipe slug to get meal prep tips for (e.g. 'chicken-pho')
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating safe read-only behavior. The description adds a benefit statement ('Saves time and reduces food waste') and trigger examples but does not disclose any additional behavioral traits such as output format or processing time, which is acceptable given 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/5

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

The description is concise and well-structured with a clear opening sentence followed by a practical trigger list. Every sentence earns its place—the benefit statement and triggers add valuable guidance without redundancy or fluff.

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?

The tool is simple with one parameter, full schema coverage, and strong annotations. The description sufficiently explains the tool's purpose and usage triggers. While no output schema exists, the description implies a text guide, which is adequate for this simple read-only 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?

The single parameter recipeSlug is fully documented in the input schema with a description and example ('chicken-pho'), providing 100% coverage. The tool description does not add further parameter semantics beyond what the schema already provides, so the baseline 3 is appropriate.

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 clearly states the tool provides a 'meal prep guide' covering batch cooking, storage, and reheating, which is a specific verb+resource. It distinguishes from siblings like cooking_get_tips or recipes_get by focusing on meal prep specifically, and the additional triggers reinforce the unique scope.

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?

The description includes a detailed TRIGGERS section with explicit example phrases for when to use the tool, providing clear usage context. However, it does not explicitly mention alternatives or when not to use it, but the trigger examples effectively guide the agent on appropriate invocation.

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

cooking_pair_beveragesA
Read-onlyIdempotent
Inspect

Get wine, beer, cocktail, or non-alcoholic drink pairings for a recipe or cuisine. TRIGGERS:

  • 'what wine goes with X', 'beer pairing for X', 'drink pairing'

  • 'cocktail for dinner', 'non-alcoholic pairing', 'beverage suggestion'

  • 'wine for pasta', 'what to drink with steak'

ParametersJSON Schema
NameRequiredDescriptionDefault
dishYesDish or cuisine to pair beverages with (e.g. 'grilled steak', 'Thai curry', 'seafood pasta')
beverageTypeNoType of beverage pairingall
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is established. The description adds that the input is a recipe or cuisine, but does not disclose any additional behavioral traits such as return format or number of pairings. Since annotations cover the main safety aspects, a score of 3 is appropriate.

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?

The description is concise and well-structured: a single-purpose first sentence followed by a useful TRIGGERS list. Every line adds value, and there is no redundant or filler content.

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 simple two-parameter tool with annotations and a clear purpose, the description is largely complete. However, with no output schema, it does not describe what the return value looks like (e.g., list of pairing suggestions, whether they include descriptions). A short note on output format would make it fully complete.

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 description coverage is 100%; both 'dish' and 'beverageType' already have clear descriptions and an enum for beverageType. The tool description adds no parameter-specific meaning beyond the schema, so it meets the baseline but does not exceed it.

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 opens with a specific verb and resource: 'Get wine, beer, cocktail, or non-alcoholic drink pairings for a recipe or cuisine.' It clearly differentiates from sibling tools like substitutions and tips by listing the exact beverage types and the pairing focus.

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?

The TRIGGERS section provides explicit example queries for when to use this tool, such as 'what wine goes with X' and 'non-alcoholic pairing'. This gives clear positive usage context, though it does not mention when not to use it or explicitly name alternatives.

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

cuisines_exploreA
Read-onlyIdempotent
Inspect

List all available cuisines on SAVOR Dish with recipe counts. Discover world cuisines and how many recipes are available for each. TRIGGERS:

  • 'what cuisines do you have', 'list all cuisines'

  • 'available food categories', 'cuisine options'

  • 'how many recipes do you have', 'recipe categories'

ParametersJSON Schema
NameRequiredDescriptionDefault
minRecipesNoOnly show cuisines with at least this many recipes (default 1)
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, providing the core safety profile. The description adds output context ('with recipe counts') but does not disclose additional behavioral traits beyond what annotations already cover.

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 two sentences plus a trigger list. The first sentence is clear and direct, while the second sentence somewhat restates the first. The trigger list is helpful but adds length. Overall, it is reasonably concise.

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?

For a simple list tool with one optional parameter and comprehensive annotations, the description is complete. It explains what data is returned (cuisines with recipe counts) and provides example user queries, giving the agent sufficient context to invoke it correctly.

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?

The single parameter minRecipes is fully documented in the schema with a description, default, minimum, and maximum. The description adds no additional parameter semantics, and with 100% schema coverage, the baseline score of 3 is appropriate.

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 clearly states 'List all available cuisines on SAVOR Dish with recipe counts', which is a specific verb+resource combination. It also distinguishes this tool from sibling tools like recipes_list_by_cuisine by focusing on cuisine categories rather than individual recipes.

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?

The TRIGGERS section provides explicit example queries that indicate when to use this tool, such as 'what cuisines do you have' and 'list all cuisines'. This gives clear context, though it does not explicitly mention alternatives or when not to use the tool.

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

meals_planA
Read-onlyIdempotent
Inspect

Create a meal plan suggestion for a specified number of days with cuisine and dietary preferences. Returns breakfast, lunch, and dinner recommendations using real SAVOR Dish recipes. TRIGGERS:

  • 'plan my meals for the week', 'meal plan for X days'

  • 'what should I eat this week', 'weekly meal plan'

  • 'meal prep for X days', 'plan dinners for the week'

  • 'family meal plan', 'healthy meal plan', 'budget meal plan'

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to plan meals for (1-14, default 7)
mealsPerDayNoNumber of meals per day to plan (1-5, default 3 for breakfast/lunch/dinner)
preferencesNoDietary preferences, cuisine focus, or constraints (e.g. 'Mediterranean', 'low-carb', 'family-friendly', 'under 30 minutes', 'vegetarian')
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds context that the tool generates suggestions using real recipes and returns meal recommendations, which gives a clearer behavioral picture beyond the annotation hints.

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?

The description is compact: two purposeful sentences plus a relevant trigger list. The main action is front-loaded, and every sentence earns its place with no redundant content.

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 tool with three optional params, good annotations, and no output schema, the description adequately conveys core behavior and the general return type. It could offer more detail on the output structure (e.g., whether it includes recipe IDs or names), but it is sufficient for a simple meal planning 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 description coverage is 100%, with each parameter fully described in the schema. The description adds a little context (e.g., cuisine/dietary preferences map to the 'preferences' parameter), but it largely paraphrases the schema, so the baseline of 3 is appropriate.

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 uses specific verbs ('Create', 'Returns') and clearly identifies the resource ('meal plan suggestion') with scope ('specified number of days', 'cuisine and dietary preferences'). It also states the output ('breakfast, lunch, and dinner recommendations using real SAVOR Dish recipes'), which distinguishes it from generic meal planning tools and from the sibling 'nutrition_daily_plan'.

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?

The TRIGGERS block provides explicit example phrases indicating when to use the tool, covering a wide range of user intents. However, it does not include when-not-to-use guidance or mention alternatives, so it stops short of full explicit guideline coverage.

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

nutrition_analyzeA
Read-onlyIdempotent
Inspect

Get a deep nutritional analysis for a recipe — full macros (protein, carbs, fat, fiber), micros (sodium, cholesterol, potassium, saturated fat, sugar), per-serving breakdown, and ingredient-level calorie contributions. TRIGGERS:

  • 'nutrition breakdown for X', 'full nutrition facts for X'

  • 'how many calories per serving in X', 'macro breakdown of X'

  • 'is X high in protein', 'how much fiber in X'

  • 'detailed nutrition analysis', 'calorie breakdown by ingredient'

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeSlugYesRecipe slug to analyze (e.g. 'chicken-pho', 'caesar-salad')
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows the operation is safe and non-mutating. The description adds what the output includes (macros, micros, etc.) but does not disclose additional behavioral traits such as error conditions, response size, or dependency on recipe existence. This is adequate but not rich beyond the annotations.

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 front-loaded with a clear, informative first sentence. The TRIGGERS list is somewhat verbose but provides actionable query examples, which is valuable for an AI agent. Every line adds use-case context without fluff, though it could be slightly trimmed without losing much.

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?

Given the tool's simplicity (1 param, no output schema) and the annotations covering safety, the description is fairly complete. It explains what the tool returns (macros, micros, per-serving, ingredient-level calories), which substitutes for a missing output schema. It does not mention error cases or prerequisites, but these are implicitly covered by the parameter description.

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?

The input schema has 100% coverage for the single parameter recipeSlug, with a clear description and examples. The tool description does not add further parameter semantics; it just refers to "recipe" in general. Since the schema already carries the burden, a baseline 3 is appropriate.

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 clearly states what the tool does: "Get a deep nutritional analysis for a recipe" with specific details on macros, micros, per-serving breakdown, and ingredient-level calories. It is specific about the resource (recipe) and scope, but it does not explicitly differentiate from siblings like recipes_get_nutrition or nutrition_compare, though the term "deep" and "ingredient-level" imply a distinct, comprehensive analysis.

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?

The description provides explicit triggers such as "nutrition breakdown for X" and "macro breakdown of X", giving clear context for when to use the tool. However, it does not mention when not to use it or point to alternatives (e.g., nutrition_compare for comparing recipes), so it lacks explicit exclusions.

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

nutrition_compareA
Read-onlyIdempotent
Inspect

Compare nutrition facts across 2-5 recipes side-by-side. Shows calories, protein, carbs, fat, fiber for each recipe in a comparison table format. TRIGGERS:

  • 'compare nutrition of X and Y', 'which is healthier X or Y'

  • 'calories in X vs Y', 'protein comparison X and Y'

  • 'healthiest option between X Y Z'

  • 'nutritional comparison', 'which has fewer calories'

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeSlugsYesArray of 2-5 recipe slugs to compare nutritionally (e.g. ['chicken-pho', 'beef-pho', 'veggie-pho'])
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful context beyond these by stating the output is a 'comparison table format' and enumerating the specific nutrient fields returned. This gives the agent expectations about the result structure, though it does not cover edge cases like invalid slugs or missing data.

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 starts with a crisp summary sentence, then offers a helpful trigger list. The trigger examples are somewhat repetitive but serve a purpose in recognizing varied user intents. Overall it is well-structured and each line has a role, though the trigger list could be trimmed without losing meaning.

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?

Given the simple single-parameter signature and strong annotations, the description is sufficiently complete. It explains the tool's scope (2-5 recipes), the data displayed, and the output format. The absence of an output schema is partially compensated by the table format disclosure. It does not mention error behavior, but that is a minor gap for a read-only comparison 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?

The schema covers 100% of the single parameter recipeSlugs with a clear description including range and examples. The tool description reinforces the 2-5 recipe range and implies slugs as input, but adds no new parameter-level details beyond what the schema already provides. Per rubric, baseline 3 is appropriate when schema does the heavy lifting.

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 opens with a specific verb and resource: 'Compare nutrition facts across 2-5 recipes side-by-side.' It then lists exact nutrients shown (calories, protein, carbs, fat, fiber) and a comparison table format, making it clear this is a multi-recipe nutrition comparison. This distinctly separates it from sibling tools like nutrition_analyze (single recipe) or recipes_compare (general recipe comparison).

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?

A dedicated TRIGGERS section provides concrete example phrasings for when to use this tool, such as 'compare nutrition of X and Y' and 'which is healthier X or Y'. This is clear context for invocation, but it does not explicitly mention when not to use it or alternative tool names, so it stops short of the full 5.

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

nutrition_daily_planA
Read-onlyIdempotent
Inspect

Build a single-day meal plan optimized for specific calorie and macro goals. Returns breakfast, lunch, dinner, and optional snack with combined nutrition totals hitting your targets. TRIGGERS:

  • 'meal plan for 2000 calories', 'build me a 1500 calorie day'

  • 'high protein meal plan', 'plan my meals for 150g protein'

  • 'keto meal plan for today', 'low carb day plan'

  • 'bodybuilding meal plan', 'cut diet plan', 'bulking meals'

  • 'plan meals to hit my macros'

ParametersJSON Schema
NameRequiredDescriptionDefault
cuisineNoPreferred cuisine style (e.g. 'mediterranean', 'asian')
maxCarbsNoMaximum daily carbs in grams (e.g. 50 for keto, 150 for low-carb)
minProteinNoMinimum daily protein target in grams (e.g. 120 for athletic, 150 for bodybuilding)
targetCaloriesNoTarget total daily calories (800-5000, default 2000)
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description is consistent, describing plan generation rather than data mutation. It adds context about optional snacks and combined nutrition totals, but does not describe edge cases like conflicting targets or precision limitations, providing only partial additional transparency beyond annotations.

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 well-structured with the core purpose first, then output details, and a TRIGGERS list. The trigger examples are somewhat redundant but useful for usage guidance; overall the text is front-loaded and each section serves a purpose, though it is slightly long.

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 tool with no output schema and four optional parameters, the description covers the essential output composition (meals and totals) and usage triggers. It could be more explicit about the return format or how to handle competing constraints, but the annotations and schema fill safety and parameter gaps, making it reasonably complete.

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?

The input schema has 100% description coverage for all four parameters, so the schema fully defines their semantics. The description only generically references 'calorie and macro goals' without adding interaction details, format specifics, or additional parameter context, warranting the baseline score.

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 clearly states the tool builds a single-day meal plan with specific calorie and macro goals, and specifies the output structure (breakfast, lunch, dinner, optional snack, and combined nutrition totals). This distinguishes it from sibling tools like 'meals_plan' by emphasizing optimization for nutritional targets.

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?

The TRIGGERS section provides explicit example phrases for when to use this tool, such as 'meal plan for 2000 calories' and 'high protein meal plan'. However, it does not state when not to use it or mention alternative tools, so it lacks explicit exclusions.

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

nutrition_find_by_macrosA
Read-onlyIdempotent
Inspect

Find recipes that match specific nutritional targets. Filter by max calories, minimum protein, max carbs, max fat — perfect for fitness goals, dieting, or health-conscious eating. TRIGGERS:

  • 'high protein recipes', 'recipes under 400 calories'

  • 'low carb meals', 'high fiber recipes'

  • 'keto-friendly recipes by nutrition', 'recipes for muscle building'

  • 'meals under 500 calories with at least 30g protein'

  • 'find recipes for my diet', 'low calorie dinner options'

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return (1-20, default 10)
maxFatNoMaximum grams of fat per serving (e.g. 15 for low-fat)
cuisineNoOptional cuisine filter (e.g. 'italian', 'asian')
maxCarbsNoMaximum grams of carbs per serving (e.g. 20 for low-carb/keto)
minFiberNoMinimum grams of fiber per serving (e.g. 5 for high-fiber)
minProteinNoMinimum grams of protein per serving (e.g. 25 for high-protein)
maxCaloriesPerServingNoMaximum calories per serving (e.g. 400 for a light meal, 600 for a moderate meal)
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read nature is known. The description adds no further behavioral context such as return format, pagination, or no-match behavior, so it stays at baseline.

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 front-loaded with a clear purpose statement, followed by a well-structured TRIGGERS list. It is appropriately sized, though the trigger examples are somewhat repetitive, each line adds value for intent matching.

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 search tool with 7 optional parameters and no output schema, the description adequately covers purpose and usage triggers. It could explicitly state that it returns a list of recipes, but this is implied by the tool name and purpose sentence.

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%, with every parameter having a description and example. The description merely mentions a subset of filters (calories, protein, carbs, fat) without adding meaning beyond the schema.

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 clearly states the tool finds recipes by specific nutritional targets, listing filters like max calories, minimum protein, max carbs, and max fat. This distinguishes it from sibling recipe finders like recipes_find_by_ingredient or recipes_search.

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?

The TRIGGERS section provides explicit example user intents (e.g., 'high protein recipes', 'recipes under 400 calories') that should route to this tool. It gives clear context for when to use it, though it does not name alternatives or exclusions.

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

nutrition_healthier_swapA
Read-onlyIdempotent
Inspect

Get AI-powered suggestions to make a recipe healthier — ingredient swaps, cooking technique changes, and portion adjustments with estimated calorie savings. TRIGGERS:

  • 'make X healthier', 'healthier version of X'

  • 'reduce calories in X', 'lower fat version of X'

  • 'how to make X lighter', 'healthy swap for X recipe'

  • 'healthify this recipe', 'clean eating version of X'

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNoHealth optimization goal: lower-calorie, higher-protein, lower-carb, lower-fat, higher-fiber, or generalgeneral
recipeSlugYesRecipe slug to get healthier suggestions for (e.g. 'mac-and-cheese', 'fried-chicken')
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds context that the tool is 'AI-powered' and provides 'estimated calorie savings', which are useful behavioral traits, but it doesn't disclose additional traits like response format or accuracy limitations. This is adequate but not rich.

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 well-structured: a concise main sentence followed by a useful TRIGGERS list. Every line earns its place with practical examples. It is somewhat longer than minimal but appropriately so for the added trigger guidance.

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 simple 2-parameter tool with no output schema and good annotations, the description covers the core purpose, output nature (suggestions with calorie savings), and usage via triggers. It could mention what the response looks like, but this is not essential given the simplicity and annotation coverage.

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 description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific information beyond the schema, which already well-documents recipeSlug and the goal enum with descriptions. Thus no extra value is provided, but the schema is sufficient.

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 clearly states the tool's function: 'Get AI-powered suggestions to make a recipe healthier' and enumerates specific outputs (ingredient swaps, cooking technique changes, portion adjustments, calorie savings). This distinguishes it from siblings like cooking_get_substitutions by covering broader health improvement, not just substitutions.

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?

The description provides explicit TRIGGERS with example user phrasings such as 'make X healthier' and 'reduce calories in X', giving clear context for when to use the tool. However, it doesn't mention alternatives or when not to use it, so it lacks explicit exclusions/alternatives for a perfect score.

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

nutrition_ingredient_infoA
Read-onlyIdempotent
Inspect

Get nutrition facts, health benefits, and culinary uses for any cooking ingredient. Comprehensive reference for common cooking ingredients. TRIGGERS:

  • 'nutrition in chicken breast', 'is avocado healthy'

  • 'calories in rice', 'protein in salmon'

  • 'health benefits of turmeric', 'facts about olive oil'

  • 'what is nutritional yeast', 'info about quinoa'

ParametersJSON Schema
NameRequiredDescriptionDefault
ingredientYesIngredient name to look up (e.g. 'chicken breast', 'avocado', 'quinoa', 'salmon', 'olive oil')
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it covers 'common cooking ingredients' and returns health benefits and culinary uses, but doesn't disclose behavior for unknown ingredients or return format. With annotations covering safety, this adds modest context beyond them.

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 front-loaded with a clear opening sentence. The TRIGGERS block is somewhat lengthy but provides concrete examples that aid selection. Overall acceptable structure with minimal 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 single-parameter lookup tool with strong annotations and full schema coverage, the description adequately covers scope ('any cooking ingredient', 'common cooking ingredients'), return content (nutrition facts, health benefits, culinary uses), and example usage. It lacks explicit return format details, but this is not critical given the simple nature of the 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?

The schema already provides a full description of the single 'ingredient' parameter (100% coverage). The trigger examples reinforce usage but add little new semantic meaning beyond the schema's 'Ingredient name to look up.'

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 uses a specific verb 'Get' and clearly specifies the resource: 'nutrition facts, health benefits, and culinary uses for any cooking ingredient.' This distinguishes it from sibling tools like nutrition_compare or recipes_get_nutrition by focusing on single-ingredient lookups.

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?

The TRIGGERS section provides explicit example queries, indicating the tool is intended for natural-language ingredient nutrition questions. This gives clear context for when to use it, though it does not explicitly mention alternatives or exclusion criteria.

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

nutrition_meal_scoreA
Read-onlyIdempotent
Inspect

Rate the nutritional quality of a meal plan or set of recipes on a 0-100 health score. Evaluates balance of protein, fiber, calorie density, and variety. TRIGGERS:

  • 'rate my meal plan', 'how healthy is my meal selection'

  • 'score these recipes nutritionally', 'nutrition grade for these meals'

  • 'is this a balanced meal plan', 'health check my recipes'

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeSlugsYesArray of recipe slugs to score as a meal or plan (e.g. ['oatmeal-bowl', 'chicken-salad', 'salmon-dinner'])
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds behavioral context by specifying the output is a 0-100 score and that it evaluates balance of protein, fiber, calorie density, and variety, which goes beyond the annotations.

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?

The description is concise, with a clear first sentence stating the function, followed by the evaluation criteria and a structured list of trigger phrases. It contains no redundant text and is well-organized for quick parsing.

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?

For a tool with a single parameter and no output schema, the description adequately explains the purpose, the computation basis, the output scale, and when to use it. The trigger list covers the key invocation scenarios, making it contextually complete.

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?

The input schema covers 100% of parameters with a clear description and example for recipeSlugs. The description does not add additional parameter-level detail beyond what the schema already provides, so a baseline score of 3 is appropriate.

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 clearly states the tool 'Rate the nutritional quality of a meal plan or set of recipes on a 0-100 health score' and lists evaluation criteria. It distinguishes from siblings like nutrition_analyze by focusing on whole meal plans/recipes rather than individual items.

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?

The TRIGGERS section explicitly lists example user phrases that should invoke this tool, such as 'rate my meal plan' and 'health check my recipes'. It provides clear when-to-use context but does not explicitly mention alternatives or exclusions, so it stops short of the top score.

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

platform_get_infoA
Read-onlyIdempotent
Inspect

Get comprehensive information about the SAVOR Dish platform. Returns features, pricing tiers, supported platforms, and Instacart integration details. TRIGGERS:

  • 'what is SAVOR Dish', 'tell me about this app', 'platform info'

  • 'what features do you have', 'pricing plans', 'how much does it cost'

  • 'what platforms are supported', 'do you have a mobile app'

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoWhich section to return: 'all', 'features', 'pricing', 'platforms', or 'integrations'all
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds that it returns features, pricing, platforms, and integration details, but does not disclose additional behavioral aspects such as data source or response format. Given the annotation coverage, this is adequate but not rich.

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 concise, with two sentences plus a compact trigger list. The trigger list adds actionable context without repetition, though it could be considered slightly redundant with the purpose statement.

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 info retrieval tool with one optional parameter and no output schema, the description is mostly complete: it states what is returned and provides example triggers. It does not exhaustively describe the return structure, but the listed categories (features, pricing, platforms, integrations) give sufficient context.

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?

The input schema fully documents the single 'section' parameter with an enum and description, achieving 100% schema coverage. The tool description does not add parameter-specific guidance, so the baseline of 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?

The description clearly states 'Get comprehensive information about the SAVOR Dish platform' and enumerates specific content areas (features, pricing, platforms, Instacart integration). This distinguishes it from sibling tools focused on recipes, nutrition, and shopping.

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?

The description includes explicit TRIGGERS listing user query examples like 'what is SAVOR Dish' and 'pricing plans', providing clear context for when to invoke this tool. It does not mention when not to use it or name alternatives, but the triggers are specific enough for an agent to match user intent.

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

recipes_collectionsA
Read-onlyIdempotent
Inspect

Browse curated recipe collections by theme — date night, comfort food, quick weeknight, party appetizers, and more. TRIGGERS:

  • 'date night recipes', 'comfort food ideas', 'party appetizers'

  • 'meal prep recipes', 'one pot meals', 'kid-friendly recipes'

  • 'romantic dinner', 'game day food', 'brunch ideas'

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of recipes to return
themeYesCollection theme to browse
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description doesn't need to restate safety. The description adds the 'curated' aspect, which is a behavioral trait (pre-selected vs. exhaustive results), but doesn't disclose return format or other behaviors like pagination. With the annotation coverage, this is adequate but not rich.

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?

The description is compact and front-loaded with the purpose in the first sentence. The trigger list is clearly structured and directly useful for usage decisions. Every sentence earns its place — no filler or redundant details.

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 two parameters, one enum, full schema coverage, and helpful annotations, the description is largely complete for a simple browse operation. It doesn't describe return values, which could be a gap without an output schema, but the tool's simplicity and direct language make it clear enough for an agent to use 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?

The schema provides complete parameter descriptions (100% coverage), but the description adds value by mapping natural language trigger phrases to the theme enum values (e.g., 'date night' → 'date-night'). This helps the agent select the correct parameter value beyond what the schema alone offers, even though the limit parameter isn't elaborated further.

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 clearly states the tool's function with a specific verb ('Browse') and resource ('curated recipe collections by theme'). It distinguishes this from sibling recipe tools by emphasizing curated collections rather than search or individual retrieval, and the trigger examples make the scope immediately understandable.

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?

Provides explicit trigger phrases that indicate when to use this tool, such as 'date night recipes' and 'comfort food ideas'. While it doesn't name specific alternatives or exclusions, these triggers effectively guide an agent on when this tool is appropriate, especially compared to broader search tools like recipes_search.

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

recipes_compareA
Read-onlyIdempotent
Inspect

Compare two or more recipes side-by-side. Shows prep time, cook time, servings, difficulty, and ingredients for easy comparison. TRIGGERS:

  • 'compare X and Y recipes', 'which is easier X or Y'

  • 'difference between X and Y', 'X vs Y recipe'

  • 'compare these recipes', 'which recipe is faster'

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeSlugsYesArray of 2-5 recipe slugs to compare (e.g. ['chicken-pho', 'beef-pho'])
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds what fields are shown ('Shows prep time, cook time, servings, difficulty, and ingredients'), but it does not disclose behaviors like error handling for missing recipes, response format, or any side effects. This is adequate but not rich, hence a 3.

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?

The description is concise: one clear sentence stating the core function, followed by a structured TRIGGERS block with six example utterances. Every sentence earns its place, and the front-loaded main sentence ensures immediate comprehension. No fluff or redundant restatement.

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?

The tool has only one parameter, no output schema, and annotations that cover safety and idempotency. The description explains what the tool shows (the recipe attributes), and the trigger list provides sufficient context for when to use it. Nothing critical is missing for an agent to select and invoke the tool correctly.

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?

The schema description for recipeSlugs is fully explicit ('Array of 2-5 recipe slugs to compare (e.g. ['chicken-pho', 'beef-pho'])'), so schema coverage is 100%. The description only repeats the notion of comparing two or more recipes, which adds no new semantic information beyond the schema. Baseline 3 is appropriate.

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 uses a specific verb ('Compare') and resource ('recipes') and explicitly lists the comparison dimensions (prep time, cook time, servings, difficulty, ingredients), making the tool's purpose unambiguous. This distinguishes it from the sibling tool nutrition_compare, which focuses on nutritional values rather than side-by-side recipe attributes.

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?

The TRIGGERS section provides concrete natural-language examples that indicate when to invoke this tool ('compare X and Y recipes', 'X vs Y recipe', 'which recipe is faster'). While it doesn't explicitly mention when not to use it or name alternatives, the trigger list gives clear usage context, so this is above the minimum but not a full 5.

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

recipes_find_by_ingredientA
Read-onlyIdempotent
Inspect

Find recipes that use specific ingredients you have on hand. Great for reducing food waste and using up what's in your fridge or pantry. TRIGGERS:

  • 'what can I make with X and Y', 'recipes with chicken and rice'

  • 'I have X, what can I cook', 'use up my X'

  • 'fridge clean out recipes', 'what to make with leftovers'

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (1-50, default 10)
matchAllNoIf true, only return recipes containing ALL listed ingredients. If false (default), return recipes matching ANY ingredient.
ingredientsYesArray of ingredients to search for (e.g. ['chicken', 'rice', 'garlic'])
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing the safety profile. The description adds no specific behavioral details beyond this (e.g., no mention of default matching behavior or result limits), though these are covered in the schema. It does not contradict the annotations.

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?

The description is front-loaded with a clear purpose sentence, followed by a compact trigger list. Every element earns its place—the first sentence defines the operation, and the triggers make the invocation contexts immediately actionable.

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 simple read-only search tool with full schema coverage, the description adequately conveys the use case and scope. There is no output schema to describe return values, but the tool's behavior is straightforward and the trigger list provides enough context for an agent to invoke it correctly.

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 description coverage is 100%, with each parameter fully documented (ingredients, limit, matchAll). The description adds no parameter-level meaning beyond what the schema provides, but no compensation is needed because the schema already covers it thoroughly.

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 clearly states the tool's function: 'Find recipes that use specific ingredients you have on hand.' It also distinguishes from siblings like recipes_search and recipes_get by focusing on ingredient-driven discovery and provides sample trigger phrases that clarify the exact use case.

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?

The trigger list gives explicit contexts for when to use this tool ('what can I make with X and Y', 'I have X, what can I cook', 'fridge clean out recipes'). It does not explicitly contrast with alternatives like recipes_search, but the use cases are clear enough to guide selection.

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

recipes_getA
Read-onlyIdempotent
Inspect

Get full details of a specific recipe including ingredients, step-by-step instructions, nutrition, tips, and photo. TRIGGERS:

  • 'show me the recipe for X', 'get recipe X', 'recipe details for X'

  • 'how do I make X', 'ingredients for X', 'instructions for X'

  • 'what's in X', 'nutrition info for X'

ParametersJSON Schema
NameRequiredDescriptionDefault
slugOrIdYesRecipe URL slug (e.g. 'easy-mediterranean-chickpea-salad') or UUID identifier
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is established. The description adds the scope of the response (ingredients, instructions, etc.) but says nothing about error behavior, invalid IDs, or response formatting. This adds moderate value beyond annotations, but not enough for a 4.

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 front-loaded with a clear purpose sentence, followed by a structured list of trigger phrases. While the trigger list is longer than necessary, it is organized and useful for an AI agent, making it efficient rather than bloated.

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 single-parameter, read-only tool with strong annotations, the description provides sufficient context for selection and invocation. It could benefit from mentioning what happens if the slug/ID is invalid, but overall it is complete enough for an agent to use it correctly.

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%, with the slugOrId parameter fully documented as a URL slug or UUID. The description does not add any additional meaning or context for the parameter, 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?

The description clearly states a specific verb ('Get full details') and resource ('specific recipe'), and enumerates the included components (ingredients, instructions, nutrition, tips, photo), distinguishing it from more specialized sibling tools like recipes_get_nutrition or recipes_get_dietary.

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?

The TRIGGERS section explicitly lists user phrasings that should invoke this tool, providing clear when-to-use context. It does not, however, explicitly mention alternatives or exclusions relative to sibling tools like recipes_get_nutrition, which would make it a 5.

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

recipes_get_dietaryA
Read-onlyIdempotent
Inspect

Find recipes matching specific dietary requirements. Filters by tags, categories, and recipe metadata for dietary needs. TRIGGERS:

  • 'vegan recipes', 'gluten-free meals', 'keto options'

  • 'vegetarian dinner', 'dairy-free recipes', 'paleo meals'

  • 'low-carb options', 'whole30 recipes', 'nut-free dishes' DIETARY OPTIONS: vegan, vegetarian, gluten-free, dairy-free, keto, paleo, low-carb, whole30, nut-free, soy-free, egg-free, pescatarian, halal, kosher

ParametersJSON Schema
NameRequiredDescriptionDefault
dietYesDietary requirement to filter by (e.g. 'vegan', 'gluten-free', 'keto', 'dairy-free', 'paleo', 'low-carb', 'vegetarian')
limitNoMaximum number of results (1-50, default 10)
cuisineNoOptional cuisine filter to combine with dietary requirement (e.g. 'italian', 'thai')
Behavior3/5

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

Annotations already convey that this is a read-only, idempotent, non-destructive operation, so the description doesn't need to repeat safety traits. It adds context about filtering by tags/categories/metadata, but does not disclose return format, pagination, or potential empty results. Given the annotation coverage, this is adequate but not rich.

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 well-structured with a concise summary sentence followed by labeled TRIGGERS and DIETARY OPTIONS sections. Every section serves a purpose; the trigger examples and option list are directly useful. It could be slightly shorter, but the structure aids readability and scanning.

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 simple filtered lookup tool, the description covers the core behavior and available filters, and the schema handles parameter details. There is no output schema, but the return type (recipes) is implicit from the name and tool family. A sentence about combining with cuisine or describing the output structure would improve completeness, but it's not critical.

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?

The input schema has 100% description coverage for all three parameters, so baseline is 3. The description adds value by enumerating all supported dietary options (vegan, gluten-free, keto, etc.) which are not defined as enums in the schema. This full list helps agents construct valid inputs beyond the schema's examples.

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 clearly states the tool's function: 'Find recipes matching specific dietary requirements.' It specifies the resource (recipes) and the filtering mechanism (tags, categories, metadata), which distinguishes it from sibling tools like recipes_get or recipes_search. The verb 'find' and scoping to dietary needs are unambiguous.

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?

The description provides concrete trigger examples ('vegan recipes', 'gluten-free meals') and lists available dietary options, giving agents clear context on when to use this tool. It does not explicitly state exclusions or alternatives, but the specialized purpose is evident from the name and sibling context.

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

recipes_get_nutritionA
Read-onlyIdempotent
Inspect

Get detailed nutrition information for a specific recipe. Returns calories, macros, and dietary labels. TRIGGERS:

  • 'nutrition for X', 'calories in X', 'how healthy is X'

  • 'macros for X', 'carbs in X recipe', 'protein in X'

  • 'is X healthy', 'dietary info for X', 'nutrition facts'

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeSlugYesRecipe slug to get nutrition info for (e.g. 'chicken-pho', 'caesar-salad')
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful return-value context ('calories, macros, dietary labels') but does not disclose potential edge cases like invalid recipe slugs or error behavior. Thus it adds some value beyond annotations but not extensive behavioral detail.

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 front-loaded with a clear purpose sentence, followed by a useful trigger list. The trigger list is somewhat repetitive but serves a functional role in guiding the agent. It is not overly verbose, and every section earns its 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?

For a simple, read-only tool with one parameter and no output schema, the description provides sufficient context: it states the input (recipeSlug via schema), the output (calories, macros, dietary labels), and clear usage triggers. No critical information is missing for an agent to select and invoke the tool correctly.

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?

The input schema fully describes the single parameter 'recipeSlug' with type, maxLength, and examples. The description reinforces that it targets a 'specific recipe' but does not add additional semantic meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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 clearly states the tool's function: 'Get detailed nutrition information for a specific recipe' and lists specific return types (calories, macros, dietary labels). This distinguishes it from sibling tools like recipes_get_dietary or nutrition_analyze by being specifically tied to a recipe.

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?

The 'TRIGGERS' section provides clear examples of when to use the tool ('nutrition for X', 'calories in X', 'is X healthy'). However, it does not explicitly mention when not to use it or name alternative tools, so it lacks the exclusion/alternative guidance needed for a 5.

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

recipes_get_quickA
Read-onlyIdempotent
Inspect

Find quick recipes that can be made within a specified time limit. Perfect for busy weeknights or quick meals. TRIGGERS:

  • 'quick recipes', 'fast meals', '15 minute recipes'

  • 'easy weeknight dinner', 'recipes under 30 minutes'

  • 'fast lunch ideas', 'quick and easy meals'

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (1-20, default 10)
mealTypeNoOptional meal type filter: breakfast, lunch, dinner, snack, dessert
maxMinutesNoMaximum total cooking time in minutes (5-120, default 30)
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful context about the time-limit parameter and the quick-meal focus, which goes beyond the annotations without contradicting them.

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 concise and front-loaded, with a clear purpose statement followed by a structured trigger list. The trigger list is slightly long but serves as a practical reference for intent matching, earning its place.

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?

The tool is simple with well-documented parameters and annotations. The description explains the core behavior and usage context, which is sufficient for the tool's complexity. The absence of an output schema is mitigated by the clear 'Find quick recipes' statement.

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?

The input schema has 100% coverage with full descriptions for all three parameters (limit, mealType, maxMinutes). The description only reiterates the time-limit concept already present in the schema, providing no additional semantic value beyond the structured data.

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 clearly states the tool's function: finding quick recipes within a time limit. It distinguishes the tool from siblings like recipes_get and recipes_search by emphasizing the time constraint and quick-meal context.

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?

The trigger phrases provide concrete examples of when to use this tool, such as 'quick recipes', 'fast meals', and 'recipes under 30 minutes'. It also mentions the busy weeknight use case. However, it does not explicitly name alternative tools or state when NOT to use it, so it falls short of a 5.

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

recipes_get_randomA
Read-onlyIdempotent
Inspect

Get a random recipe suggestion. Perfect for when you can't decide what to cook. Optionally filter by cuisine or meal type. TRIGGERS:

  • 'surprise me', 'random recipe', 'I can't decide what to cook'

  • 'pick a recipe for me', 'what should I cook tonight'

  • 'random dinner idea', 'suggest something to make'

ParametersJSON Schema
NameRequiredDescriptionDefault
cuisineNoOptional cuisine filter (e.g. 'italian', 'vietnamese')
mealTypeNoOptional meal type filter: breakfast, lunch, dinner, snack, dessert
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds no behavioral details beyond stating randomness, which is already implied by the name. It does not contradict annotations, but also provides no extra transparency (e.g., whether results can repeat, how many results are returned).

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 brief and front-loaded with the main function. The trigger list adds some redundancy but is useful for an agent to recognize user intent. It is not overly verbose.

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 simple read-only tool with good annotations and 100% schema coverage, the description adequately conveys purpose. It does not explain the return format, but 'a random recipe' implies a single result. This is sufficient for the tool's low complexity.

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?

The schema covers 100% of parameters with descriptions for cuisine and mealType. The description only repeats 'Optionally filter by cuisine or meal type' without adding new meaning, so it meets the baseline for schema-covered parameters.

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 clearly states the verb and resource: 'Get a random recipe suggestion.' It also mentions optional filters, which distinguishes it from sibling tools like recipes_search or recipes_get that are not random. The purpose is immediately obvious.

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?

The description provides clear context for when to use it ('when you can't decide what to cook') and includes trigger phrases like 'surprise me' and 'random recipe.' However, it does not explicitly contrast with alternatives such as recipes_search or recipes_get, which would earn a 5.

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

recipes_list_by_cuisineA
Read-onlyIdempotent
Inspect

Browse recipes filtered by world cuisine type. Returns public recipes from a specific culinary tradition. TRIGGERS:

  • 'show me Vietnamese recipes', 'Italian food', 'Mexican dishes'

  • 'what Thai recipes do you have', 'Japanese cooking'

  • 'explore Indian cuisine', 'Korean food options' SUPPORTED CUISINES: Vietnamese, Italian, Mexican, Thai, Indian, Japanese, Korean, French, Chinese, Mediterranean, American, Greek, Spanish, Middle Eastern, Ethiopian, Caribbean, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (1-50, default 10)
cuisineYesCuisine type to filter by (e.g. 'vietnamese', 'italian', 'mexican', 'thai', 'indian', 'japanese', 'korean', 'french', 'chinese', 'mediterranean')
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context by stating 'Returns public recipes,' clarifying that only public, not user-specific, recipes are returned. However, it does not disclose details about pagination, error behavior, or other operational aspects, keeping it at a baseline of 3.

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 moderately sized and well-structured with clear sections for TRIGGERS and SUPPORTED CUISINES. While it is longer than a minimal two-sentence description, all content is relevant and directly aids tool selection and invocation, so it earns a 4.

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 simple read-only list tool with good annotations and full schema coverage, the description provides sufficient context: what it returns (public recipes), how to filter (cuisine), and examples of user queries. It does not explain return format, but no output schema exists and the tool is straightforward, so a 4 is appropriate.

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% with both parameters having descriptions, so the baseline is 3. The description adds value by listing SUPPORTED CUISINES and providing trigger examples that show how the cuisine parameter maps to natural language, which goes beyond the schema's examples. This justifies a 4.

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 clearly states the tool's function with a specific verb and resource: 'Browse recipes filtered by world cuisine type' and 'Returns public recipes from a specific culinary tradition.' This distinguishes it from sibling tools like recipes_search or recipes_find_by_ingredient, which focus on other criteria.

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?

The description provides clear context with specific TRIGGERS examples like 'show me Vietnamese recipes' and 'Italian food,' which help an agent recognize when to invoke this tool. However, it does not explicitly state when not to use it or mention alternatives, so it falls short of a 5.

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

recipes_scaleA
Read-onlyIdempotent
Inspect

Scale a recipe for different serving sizes. Returns the original ingredients with a scaling multiplier to adjust quantities. TRIGGERS:

  • 'scale recipe X for 8 people', 'double the recipe for X'

  • 'halve the recipe', 'adjust servings for X'

  • 'how much for X servings', 'recipe for a crowd'

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeSlugYesRecipe slug to scale (e.g. 'chicken-pho')
targetServingsYesDesired number of servings (1-100)
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing the safety profile. The description adds value by describing the return behavior: it returns original ingredients with a multiplier, which is a meaningful behavioral detail beyond the annotations. No contradictions.

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?

The description is succinct and well-structured: a one-sentence purpose statement followed by a relevant trigger list. Every sentence serves a purpose, and the triggers are practical without being redundant. The format is easy to scan for an AI agent.

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?

For a simple, two-parameter, read-only scaling tool, the description is complete. It covers the core function, return value shape, and typical user phrasings. No output schema exists, but the description gives a sufficient hint of the result without needing further detail. The combination of schema annotations and description fully equips an agent.

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% with descriptions for both parameters: recipeSlug includes an example ('chicken-pho') and targetServings has a range (1-100). The description provides trigger examples but no additional parameter semantics beyond what the schema already documents, so a baseline of 3 is appropriate.

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 the tool's purpose with a specific verb and resource: 'Scale a recipe for different serving sizes.' It also clarifies the output ('Returns the original ingredients with a scaling multiplier to adjust quantities'), which distinguishes it from sibling tools like recipes_get or recipes_search that fetch or search rather than scale.

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?

The TRIGGERS section provides concrete example phrases for when to use the tool, such as 'scale recipe X for 8 people' and 'halve the recipe'. This gives clear usage context without explicitly naming alternatives, but the scope is well-defined and distinct from sibling tools like cooking_convert_units or recipes_compare.

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

recipes_seasonalB
Read-onlyIdempotent
Inspect

Find recipes perfect for a specific season or month. Returns seasonal dishes with fresh, in-season ingredients. TRIGGERS:

  • 'what's good to cook in summer', 'fall recipes', 'winter comfort food'

  • 'seasonal dishes for March', 'spring recipes'

  • 'holiday recipes', 'Thanksgiving ideas', 'Christmas dinner'

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of recipes to return
seasonYesSeason to find recipes for
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description doesn't need to restate safety. It adds little about actual behavior, such as that only four seasons are accepted, and confuses with the 'month' promise, which is a behavioral limitation not disclosed.

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 concise, front-loading the core purpose in the first sentence. The trigger list is helpful but somewhat redundant and includes a misleading 'March' example, which wastes a bit of space.

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

Completeness3/5

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

For a simple tool with strong annotations and schema, the description is mostly sufficient. However, it fails to mention that only the four seasons are valid and does not clarify what the response looks like. The 'month' contradiction is a notable gap that could lead to incorrect usage.

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

Parameters2/5

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

Schema has 100% coverage for both parameters, so baseline is 3. The description does not add useful parameter semantics and actively misleads by implying 'month' is a valid input when the only parameter is an enum of four seasons.

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 clearly states it finds recipes for a specific season, with a verb and resource ('Find recipes perfect for a specific season or month'). However, the mention of 'month' is misleading because the schema only supports a season enum, which introduces ambiguity.

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?

The TRIGGERS provide explicit example queries like 'fall recipes' and 'Thanksgiving ideas', giving clear context on when to use the tool. However, there is no mention of alternative tools or when not to use it, and one trigger ('seasonal dishes for March') implies month support not present in the schema.

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

shopping_generate_grocery_listA
Read-onlyIdempotent
Inspect

Generate a grocery shopping list from recipe ingredients. Collects ingredients across multiple recipes and provides an Instacart delivery link for same-day ordering. TRIGGERS:

  • 'make a grocery list for X', 'shopping list for X recipe'

  • 'what do I need to buy for X', 'ingredients I need to buy'

  • 'generate shopping list', 'create a grocery list from these recipes' CATEGORIES: produce, dairy, meat, seafood, deli, bakery, frozen, pantry, snacks, beverages, household, other

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeSlugsYesArray of recipe slugs to generate the grocery list from (e.g. ['chicken-pho', 'banh-mi-sandwich'])
servingsMultiplierNoMultiply all ingredient quantities by this factor (e.g. 2 for double portions, 0.5 for half)
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe, non-mutating operation. The description adds valuable behavioral context: it mentions the output includes an Instacart delivery link and lists categories such as produce, dairy, etc., which sets expectations for the response format beyond what annotations provide.

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 well-structured with clear sections for triggers and categories. It is reasonably concise, though the trigger and category lists add length. Every section serves a purpose: triggers guide usage, categories set output expectations. It's informative without being overly verbose.

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 simple read-only tool with two well-documented parameters and no output schema, the description covers the essential context: purpose, usage triggers, and expected output (Instacart link, categories). It doesn't dive into error handling or edge cases, but it is sufficient for an agent to invoke the tool correctly. The sibling context (shopping_instacart) is not explicitly differentiated, but the description's focus on recipe aggregation makes it clear.

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 description coverage is 100%, with both recipeSlugs and servingsMultiplier having clear descriptions in the schema. The tool description does not add additional parameter-level semantics, but this is acceptable since the schema carries the full burden. Baseline of 3 is appropriate.

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 clearly states the tool's function with specific verbs: 'Generate a grocery shopping list from recipe ingredients' and 'Collects ingredients across multiple recipes'. It distinguishes itself from sibling tools like shopping_instacart by explicitly mentioning the aggregation of ingredients and the Instacart delivery link, making its unique value clear.

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?

The TRIGGERS section provides explicit example phrases for when to use this tool, such as 'make a grocery list for X' and 'generate shopping list'. This gives concrete guidance on input phrasing and usage scenarios, effectively matching user intents to the tool. It clearly communicates the tool's context, though it doesn't explicitly exclude alternatives.

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

shopping_instacartA
Read-onlyIdempotent
Inspect

Get Instacart delivery information for recipe ingredients. Returns a direct link to order groceries from a recipe through Instacart for same-day delivery. TRIGGERS:

  • 'order ingredients for X', 'buy groceries for X recipe'

  • 'Instacart delivery for X', 'shop for X on Instacart'

  • 'deliver ingredients', 'get groceries delivered', 'order from Instacart'

ParametersJSON Schema
NameRequiredDescriptionDefault
postalCodeNoPostal/ZIP code for delivery area and store availability (e.g. '98101', '10001')
recipeSlugYesRecipe slug to shop ingredients for (e.g. 'chicken-pho', 'pad-thai')
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds that it returns a direct link for same-day delivery, which is informative but not deeply behavioral. It does not mention auth, rate limits, or any side effects beyond what annotations imply, so it adds only moderate context.

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?

The description is compact and front-loaded, stating the core function in the first sentence. The bulleted trigger list is concise and organized, adding practical usage examples without unnecessary fluff. Every sentence earns its place.

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?

Given the simple tool (2 params, full schema coverage, good annotations), the description sufficiently covers what the tool does and its trigger conditions. It states the return type (direct link) and the delivery context. It could mention response structure, but that is not necessary given the simplicity and annotation coverage.

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 description coverage is 100%, and both parameters (recipeSlug and postalCode) are already well-documented with examples in the schema. The description does not add any additional parameter semantics beyond restating that it deals with recipe ingredients and delivery, so the baseline score of 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?

The description uses a specific verb ('Get') and resource ('Instacart delivery information for recipe ingredients'), clearly stating it returns a direct link to order groceries. It distinguishes itself from sibling tools like shopping_generate_grocery_list by focusing on Instacart-specific delivery. The trigger examples further reinforce the purpose.

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?

The trigger list explicitly gives example phrases for when to use the tool, such as 'order ingredients for X' and 'Instacart delivery for X'. This provides clear context. However, it does not explicitly mention alternatives or when-not-to-use cases, so it falls short of a 5.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources