Skip to main content
Glama
Symfomany

Recettes MCP Server

by Symfomany

Recettes MCP Server

Ce projet est un serveur MCP (Model Context Protocol) qui fournit des outils et ressources pour la gestion de recettes culinaires, incluant des fonctionnalités de scraping web et de génération de recettes magiques.

Technologies et Stack Utilisées

Langage de Programmation

  • Python 3.12+ : Langage principal utilisé pour développer le serveur.

Frameworks et Bibliothèques

  • FastMCP : Framework de la bibliothèque mcp pour créer des serveurs MCP rapidement. Utilisé pour définir les ressources, outils et prompts du serveur.

  • Requests : Bibliothèque pour effectuer des requêtes HTTP, utilisée pour le scraping web.

  • BeautifulSoup4 : Bibliothèque pour analyser et extraire des données HTML, utilisée conjointement avec requests pour scraper des sites comme Marmiton.org.

  • Python-Marmiton : Bibliothèque spécifique pour interagir avec le site Marmiton.org.

  • PyMongo : Bibliothèque pour interagir avec MongoDB, utilisée pour interroger des bases de données.

Outils de Développement

  • uv : Outil de gestion de paquets et d'exécution Python moderne, utilisé pour exécuter le serveur via uv run python main.py.

  • MCP-CLI : Outil en ligne de commande pour gérer les serveurs MCP.

Configuration

  • pyproject.toml : Fichier de configuration pour les métadonnées du projet, les dépendances et les exigences Python.

  • server_config.json : Configuration spécifique pour le serveur MCP, définissant la commande et les arguments pour lancer le serveur.

Fonctionnalités Principales

  • Ressources : Fournit des listes d'ingrédients par défaut et des astuces de cuisine.

  • Outils : Permet de lister des ingrédients, inventer des recettes, scraper des recettes de Noël, gérer des ingrédients magiques, et interroger une base de données MongoDB 'recipies' (collections : comments, users, ustensils).

  • Prompts : Offre des prompts pour générer des recettes magiques et des astuces culinaires magiques.

Related MCP server: scraps-kitchen-mcp

Installation et Exécution

  1. Assurez-vous d'avoir Python 3.12+ installé.

  2. Installez les dépendances avec uv :

    uv sync
  3. Lancez le serveur :

    uv run python main.py

Configuration MCP

Le serveur est configuré via server_config.json pour être utilisé avec des clients MCP comme LM Studio.

Utilisation avec des Prompts

Ce serveur MCP est conçu pour être utilisé avec un client compatible, comme un modèle de langage (LLM). Vous pouvez interagir avec le serveur en utilisant des prompts en langage naturel. Voici quelques exemples de ce que vous pouvez demander :

Explorer les Recettes de Noël

Vous pouvez rechercher, lister et obtenir des détails sur les recettes de Noël.

  • "Liste-moi toutes les recettes de Noël."

    • Cette commande appelle l'outil list_christmas_recipes et retourne une liste complète des recettes de Noël disponibles.

  • "Je cherche une recette avec des marrons."

    • L'outil search_by_ingredient est utilisé avec le paramètre ingredient="marrons" pour trouver toutes les recettes contenant cet ingrédient.

  • "Donne-moi une recette de Noël au hasard."

    • L'outil get_random_recipe est appelé pour retourner une seule recette de Noël de manière aléatoire.

  • "Propose-moi un menu complet pour le réveillon."

    • L'outil suggest_christmas_menu génère un menu complet avec une entrée, un plat principal et un dessert.

  • "J'aimerais faire la recette de la 'Dinde de Noël', mais pour 12 personnes."

    • L'outil scale_recipe est utilisé avec recipe_name="Dinde de Noël" and servings=12 pour ajuster les quantités d'ingrédients.

Créer et Inventer des Recettes

Le serveur peut vous aider à créer de nouvelles recettes à partir des ingrédients que vous avez.

  • "Invente-moi une recette avec du poulet, des champignons et de la crème."

    • L'outil invent_recipe est appelé avec ingredients=["poulet", "champignons", "crème"] pour créer une nouvelle recette.

  • "Génère une recette à partir des ingrédients suivants : saumon, aneth, citron."

    • L'outil generate_recipe_from_ingredients prendra la liste des ingrédients pour créer une nouvelle recette de Noël.

Cuisine Magique

