Recipe MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Accepted for managed hosting. | |
| RECIPE_HOST | No | HTTP bind. | 127.0.0.1 |
| RECIPE_MODE | No | live or demo. | live |
| RECIPE_PORT | No | HTTP bind port. | 8000 |
| RECIPE_API_KEY | No | TheMealDB development/educational key. | 1 |
| RECIPE_RETRIES | No | Additional attempts. | 2 |
| RECIPE_CACHE_TTL | No | Cache seconds. | 300 |
| RECIPE_AUTH_TOKEN | No | 32–256 visible ASCII characters; required outside loopback. | |
| RECIPE_CACHE_SIZE | No | Maximum cache entries. | 128 |
| RECIPE_ALLOWED_HOSTS | No | JSON array of exact allowed hosts; :* permits ports. | localhost and loopback |
| RECIPE_DATABASE_PATH | No | Durable database path; use different files per mode. | data/recipes.sqlite3 |
| RECIPE_ALLOWED_ORIGINS | No | JSON array of trusted origins; no global wildcard. | localhost and loopback |
| RECIPE_REQUEST_TIMEOUT | No | Per-attempt timeout. | 10 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_recipesB | Find recipes by dish name, save their details and return IDs and summaries. |
| search_by_first_letterB | Find and save recipes whose names begin with one ASCII letter. |
| get_recipe_detailsA | Read saved details or fetch and save a recipe by numeric ID. |
| get_random_recipeA | Fetch and save one random recipe. Each call can return a different result. |
| create_meal_planA | Atomically save a complete plan. Reuse the same key and payload when retrying. Requires user confirmation. Unknown IDs fail the entire plan. A reused key with different content fails with idempotency_conflict. |
| get_meal_planA | Read a saved meal plan by its generated UUID. |
| generate_shopping_listA | Consolidate a saved plan's ingredients into a shopping list, without writes. Uses current locally saved recipe details, once per unique recipe at its original batch size. Combines compatible quantities exactly. Show every unresolved measurement and warning to the user; never treat a partial known quantity as the complete amount. No serving-size scaling or regional cup/spoon conversions are inferred. No upstream API is called. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| generate_recipe_search_prompt | Research dishes associated with a cuisine using grounded recipe data. |
| generate_meal_planning_prompt | Draft a plan, discuss constraints and save it after user confirmation. |
| generate_cooking_lesson_prompt | Prepare a cooking lesson with sourced examples and explicit learning goals. |
| generate_ingredient_exploration_prompt | Compare candidate recipes after checking their actual ingredient lists. |
| generate_cultural_cuisine_prompt | Explore cuisine with sourced recipes and qualified cultural context. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| cuisines | List actual cuisines present in the local recipe collection. |
| meal_plans | Read the latest 50 saved meal plans. |
| statistics | Read deduplicated recipe, cuisine and plan counts. |
TDQS
Scored across 7 tools
Most tools have clearly distinct purposes: recipe discovery (search, first-letter, random, by-ID), meal plan creation/reading, and shopping list generation. The only mild overlap is that multiple recipe tools all fetch and save recipe details, but their lookup modes are distinct enough to avoid serious misselection.
All tool names follow a consistent snake_case verb-first pattern: create_, search_, get_, generate_. Even search_by_first_letter fits the convention with a descriptive prepositional modifier. There is no mixing of styles or vague verbs.
Seven tools is a well-scoped size for a recipe/meal-planning server. Each tool covers a meaningful step in the workflow—recipe discovery, detail retrieval, plan creation/retrieval, and shopping list generation—without unnecessary redundancy.
The core workflow is covered end-to-end: find recipes, fetch details, create a meal plan, read it, and generate a shopping list. The main gaps are the lack of update/delete operations for saved recipes or meal plans and no way to list saved recipes, but these do not break the primary use case.