FastMCP Prompt-Server for recipe extraction from PDFs
This server has severe definition quality issues. It exposes only 1 tool (get_recipe_prompt) with an empty input schema and a vague, generic description. The tool's purpose is unclear: it returns a long German-language prompt text rather than performing a structured operation. There is no input validation, no parameter documentation, and no structured output schema. The tool reads more like a prompt-template delivery mechanism than an MCP tool. A tool that simply returns static text with no parameters fails to meet production quality standards.
Gibt den Workflow-Prompt für Rezept-Extraktion aus PDFs zurück.
Empty input schema: get_recipe_prompt() accepts no parameters ({}). Input schema MUST be documented with proper JSON Schema including type definitions and descriptions.
Vague description: 'Gibt den Workflow-Prompt für Rezept-Extraktion aus PDFs zurück.' (German, ~65 chars) does not explain WHEN or WHY to use this tool, or what the LLM should do with the returned text. Descriptions must be 10 - 1024 chars and state WHAT, WHEN, and any prerequisites.
No output schema documented. The tool returns a raw string (RECIPE_PROMPT), but there is no documentation of the response structure, encoding, or what fields/metadata the LLM should expect.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 24 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Tool purpose is ambiguous: get_recipe_prompt() returns a static multi-line prompt text rather than performing a recipe-related action (extract, search, create, update, delete). The name suggests a getter for a single artifact, but the result is a large instructional workflow. This conflicts with the verb_noun naming convention and makes tool selection difficult for LLMs.
No error handling documentation. The tool provides no guidance on failure modes, retryability, or recovery steps. If the prompt cannot be retrieved or is malformed, the LLM has no actionable error response.
Language mismatch: Tool name is English, description is German. Descriptions should be in the same language as the tool name and LLM context to avoid confusion.