Pour une touche de fantaisie, vous pouvez explorer la cuisine magique.

  • "Je veux créer une recette magique avec de la poudre de licorne et des larmes de sirène."

    • L'outil invent_magical_recipe est appelé avec magical_ingredients=["poudre de licorne", "larmes de sirène"].

  • "Comment puis-je utiliser du sang de dragon en cuisine sans me faire maudire ?"

    • Le prompt astuces-magiques est utilisé pour générer une réponse qui donne des conseils sur l'utilisation d'ingrédients magiques.

  • "Crée une recette magique fantastique et amusante avec des ailes de fée et des cristaux de lune."

    • Le prompt recette-magique est utilisé avec les ingrédients ["ailes de fée", "cristaux de lune"] pour générer une recette magique détaillée.

Outils Utilitaires

Le serveur fournit également des outils pratiques.

  • "Crée une liste de courses pour la recette 'Bûche de Noël'."

    • L'outil create_shopping_list est appelé avec recipe_name="Bûche de Noël" pour générer la liste des ingrédients nécessaires.

  • "Quel vin irait bien avec la 'Dinde de Noël' ?"

    • L'outil suggest_wine_pairing est appelé avec recipe_name="Dinde de Noël" pour suggérer un accord mets-vin.

  • "Quelles sont les dernières recettes de Noël sur Marmiton ?"

    • L'outil scrape_christmas_recipes est appelé pour scraper les titres des dernières recettes de Noël sur Marmiton.org.

Available Tools

18 tools
create_shopping_listB

Creates a shopping list for a recipe.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipe_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Creates' implies a write operation, but the description doesn't specify permissions, side effects, error handling, or output format. It lacks details on what 'creates' entails (e.g., saves to a database, generates a list format) and behavioral traits like rate limits or idempotency, leaving significant gaps for a mutation tool.

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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action ('Creates') and resource, making it easy to parse. Every part of the sentence contributes to understanding, achieving optimal conciseness for the given information.

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?

Given the tool has one parameter with 0% schema coverage and an output schema exists, the description is minimally adequate. It covers the basic purpose but lacks details on usage guidelines, behavioral transparency, and parameter semantics. The output schema mitigates the need to explain return values, but for a creation tool with no annotations, more context on behavior and usage would improve completeness.

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 description mentions 'for a recipe', which aligns with the single parameter 'recipe_name' in the input schema. However, schema description coverage is 0%, so the schema provides no parameter details. The description adds minimal semantic context by linking the parameter to recipe creation but doesn't explain the parameter's role, format, or constraints beyond this basic association, partially compensating for the low coverage.

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 the tool's purpose with a specific verb ('Creates') and resource ('shopping list'), and specifies the context ('for a recipe'). It distinguishes from siblings like 'list_ingredients' or 'scale_recipe' by focusing on creation rather than listing or modification. However, it doesn't explicitly differentiate from all siblings, such as 'generate_recipe_from_ingredients', which might also involve shopping list creation indirectly.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a recipe first), exclusions, or comparisons to siblings like 'list_ingredients' or 'search_by_ingredient'. The context 'for a recipe' implies usage but lacks explicit when/when-not instructions or named alternatives.

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

elicit_user_needsC

Helps the user create a recipe based on their needs.

ParametersJSON Schema
NameRequiredDescriptionDefault
ingredientsNo
utensilsNo
timeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Helps the user create a recipe,' which suggests a generative or interactive process, but doesn't detail how it works (e.g., whether it prompts for input, returns structured data, or has side effects). This is insufficient for a tool with potential complexity in eliciting needs.

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

Conciseness4/5

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

The description is a single, efficient sentence that states the tool's purpose without unnecessary words. It's front-loaded and easy to parse, though it could be more informative. The brevity is appropriate but under-specified rather than concise.

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

Completeness2/5

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

