This MCP server has a single tool 'get_recipe' with minimal definition quality. The tool has a basic input schema with one string parameter, but the parameter description is trivial and uninformative. The tool description itself is vague and lacks context about what recipe data is returned, when to use it, or what the output structure contains. No output schema is documented. The tool lacks error handling guidance, recovery instructions, and does not follow LLM-friendly description patterns. The naming is acceptable (verb_noun: 'get_recipe') but the overall definition would not pass a production code review.
The name of the recipe to get
Tool description is trivial and unhelpful. The description 'The name of the recipe to get' describes the INPUT parameter, not the tool itself. There is no description of what the tool does, what it returns, when to use it, or what output structure the LLM should expect.
No output schema documented. Callers cannot see that the response is a JSON object with a 'recipe' field (or 'error' field on failure). LLMs have no guidance on what fields to expect or how to extract recipe details.
Parameter description is generic and unhelpful. The 'name' parameter description states 'The name of the recipe to get', this is self-evident from the parameter name and tool name. No guidance on case sensitivity, format constraints, or what happens if the recipe is not found.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 34 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Error handling lacks recovery guidance. When a recipe is not found, the tool returns a JSON error wrapped in a text content block, but does not tell the LLM what to do next: should it suggest similar recipe names? Should it list available recipes? Should it ask the user to try a different search?
No indication of case-sensitivity behavior in parameter description. The code does a case-insensitive lookup (name.toLowerCase() === r.name.toLowerCase()) but the LLM is not told this, leading to potential confusion if the user provides 'Pasta' vs 'pasta'.
Tool description does not document the return value or the structure of the recipe object. The LLM cannot infer whether the recipe contains ingredients, instructions, prep time, or other fields without trial and error.