Given 3 parameters with 0% schema coverage, no annotations, and an output schema (which isn't described), the description is incomplete. It doesn't address input semantics, behavioral traits, or how it relates to sibling tools, making it inadequate for effective tool selection and use in a complex environment.

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 description coverage is 0%, so the description must compensate for undocumented parameters. It doesn't mention any parameters (ingredients, utensils, time) or explain their roles in eliciting needs. This leaves the input schema's purpose unclear, failing to add meaning beyond the bare schema.

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

Purpose3/5

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

The description states the tool 'Helps the user create a recipe based on their needs,' which provides a general purpose (verb: 'create a recipe') but is vague about what 'elicit_user_needs' specifically entails compared to siblings like 'generate_recipe_from_ingredients' or 'invent_recipe.' It doesn't clearly differentiate itself, making it ambiguous whether it's for gathering input or generating recipes directly.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives is provided. The description implies it's for recipe creation based on user needs, but it doesn't specify contexts, prerequisites, or exclusions, such as whether it's for initial brainstorming versus using existing ingredients. With many sibling tools for recipe generation, this lack of differentiation leaves usage unclear.

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

generate_recipe_from_ingredientsB

Generates a new Christmas recipe from a list of ingredients.

ParametersJSON Schema
NameRequiredDescriptionDefault
ingredientsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool generates a recipe, implying a creation operation, but doesn't disclose any behavioral traits such as whether it's deterministic, requires authentication, has rate limits, or what the output format is. This is a significant gap for a tool with no 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 a single, efficient sentence that front-loads the core purpose without any wasted words. It's appropriately sized for the tool's complexity, making it easy for an agent to parse quickly.

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?

Given the tool has an output schema (which covers return values), no annotations, and low parameter schema coverage, the description is minimally adequate. It states what the tool does but lacks behavioral context and usage guidance, making it incomplete for optimal agent operation without additional structured data.

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 1 parameter with 0% description coverage, and the description adds some meaning by specifying that the parameter is a 'list of ingredients'. However, it doesn't provide details on format, constraints, or examples, so it only partially compensates for the low schema coverage, aligning with the baseline expectation.

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 the tool's purpose with a specific verb ('generates') and resource ('new Christmas recipe'), and specifies the input ('from a list of ingredients'). However, it doesn't explicitly distinguish this tool from similar siblings like 'invent_recipe' or 'invent_magical_recipe', which might also generate recipes, so it doesn't fully achieve sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or compare it to other recipe-generation tools in the sibling list, such as 'invent_recipe' or 'get_random_recipe', leaving the agent without context for selection.

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

get_random_recipeB

Returns a random Christmas recipe.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden but only states the basic action without behavioral details. It doesn't disclose if the recipe is from a fixed set, how randomness is implemented, potential rate limits, or error conditions, which are important for an agent to understand its behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words, clearly front-loading the core functionality. It's appropriately sized for a simple tool, making it easy to parse quickly.

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?

Given the tool's simplicity (0 parameters, output schema exists), the description is minimally adequate but lacks depth. Without annotations, it should explain more about the randomness (e.g., source or constraints) to fully guide an agent, though the output schema may cover return values.

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 tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add parameter semantics, but this is acceptable given the lack of parameters, aligning with the baseline for zero parameters.

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 the action ('Returns') and resource ('a random Christmas recipe'), making the purpose understandable. However, it doesn't differentiate from siblings like 'get_recipe_by_index' or 'list_christmas_recipes' by specifying what makes it 'random' (e.g., selection method or scope).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. With siblings like 'get_recipe_by_index' (specific recipe) and 'list_christmas_recipes' (all recipes), the description lacks context on when randomness is preferred, such as for inspiration or surprise, leaving usage unclear.

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

get_recipe_by_indexB

Retrieves a Christmas recipe by its index (1-based).

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states it retrieves by index without disclosing behavioral traits such as error handling for invalid indices, response format, or any constraints like rate limits. It mentions the index is 1-based, which is useful but insufficient for a tool with no 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 a single, efficient sentence with no wasted words, clearly front-loaded with the core action. Every part earns its place by specifying key details like 'Christmas recipe' and '1-based'.

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?

Given the tool's simplicity (1 parameter) and the presence of an output schema, the description is adequate but lacks depth. It doesn't explain what a 'Christmas recipe' entails or potential errors, relying on the output schema for return values, which is acceptable but leaves gaps in behavioral context.

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 description adds meaning beyond the input schema by specifying that the index is 1-based, which is not covered in the schema (0% description coverage). Since there's only one parameter, this compensates well, though it doesn't detail range or validation.

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 the verb ('retrieves') and resource ('Christmas recipe'), specifying it's by index and noting it's 1-based. It distinguishes from siblings like 'get_random_recipe' and 'list_christmas_recipes' by focusing on index-based retrieval, though it doesn't explicitly contrast them.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'get_random_recipe' or 'list_christmas_recipes' is provided. The description implies usage when you have a specific index, but lacks explicit context, prerequisites, or exclusions.

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

invent_magical_recipeC

Invents a magical recipe from magical ingredients.

ParametersJSON Schema
NameRequiredDescriptionDefault
magical_ingredientsYes
servingsNo
magic_typeNoenchantement

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'invents' a recipe, implying a creative or generative action, but doesn't clarify if this is a read-only operation, requires permissions, has side effects, or involves rate limits. The description lacks details on output format or error handling, leaving significant gaps in understanding tool behavior.

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

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the core action ('invents a magical recipe'). There's no wasted verbiage, and it directly states the purpose. However, it could be more structured by including key details, but as-is, it's appropriately concise for its limited content.

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?

Given the tool has an output schema (which handles return values), no annotations, and low schema coverage, the description is incomplete. It covers the basic purpose but misses usage guidelines, parameter details, and behavioral context. For a creative tool with 3 parameters, this is minimally viable but leaves clear gaps in agent understanding.

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 description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'magical ingredients,' which aligns with the 'magical_ingredients' parameter, but doesn't explain the 'servings' or 'magic_type' parameters or their defaults. The description adds minimal meaning beyond the schema, failing to address the coverage gap adequately.

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

Purpose3/5

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

The description states the tool 'invents a magical recipe from magical ingredients,' which provides a clear verb ('invents') and resource ('magical recipe'), but it's vague about what 'invents' entails (e.g., generation vs. creation) and doesn't differentiate from siblings like 'invent_recipe' or 'generate_recipe_from_ingredients.' It avoids tautology by not restating the name or title, but lacks specificity.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'invent_recipe' (non-magical variant) or 'generate_recipe_from_ingredients,' nor does it provide context such as prerequisites or exclusions. Usage is implied only by the mention of 'magical' ingredients, but this is insufficient for effective tool selection.

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

invent_recipeC

Invents a recipe from ingredients (structured format).

ParametersJSON Schema
NameRequiredDescriptionDefault
ingredientsYes
servingsNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'invents' (implying creative generation) and 'structured format', but fails to disclose critical behavioral traits such as whether this is a read-only or mutating operation, potential rate limits, authentication needs, or what the output looks like (e.g., recipe details, steps, or just a name). This leaves significant gaps for a tool that likely involves AI generation.

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 a single sentence, front-loading the core action. However, the parenthetical '(structured format)' feels tacked on and could be integrated more smoothly, and the brevity comes at the cost of completeness, as noted in other dimensions.

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

Completeness2/5

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

Given the complexity (creative generation tool with no annotations, 0% schema coverage, and no output schema), the description is incomplete. It doesn't explain the tool's behavior, output format, or how it differs from siblings, making it inadequate for an agent to use effectively without additional context or trial-and-error.

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 description coverage is 0%, so the description must compensate. It only vaguely references 'ingredients (structured format)', which partially explains the 'ingredients' parameter but doesn't clarify the structure (e.g., list of strings, quantities, or categories) or mention the 'servings' parameter at all. This adds minimal meaning beyond the bare schema.

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

Purpose3/5

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

The description 'Invents a recipe from ingredients (structured format)' clearly states the action ('invents') and resource ('recipe'), but it's vague about what 'invents' entails (e.g., creative generation vs. retrieval) and doesn't distinguish it from siblings like 'generate_recipe_from_ingredients' or 'invent_magical_recipe'. The parenthetical '(structured format)' adds some specificity but is ambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. With siblings like 'generate_recipe_from_ingredients' and 'invent_magical_recipe', the description lacks any context about differences (e.g., mundane vs. magical recipes, input formats, or output styles), leaving the agent to guess based on tool names alone.

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

list_christmas_recipesB

Returns a list of all Christmas recipes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns a list but doesn't describe the return format, pagination, sorting, or any limitations (e.g., number of recipes, freshness of data). For a read operation with zero annotation coverage, this leaves significant gaps in understanding 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.

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action ('Returns a list') and resource ('all Christmas recipes'), making it easy to scan. Every word earns its place without redundancy.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, read-only operation) and the presence of an output schema (which should document return values), the description is minimally adequate. However, it lacks context about the list's scope (e.g., all recipes ever, current database), which could be important for usage. With no annotations, it should ideally mention that it's a safe read operation.

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 tool has 0 parameters, and schema description coverage is 100% (though empty). The description doesn't need to add parameter semantics, so it meets the baseline of 4 for zero-parameter tools. It appropriately doesn't discuss inputs beyond confirming no filtering or arguments are required.

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 the tool's purpose with a specific verb ('Returns') and resource ('list of all Christmas recipes'). It distinguishes from siblings like 'get_random_recipe' or 'search_by_ingredient' by implying a comprehensive, unfiltered list. However, it doesn't explicitly differentiate from 'scrape_christmas_recipes' which might have overlapping functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'get_random_recipe' for a single recipe, 'search_by_ingredient' for filtered results, or 'scrape_christmas_recipes' which might be a data source. There's no context about prerequisites or exclusions.

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

list_ingredientsC

Returns a list of ingredients based on a simple style.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNobasics

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions returning a list but doesn't specify format, pagination, or any constraints like rate limits or authentication needs. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, though it could be more structured by explicitly separating purpose from parameter context.

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?

Given the tool has an output schema, the description doesn't need to explain return values. However, with no annotations, 1 parameter at 0% coverage, and multiple sibling tools, the description is incomplete—it lacks usage context, parameter details, and behavioral traits, making it only minimally adequate.

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?

The schema has 1 parameter with 0% description coverage, so the description must compensate. It mentions 'based on a simple style', which loosely relates to the 'style' parameter, but doesn't explain what 'style' means, possible values, or how it affects the output. This adds minimal value beyond the schema.

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

Purpose3/5

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

The description states the tool 'Returns a list of ingredients', which provides a basic verb+resource combination. However, it's vague about what 'based on a simple style' means, and it doesn't distinguish this tool from sibling tools like 'list_magical_ingredients' or 'search_by_ingredient', leaving ambiguity about its specific scope.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, and with multiple sibling tools related to ingredients and recipes, the lack of differentiation makes it unclear when this tool is the appropriate choice.

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

list_magical_ingredientsB

Returns a list of magical ingredients by style.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNobasics

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns a list, implying a read-only operation, but lacks details on permissions, rate limits, pagination, or error handling. For a tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It is front-loaded with the core purpose and includes the key parameter constraint, making it easy to parse and understand quickly.

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?

Given the tool's low complexity (one optional parameter) and the presence of an output schema, the description is minimally complete. However, with no annotations and multiple sibling tools, it lacks context on behavioral traits and usage differentiation, leaving gaps for the agent to navigate.

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 description adds minimal semantics beyond the input schema: it mentions the 'style' parameter but provides no details on allowed values or examples. With 0% schema description coverage and only one parameter, the description partially compensates but doesn't fully clarify usage, resulting in an adequate baseline score.

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 the tool's purpose with a specific verb ('Returns') and resource ('list of magical ingredients'), and it includes a key parameter constraint ('by style'). However, it doesn't explicitly differentiate from sibling tools like 'list_ingredients' or 'search_by_ingredient', which could cause confusion in selection.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools related to ingredients and recipes (e.g., 'list_ingredients', 'search_by_ingredient'), but the description offers no context on use cases, prerequisites, or exclusions, leaving the agent to infer usage.

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

query_commentsC

Queries the 'comments' collection of the 'recipies' MongoDB database.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While it indicates this is a query operation (implying read-only), it doesn't specify authentication requirements, rate limits, pagination behavior, error conditions, or what happens with null queries. The description provides minimal behavioral context beyond the basic operation type.

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 extremely concise - a single sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded with the core functionality and wastes no space on redundant information.

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?

Given the tool has an output schema (which handles return values) and relatively simple functionality (a single query parameter), the description provides the minimum viable information about what the tool does. However, with no annotations and poor parameter documentation, there are significant gaps in understanding how to use this tool effectively in context with its many sibling tools.

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?

The schema has 0% description coverage, so the description must compensate for undocumented parameters. The description mentions 'Queries the comments collection' but provides no information about the 'query' parameter's purpose, format, or MongoDB query syntax. This leaves the single parameter essentially undocumented despite the schema coverage gap.

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 the action ('Queries') and target resource ('comments' collection of 'recipies' MongoDB database), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling query tools like query_users or query_ustensils, which follow similar patterns for different collections.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools that query different collections (query_users, query_ustensils) and other search tools (search_by_ingredient, get_recipe_by_index), but the description offers no context about when this specific comments query is appropriate versus those alternatives.

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

query_usersC

Queries the 'users' collection of the 'recipies' MongoDB database.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states it's a query operation without disclosing behavioral traits. It doesn't mention whether this is read-only, if it requires authentication, what the output looks like (though an output schema exists), potential rate limits, or error conditions. For a database query tool, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is extremely concise—a single sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it efficient and easy to parse, though this conciseness comes at the cost of completeness.

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?

Given the tool's moderate complexity (database query), no annotations, and 0% schema coverage, the description is incomplete. However, the existence of an output schema mitigates some gaps by documenting return values. The description covers the basic purpose but lacks usage context, parameter details, and behavioral transparency needed for effective use.

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 description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what the 'query' parameter should contain (e.g., MongoDB filter syntax), its purpose, or examples. The single parameter remains undocumented, making it hard for an agent to use correctly without external knowledge.

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 the action ('Queries') and target resource ('users' collection of the 'recipies' MongoDB database), making the purpose immediately understandable. However, it doesn't differentiate from sibling query tools like 'query_comments' or 'query_ustensils' beyond specifying the collection name, missing an opportunity to clarify what makes this query distinct.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer this over other user-related tools (none listed as siblings) or other query tools, and offers no context about prerequisites, limitations, or typical use cases. This leaves the agent with minimal direction.

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

query_ustensilsC

Queries the 'ustensils' collection of the 'recipies' MongoDB database.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states the basic action of querying a MongoDB collection, without mentioning potential side effects, authentication needs, rate limits, or the nature of the query operation (e.g., read-only, pagination, error handling). This leaves significant gaps in understanding the tool's behavior, warranting a low score.

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 a single, direct sentence that efficiently conveys the core purpose without unnecessary words. It is front-loaded with the essential information, making it highly concise and well-structured, which earns the maximum score of 5.

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?

Given the tool's complexity (a query operation with 1 parameter), the lack of annotations, and the presence of an output schema (which reduces the need to describe return values), the description is minimally adequate. It identifies the target but misses details on parameters, usage, and behavior. This results in a baseline score of 3, as it meets the minimum viable threshold but has clear gaps.

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?

The input schema has 1 parameter with 0% description coverage, and the tool description does not add any semantic information about the 'query' parameter. It does not explain what the query object should contain, how to structure it for the 'ustensils' collection, or provide examples. This fails to compensate for the low schema coverage, leading to a score of 2.

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 the action ('Queries') and the target resource (the 'ustensils' collection of the 'recipies' MongoDB database), making the purpose understandable. However, it does not distinguish this tool from sibling query tools like 'query_comments' or 'query_users' beyond the specific collection name, which is why it scores a 4 rather than a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'list_ingredients' or 'search_by_ingredient' that might serve similar purposes, nor does it specify contexts or prerequisites for use. This lack of comparative or contextual advice results in a score of 2.

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

scale_recipeB

Scales a recipe for a different number of servings.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipe_nameYes
servingsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool scales a recipe, implying a read-and-modify operation, but doesn't disclose critical traits such as whether it returns the scaled recipe, if it modifies the original, authentication needs, error handling, or rate limits. This leaves significant gaps for an agent to understand the tool's behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part ('Scales a recipe for a different number of servings') directly contributes to understanding the tool's function, making it highly concise and well-structured.

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

Completeness3/5

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

Given the tool's moderate complexity (2 parameters, no annotations, but has an output schema), the description is minimally adequate. It covers the basic purpose but lacks behavioral details, usage guidelines, and parameter nuances. The presence of an output schema means return values are documented elsewhere, reducing the burden, but overall completeness is limited due to missing context for safe and effective use.

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 0%, so the description must compensate for undocumented parameters. It mentions 'recipe' and 'servings', which map to the two parameters ('recipe_name' and 'servings'), adding basic meaning. However, it doesn't provide details like format constraints (e.g., string format for recipe_name, integer range for servings) or examples, leaving the schema to define structure without descriptive context.

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 the action ('Scales') and resource ('a recipe') with a specific purpose ('for a different number of servings'). It distinguishes from siblings like 'create_shopping_list' or 'generate_recipe_from_ingredients' by focusing on adjustment rather than creation or generation. However, it doesn't explicitly differentiate from all siblings (e.g., 'get_recipe_by_index' is for retrieval, but this isn't mentioned).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing recipe), exclusions (e.g., not for creating new recipes), or direct comparisons to siblings like 'get_random_recipe' or 'search_by_ingredient'. Usage is implied from the purpose but not explicitly stated.

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

scrape_christmas_recipesB

Scrapes Christmas recipe titles from Marmiton.org.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions scraping but doesn't cover critical aspects like rate limits, authentication needs, data format, or potential side effects (e.g., web scraping implications). This leaves significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function without any wasted words. It is front-loaded and appropriately sized for a simple tool, making it highly concise and well-structured.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, output schema exists), the description is adequate but minimal. It covers the basic purpose but lacks details on behavioral traits and usage context, which are important even for simple tools, especially with no annotations to fill those gaps.

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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, aligning with the schema's completeness, which justifies a baseline score of 4 for this dimension.

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 the action ('scrapes') and resource ('Christmas recipe titles from Marmiton.org'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_christmas_recipes', which might offer similar functionality through different means.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'list_christmas_recipes' or 'get_random_recipe'. The description lacks context about prerequisites, timing, or exclusions, leaving the agent without usage direction.

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

search_by_ingredientB

Search for Christmas recipes containing a specific ingredient.

ParametersJSON Schema
NameRequiredDescriptionDefault
ingredientYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool searches, implying a read-only operation, but doesn't cover critical aspects like whether it requires authentication, has rate limits, returns paginated results, or what the output format entails. For a search tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence: 'Search for Christmas recipes containing a specific ingredient.' It's front-loaded with the core action and resource, with zero redundant words or unnecessary elaboration. Every word earns its place, making it highly concise and well-structured.

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

Completeness3/5

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

Given the tool's low complexity (one parameter) and the presence of an output schema (which should cover return values), the description is minimally adequate. However, with no annotations and incomplete parameter guidance, it lacks details on behavioral traits like error handling or search scope. It meets basic needs but has clear gaps in context for effective agent use.

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 one parameter ('ingredient') with 0% description coverage in the schema itself. The description adds some semantic context by specifying it's for 'Christmas recipes' and 'containing a specific ingredient,' which clarifies the parameter's purpose beyond the schema's bare title. However, it doesn't detail format constraints (e.g., case sensitivity, partial matches) or examples, so it only partially compensates for the low schema coverage.

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 the tool's purpose: 'Search for Christmas recipes containing a specific ingredient.' It specifies the verb ('search'), resource ('Christmas recipes'), and scope ('containing a specific ingredient'), making the intent unambiguous. However, it doesn't explicitly differentiate from siblings like 'list_christmas_recipes' or 'scrape_christmas_recipes', which limits the score to 4 instead of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer it over siblings like 'list_christmas_recipes' (which might list all recipes without filtering) or 'generate_recipe_from_ingredients' (which might create new recipes). There's also no exclusion criteria or prerequisites stated, leaving usage context implied at best.

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

suggest_christmas_menuB

Suggests a complete Christmas menu (starter, main course, dessert).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'suggests' implies a read-only operation, it doesn't clarify whether this is deterministic or random, if it requires user preferences, how comprehensive the suggestions are, or what the output format looks like. The description lacks essential behavioral context for a tool with no 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 a single, efficient sentence that states the tool's purpose without any wasted words. It's appropriately sized for a zero-parameter tool and front-loads the essential information. Every word earns its place.

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?

Given the tool has zero parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, for a suggestion tool with no annotations, it should ideally provide more context about how suggestions are generated or what the output contains. The existence of an output schema reduces the need to describe return values, but behavioral transparency remains lacking.

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 tool has zero parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't mention any parameters, which aligns perfectly with the schema. A baseline of 4 is appropriate since no parameter information is needed.

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 the tool's function: 'Suggests a complete Christmas menu' with specific components (starter, main course, dessert). It uses a specific verb ('suggests') and resource ('Christmas menu'), but doesn't explicitly differentiate from sibling tools like 'list_christmas_recipes' or 'invent_recipe', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'list_christmas_recipes', 'invent_recipe', and 'suggest_wine_pairing', there's no indication of when this menu suggestion tool is preferred over those options or any prerequisites for its use.

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

suggest_wine_pairingB

Suggests a wine pairing for a recipe.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipe_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but only states the basic action without details on how it works. It doesn't mention if this is a read-only operation, if it requires external data, potential limitations (e.g., based on a database), or what the output entails, which is insufficient for a tool with no annotation support.

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 extremely concise—a single sentence that directly states the tool's function without any fluff. It's front-loaded and wastes no words, making it efficient for quick understanding, though this brevity contributes to gaps in other dimensions.

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?

Given the tool's low complexity (1 parameter) and the presence of an output schema, the description is minimally adequate but incomplete. It covers the basic purpose but lacks details on usage, behavior, and parameter context, which are needed for full agent guidance, especially with no annotations to fill gaps.

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 description implies the need for a recipe but doesn't add meaning beyond the input schema, which has 0% description coverage for the single parameter 'recipe_name'. Since schema coverage is low, the description should compensate by explaining parameter expectations (e.g., format, examples), but it doesn't, resulting in a baseline score due to the minimal parameter count.

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 the tool's purpose with a specific verb ('suggests') and resource ('wine pairing for a recipe'), making it immediately understandable. However, it doesn't distinguish this tool from potential sibling tools like 'suggest_christmas_menu', which might also involve pairing suggestions, leaving room for ambiguity in a broader context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'suggest_christmas_menu' or other recipe-related tools. It lacks context about prerequisites, like whether a recipe must be specified or if it works with any recipe type, leaving the agent to infer usage without explicit direction.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 18 tool updates
    • First observedcreate_shopping_list
    • First observedelicit_user_needs
    • First observedgenerate_recipe_from_ingredients
    • First observedget_random_recipe
    • First observedget_recipe_by_index
    • First observedinvent_magical_recipe
    • First observedinvent_recipe
    • First observedlist_christmas_recipes
    • First observedlist_ingredients
    • First observedlist_magical_ingredients
    • First observedquery_comments
    • First observedquery_users
    • First observedquery_ustensils
    • First observedscale_recipe
    • First observedscrape_christmas_recipes
    • First observedsearch_by_ingredient
    • First observedsuggest_christmas_menu
    • First observedsuggest_wine_pairing

TDQS

C2.9/5.0
Disambiguation3/5

There is some overlap between tools like 'invent_recipe' and 'invent_magical_recipe', or 'list_christmas_recipes' and 'get_random_recipe', which could cause confusion. However, descriptions help differentiate them, such as 'magical' vs. regular ingredients or specific vs. random retrieval. Most tools have distinct purposes, but the Christmas-focused tools cluster together with potential for misselection.

Naming Consistency3/5

The naming is mixed with conventions: some use verb_noun (e.g., 'create_shopping_list', 'scale_recipe'), others use verb_preposition_noun (e.g., 'search_by_ingredient'), and there are inconsistencies like 'query_comments' vs. 'scrape_christmas_recipes'. It's readable but lacks a uniform pattern, with deviations that reduce predictability.

Tool Count3/5

With 18 tools, the count is borderline high for a recipe server, leaning toward heavy but not extreme. It covers various aspects like recipe generation, Christmas-specific functions, and database queries, but some tools feel redundant or niche, making the set feel slightly bloated for the domain.

Completeness4/5

The tool set covers a broad range for recipe management, including creation, retrieval, scaling, shopping lists, and even magical recipes. However, there are minor gaps, such as no explicit update or delete operations for recipes or lists, and the database query tools are limited to specific collections without full CRUD coverage. Overall, it supports core workflows well.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Household-aware cooking brain: pantry, meal suggestions, dietary safety, recipes, shopping lists.

  • Scraps Kitchen gives any AI agent a persistent, household-aware kitchen memory. Unlike generic chatbot recall, Scraps maintains structured cooking data: what's in your fridge (with freshness tracking), who you cook for (with allergens, dietary restrictions, and preferences), your recipe collection (with cook notes and per-diner ratings), your shopping list, and your kitchen equipment. 27 tools across 6 domains let agents read kitchen context, suggest meals that respect dietary safety, update the pantry after cooking, and build a history of what works for your household. Every interaction makes the data richer. Cooking history, preference signals, kitchen awareness = better suggestions next time. All tools work via oAuth and a free scraps.kitchen account.

  • Search, save, organize, cook, and share recipes with any AI assistant.

  • Your personal recipe kitchen: save, fork, and cook recipes, build cookbooks, and shopping lists.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables recipe search, storage, and meal planning using TheMealDB API. Provides comprehensive recipe discovery, automatic recipe collection management, and custom meal plan creation with detailed cooking instructions and ingredients.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Household-aware kitchen brain for AI agents: manage pantry inventory with freshness tracking, shopping lists, recipe collections with cook notes and per-diner ratings, dietary profiles with allergen safety, and kitchen equipment — all through 27 tools with OAuth 2.1 authentication. Includes a free tool for ingredient-based recipe generation without an account (accounts are free!).
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search recipes, compose nutritionally balanced meals, optimize weekly meal plans based on macro targets for family members, and generate consolidated grocery lists from a personal recipe database.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Symfomany/mcp-tuto'

If you have feedback or need assistance with the MCP directory API, please join our Discord server