Cookidoo MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cookidoo MCP ServerTurn this curry from my favourite food blog into a Thermomix recipe for my TM6."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cookidoo MCP Server – Thermomix recipes, meal planning & guided cooking with Claude
Your Thermomix kitchen, run by your AI assistant. Turn any recipe idea or web recipe into a real Cookidoo recipe with guided cooking, find the right dish in the Cookidoo catalogue, plan your week and fill your shopping list, all by just asking Claude (or any other MCP client).
"Turn this curry from my favourite food blog into a Thermomix recipe for my TM6."
"Find three vegetarian dinners under 30 minutes, plan them for Monday to Wednesday and put the ingredients on my shopping list."
"Add the missing Thermomix settings to my bread recipe and knead the dough in dough mode."
Why you'll like it:
Recipes that cook themselves. Uploaded recipes are not just text: every step comes with real Thermomix settings. Tap the step and your Thermomix is set to the right time, temperature and speed. Varoma, reverse and soft stir are included.
Every mode Cookidoo knows. Dough, turbo, blend, warm up and rice cooker, and on the TM7 steaming and browning too. The server reads the available modes live from Cookidoo, so it keeps up when Cookidoo adds new ones.
Ingredients linked like in the official editor. Ingredients in a step become links, exactly as if you had made the recipe in the Cookidoo editor by hand. No manual editing in Cookidoo is needed.
From idea to dinner plan. Search the whole Cookidoo catalogue and your own recipes, plan them in Meine Woche and send the ingredients to your Cookidoo shopping list.
Checked before it is uploaded. Every recipe is checked against the same rules the Cookidoo editor applies before it is uploaded. Invalid temperatures, speeds or modes are explained instead of breaking the upload.
Made for the TM6 and the TM7. Each recipe is built for your device and only uses what it can do.
Disclaimer: This is an unofficial project. The developers are not affiliated with, endorsed by, or connected to Cookidoo, Vorwerk, Thermomix, or any of their subsidiaries or trademarks.
Auf Deutsch: Thermomix-Rezepte mit KI erstellen und die Woche planen
Mit diesem MCP-Server erstellt dein KI-Assistent (z. B. Claude) eigene Thermomix-Rezepte direkt in Cookidoo, aus einer Idee, einem Rezept aus dem Netz oder einem Familienrezept. Die Rezepte landen in „Meine Rezepte“ und funktionieren mit Guided Cooking:
Einstellungen: Zeit, Temperatur, Stufe, Linkslauf und Varoma sind gesetzt.
Modi: Teig kneten, Turbo, Pürieren, Erwärmen und Reis kochen, beim TM7 auch Dampfgaren und Anbraten.
Zutaten: Sie sind in den Schritten verlinkt wie im Cookidoo-Editor.
Nacharbeiten im Editor ist nicht nötig.
Außerdem kann der Assistent:
Suchen: Rezepte im Cookidoo-Katalog und unter deinen eigenen Kreationen finden.
Planen: Rezepte in den Cookidoo-Wochenplan („Meine Woche“) eintragen.
Einkaufen: die Zutaten auf die Cookidoo-Einkaufsliste setzen.
Er funktioniert mit Thermomix TM6 und TM7. Die Einrichtung ist unten beschrieben (englisch). Die Rezepte selbst kannst du auf Deutsch schreiben lassen.
Related MCP server: yes_chef_mcp
What it can do
Create your own recipes
Feature | What you get |
Upload your own recipe | Creates a new recipe in "My recipes" (Meine Rezepte) on Cookidoo, for the TM6 or TM7. |
Thermomix settings (guided cooking) | Settings such as |
Thermomix modes | Dough, turbo, blend, warm up and rice cooker, and on the TM7 also steaming and browning ( |
Ingredient links | When a step contains an ingredient line exactly as it appears in the ingredient list, it is shown as a link, as in recipes made with the Cookidoo editor. |
Check before uploading | Validates the recipe and shows which settings, modes and ingredient links were detected, with a clear reason for anything that does not fit. |
Fix an uploaded recipe | Replaces the steps of a recipe you already uploaded, for example to add Thermomix settings later. Ingredients, times and hints stay unchanged. |
Find, plan and shop
Feature | What you get |
Find recipes | Searches the Cookidoo catalogue (with filters such as ingredients to leave out, maximum time or device) and lists your own recipes. |
Look at a recipe | Shows ingredients, steps and times of a catalogue recipe or one of your own. |
Plan your week | Shows your Cookidoo week plan (Meine Woche), puts catalogue or own recipes on a day and removes them again. |
Shopping list | Adds the ingredients of recipes to your Cookidoo shopping list. |
Setup
You need a Cookidoo account (with an active subscription so you can create your own recipes) and uv, which installs Python and the server for you. No download of this project is needed.
Claude Desktop
Open Settings → Developer → Edit Config and add the server to claude_desktop_config.json:
{
"mcpServers": {
"cookidoo": {
"command": "uvx",
"args": ["mcp-cookidoo"],
"env": {
"COOKIDOO_EMAIL": "your-email@example.com",
"COOKIDOO_PASSWORD": "your-password-here"
}
}
}
}Restart Claude Desktop. The Cookidoo tools now show up in the tool list.
Claude Code
claude mcp add cookidoo -e COOKIDOO_EMAIL=your-email@example.com -e COOKIDOO_PASSWORD=your-password-here -- uvx mcp-cookidooOther countries
The server uses the German Cookidoo by default. For another country add, for example,
"COOKIDOO_COUNTRY": "fr" and "COOKIDOO_LANGUAGE": "fr-FR" to env. The Thermomix settings in
steps are always written in German notation (see below).
Running from a source checkout
For development, or if you prefer not to use uvx:
git clone https://github.com/tobilektri/mcp-cookidoo.git
cd mcp-cookidoo
python -m venv venv
source venv/bin/activate # Windows: .\venv\Scripts\Activate.ps1
pip install -e ".[dev]"
cp .env.example .env # then enter your Cookidoo login in .envIn the MCP client use the command /path/to/mcp-cookidoo/venv/bin/mcp-cookidoo (Windows:
C:\\path\\to\\mcp-cookidoo\\venv\\Scripts\\mcp-cookidoo.exe) instead of uvx. The .env file
stays on your computer and is excluded from git. fastmcp run server.py in the project folder
starts the server as well.
Using it
Copy the example prompt below into your assistant and replace the dish in the first line. It contains everything the assistant needs to know to get the Thermomix settings and ingredient links right. You can write it in any language; the last rule decides the language of the recipe.
Create a Thermomix recipe for [DISH, e.g. "vegetable curry for 4 people"] and save it to my
Cookidoo account with the Cookidoo tools.
Rules for the recipe:
- Ingredients: one per line, short and without preparation notes ("1 Zwiebel", not
"1 Zwiebel, halbiert"). Notes like "halbiert" go into the step.
- Every ingredient must appear in a step exactly as written in the ingredient list, word for
word, so that it is linked. Write "1 Zwiebel in den Mixtopf geben", not "die Zwiebel".
- Write each Thermomix setting in Cookidoo notation as time/temperature/speed, in German, e.g.
"5 Sek./Stufe 5", "3 Min./120°C/Stufe 1", "15 Min./100°C/Linkslauf/Stufe 1" or
"12 Min./100°C/Linkslauf/Sanftrührstufe".
- Use Thermomix modes (dough, turbo, blend, ...) where they fit, written exactly as
get_thermomix_modes shows them, e.g. "Teig kneten/2 Min." or "Turbo/1 Sek.".
- Use only one Thermomix setting or mode per step; split longer processes into several steps.
- The recipe is for my [TM6 / TM7].
- Write the recipe in German.
Process:
1. Connect with connect_to_cookidoo.
2. Call get_thermomix_modes for my device and use only the modes and values it lists.
3. Check the recipe with generate_recipe_structure (with my device). If the output lists
warnings, unlinked ingredients or unrecognised settings, fix the steps and check again until
everything is linked.
4. Show me the recipe and wait for my OK.
5. Upload it with upload_custom_recipe and give me the recipe ID and link.The assistant then works through these tools:
connect_to_cookidoosigns in.get_thermomix_modeslists the modes Cookidoo offers for the device and how to write them.generate_recipe_structurechecks the recipe and reports detected settings, modes and links.upload_custom_recipesaves it to your account and returns the recipe ID and link.
Planning the week
You can also ask the assistant to find recipes and plan them, for example:
Connect to Cookidoo. Find three quick vegetarian dinners (at most 30 minutes, for my TM6)
in the Cookidoo catalogue or among my own recipes, show them to me and, after my OK, plan
them for Monday to Wednesday next week and put their ingredients on my shopping list.The assistant uses search_recipes and list_my_recipes to find recipes, get_recipe_details
to look at them, and plan_recipe, get_week_plan and add_to_shopping_list to plan and shop.
All tools
Tool | Purpose |
| Sign in. Call this first. |
| List the modes Cookidoo offers right now for the TM6 or TM7, with spelling and allowed values. |
| Search the Cookidoo catalogue. All filters are optional; Cookidoo returns up to 20 results per page. |
| List your own recipes with ID, device and time. |
| Show ingredients, steps and times of a catalogue recipe ( |
| Show the recipes planned in the week starting at |
| Plan one or more recipes (comma-separated, catalogue and own mixed) on a day. |
| Remove a recipe from a day of the week plan. |
| Add the ingredients of recipes to the Cookidoo shopping list. |
| Validate a recipe and preview the detected settings, modes and links. |
| Create the recipe on Cookidoo (pass the JSON from |
| Replace all steps of one of your recipes. The device is taken from the recipe. Without |
You don't have to call get_thermomix_modes for the checks to work: checking, uploading and
updating always read the modes from Cookidoo themselves before building the steps. Without a
connection, generate_recipe_structure uses a built-in list and says so.
Ingredients, steps and hints are passed one per line. List markers such as 1. or - at the start
of a step are removed.
Writing Thermomix settings
Write the settings into the step text the way Cookidoo prints them, as time/temperature/speed:
In the step | Meaning |
| 4 seconds, speed 5 |
| 3 minutes, 120 °C, speed 1 |
| 1 minute 30 seconds, 90 °C, speed 2 |
| reverse (counter-clockwise) |
| reverse with soft stir ( |
| Varoma temperature (TM6 only) |
| speed 0.5 |
Example step:
1 Zwiebel in den Mixtopf geben und 5 Sek./Stufe 5 zerkleinern.Rules (the same ones the Cookidoo editor applies):
Speeds 0.5 to 10 in half steps and soft stir are valid. The temperature is optional and one of the Thermomix steps from 37 to 120 °C (37, 40, 45 … 95, 98, 100, 105, 110, 115, 120).
With heating, the speed can be at most 6.
Times up to 5 minutes in 10-second steps, up to 20 minutes in half minutes, then whole minutes, at most 99 minutes. Other times are used, but the tool output warns about them.
The notation is the German one (
Min.,Sek.,Stufe,Linkslauf), whatever language the rest of the recipe is in.Invalid values (e.g.
Stufe 12or42°C) stay plain text, and the tool output says why.Not supported yet: Fahrenheit.
Thermomix modes
Write the mode name as Cookidoo shows it, then its values, separated by /:
In the step | Mode | Device | Allowed values |
| dough (also | TM6, TM7 | 1 second to 20 minutes |
| turbo | TM6, TM7 | 0.5, 1 or 2 seconds |
| turbo with pulses | TM7 | 1 to 9 pulses |
| blend | TM6, TM7 | 10 seconds to 5 minutes, speed 6 to 8 |
| warm up | TM6, TM7 | 37 to 90 °C, soft stir (default), speed 1 or 2 |
| rice cooker | TM6, TM7 | none (the brackets mark it as a mode) |
| steaming | TM7 | up to 99 minutes, soft stir to speed 5, optional |
| browning | TM7 | 140 to 160 °C, up to 30 minutes (default 10), |
In the recipe the step then shows the mode the way Cookidoo does (name, mode icon and time, e.g. "Teig kneten" with the dough icon and "2 Min."), and tapping it starts the mode on the Thermomix.
The list above is the state of October 2026. The server reads the current list from Cookidoo
(get_thermomix_modes): a mode Cookidoo stops offering is no longer used, and a new one is listed
as "not supported yet" until the server knows its values.
Ingredient links
An ingredient is linked when its line from the ingredient list appears word for word in a step.
Ingredient list | Step | Linked? |
|
| yes |
|
| no |
Short ingredient lines (1 Zwiebel instead of 1 Zwiebel, halbiert) keep the steps readable.
The tool output lists which ingredients are linked and which are not.
Like the Cookidoo editor, the server replaces ; with a full-width semicolon (;) in ingredients
and steps.
Fixing an uploaded recipe
Forgot the settings, or a link is missing? Pass the recipe ID (from the upload output or the URL of
the recipe on Cookidoo) and the complete new list of steps to update_custom_recipe_steps. It
replaces all steps and leaves everything else alone.
Development
The code lives in the mcp_cookidoo package. In a source checkout (see above) run the tests for
the settings, modes, links and recipe helpers with:
pytestThe files in fixtures/ are the settings dialog of the Cookidoo editor (TM6 and TM7) and steps
the editor itself produced; the tests check that the server builds exactly the same.
Format and lint:
black .
ruff check .Releasing
Set the new version in
pyproject.toml,mcp_cookidoo/__init__.py,fastmcp.jsonand twice inserver.json.Commit, then tag and push:
git tag v1.0.1 && git push origin v1.0.1.
The GitHub Actions workflow publish.yml runs the tests, publishes the package to
PyPI and the server to the
MCP Registry.
Acknowledgments
This project started as a fork of alexandrepa/mcp-cookidoo by Alexandre Patelli, who built the first version of the server (login, recipe structure and upload). Thank you!
It is built on top of cookidoo-api, which provides the Python interface to the Cookidoo platform. Special thanks for making this integration possible!
License
MIT, see LICENSE.
Available Tools
12 toolsadd_to_shopping_listAdd To Shopping ListA
Add the ingredients of one or more recipes to your Cookidoo shopping list.
Catalogue recipes ("r59322") and your own recipes ("01M5...") can be mixed. You must be connected first using connect_to_cookidoo.
| Name | Required | Description | Default |
|---|---|---|---|
| recipe_ids | Yes | Recipe IDs, comma-separated |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the auth prerequisite and the ID-format expectations for the two recipe sources. However, it never says whether items are appended to or replace the existing shopping list, what happens on partially-invalid IDs, or whether quantities are merged — material gaps for a mutation with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the ID-format caveat, then the prerequisite. Every sentence adds information an agent needs and none repeat the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the single parameter plus auth prerequisite are covered. The only shortfall is the unstated append-vs-replace semantics of the shopping-list mutation, which matters given no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description adds real meaning beyond the schema's generic 'Recipe IDs, comma-separated': it gives concrete ID shapes ('r59322' for catalogue, '01M5...' for own recipes) and states both kinds can be mixed in the single string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add the ingredients ... to your Cookidoo shopping list'), which is distinct from every sibling tool (plan_recipe, search_recipes, upload_custom_recipe, etc.) since none of them touch the shopping list. It never names a sibling or contrasts with one, but the resource is unique enough that misselection is unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear prerequisite ('You must be connected first using connect_to_cookidoo') and names that tool explicitly, which routes the agent correctly. It also notes that catalogue and personal recipes can be mixed in one call. It stops short of any when-not guidance, e.g. what to do if the list already has items or whether plan_recipe should be preferred instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_to_cookidooConnect To CookidooA
Authenticate with Cookidoo and store the session.
This tool must be called before using other Cookidoo tools. It will:
Load your Cookidoo credentials from the .env file
Authenticate with the Cookidoo platform
Store the authenticated session for use by other tools
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses the implicit input (.env credentials), the authentication action, and the persistent side effect of storing a session. It does not cover failure modes (missing credentials, expired session) or whether re-calling refreshes the session, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, followed by the prerequisite and a short numbered sequence of side effects. Every line earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-annotation, authenticated-setup tool with an output schema, the description covers what the tool does, when it is required, and its side effects. It is complete enough to invoke, though error and expiry behavior would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters gives a baseline of 4. The description adds useful context that the 'missing' credentials come from a .env file, clarifying an implicit input the schema cannot express.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (authenticate) and resource (Cookidoo), plus the side effect of storing the session. The prerequisite line distinguishes it from every sibling tool, all of which are read or plan operations on an already-authenticated session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'This tool must be called before using other Cookidoo tools,' which is exactly the routing condition an agent needs. No ambiguity about ordering versus the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_recipe_structureGenerate Recipe StructureA
Generate and validate a recipe structure ready for upload to Cookidoo.
This tool helps you structure your recipe data properly before uploading. It validates all fields and returns a JSON structure that can be used with the upload_custom_recipe tool. The modes are checked against what Cookidoo offers right now (call get_thermomix_modes to see them and their spelling).
Thermomix settings: write them inside the step text in Cookidoo notation and they are turned into real Thermomix settings (guided cooking) on upload: "4 Sek./Stufe 5" time/speed "3 Min./120°C/Stufe 1" time/temperature/speed "15 Min./100°C/Linkslauf/Stufe 1" counter-clockwise (reverse) stirring "12 Min./100°C/Linkslauf/Sanftrührstufe" soft stir (Sanftrührstufe) "20 Min./Varoma/Stufe 1" Varoma (TM6 only) "1 Min. 30 Sek./Stufe 0,5" minutes and seconds, half speed Temperatures 37-120 °C in Cookidoo's steps (37, 40, 45 ... 95, 98, 100, 105 ...), heating only up to speed 6.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Recipe name (required) | |
| hints | No | Optional cooking tips, one per line or comma-separated | |
| steps | Yes | Cooking steps, one per line or numbered | |
| device | No | Thermomix the recipe is for, "TM6" (default) or "TM7" | TM6 |
| servings | No | Number of servings (default: 4, range: 1-20) | |
| prep_time | No | Preparation time in minutes (default: 30) | |
| total_time | No | Total cooking time in minutes (default: 60) | |
| ingredients | Yes | Ingredients list, one per line or comma-separated |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses that this is a generation/validation step (not an upload) and provides detailed Thermomix settings notation that explains how step text is interpreted. It doesn't explicitly state that it has no side effects, but the 'ready for upload' framing implies it. Error handling or validation failure behavior is not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and then a clear, necessary section on Thermomix settings notation. It is not overly verbose, and each example earns its place. The structure could be slightly tightened (e.g., the mode validation sentence could be integrated better), but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters (3 required) and an output schema, the description covers the main complexity: correct syntax for steps and the prerequisite of checking modes. It doesn't explain validation error behavior or detail the output structure, but the output schema fills that gap. It is nearly complete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds significant meaning for the 'steps' parameter by explaining the exact Cookidoo notation for Thermomix settings (time/speed, temperature, reverse, soft stir, Varoma). It also ties the 'device' and 'servings' parameters implicitly through context. Other parameters rely on schema descriptions, which are clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (generate and validate) and resource (recipe structure) and explicitly links it to the upload_custom_recipe tool, distinguishing this preparatory step from the actual upload. An agent can tell this tool is for structuring and validating data before upload without needing to inspect siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates the tool is used before upload_custom_recipe and that get_thermomix_modes should be called to check modes and their spelling. However, it doesn't explicitly say when not to use it or contrast with update_custom_recipe_steps, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recipe_detailsGet Recipe DetailsA
Get ingredients, steps and times of a recipe by its ID.
Works for Cookidoo catalogue recipes (e.g. "r59322", from search_recipes) and for your own recipes (e.g. "01M5A79NY53CEKEW6NKVYBFSTW", from list_my_recipes). Steps of own recipes are shown in the notation update_custom_recipe_steps accepts. You must be connected first using connect_to_cookidoo.
| Name | Required | Description | Default |
|---|---|---|---|
| recipe_id | Yes | The Cookidoo recipe ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the auth prerequisite and the useful interop fact that own-recipe steps come back in the notation update_custom_recipe_steps accepts. It leaves out error behavior for invalid or foreign IDs, so it falls short of full disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the verb, resource and returned fields, followed by ID provenance and the auth prerequisite in priority order. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A read-only single-parameter tool with an output schema, so return values need not be explained. Between the ID format guidance, the sibling cross-references and the connect prerequisite, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description adds real meaning by giving two concrete ID formats and their sources, which the schema's generic 'The Cookidoo recipe ID' does not. It stops short of stating what happens when an ID of the wrong shape is passed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus the exact payload returned (ingredients, steps, times) scoped 'by its ID'. This clearly separates it from the sibling search_recipes and list_my_recipes, which produce IDs rather than details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit provenance for the recipe_id (from search_recipes for catalogue recipes, from list_my_recipes for own recipes) and states the required precondition: connect_to_cookidoo must be called first. That is when-to-use plus a prerequisite, not just implied context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_thermomix_modesGet Thermomix ModesA
List the Thermomix modes Cookidoo offers right now and how to write them in a step.
Call this before writing a recipe that uses modes (dough, turbo, blend, warm up, rice cooker, and for the TM7 steaming and browning). The list is read live from the Cookidoo recipe editor, so new or removed modes show up here. Normal settings (time/temperature/speed, e.g. "3 Min./120°C/Stufe 1") always work in addition.
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | "TM6" (default) or "TM7" | TM6 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful traits: the list is read live from the Cookidoo recipe editor (so it reflects additions/removals), and content varies by device with TM7 extras called out. It omits the prerequisite that the agent must already be connected to Cookidoo (cf. connect_to_cookidoo) and says nothing about failure or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and followed immediately by the trigger condition. The parenthetical mode examples and the concrete "3 Min./120°C/Stufe 1" format are load-bearing rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is unnecessary, and the description covers selection, freshness, and device variance. The one gap an agent could trip on is the Cookidoo connection/auth precondition, which is not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description earns above baseline by explaining what the device parameter actually changes — TM7-only modes like steaming and browning. The default of TM6 is left to the schema, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List the Thermomix modes Cookidoo offers") plus the secondary value it returns ("how to write them in a step"). This is clearly distinct from the sibling tools that consume the data, such as generate_recipe_structure or update_custom_recipe_steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Call this before writing a recipe that uses modes" gives an explicit precondition and even scopes it (only recipes that use modes). The note that normal time/temperature/speed settings always work prevents unnecessary calls. It stops short of naming the sibling tools it complements or saying what to do if mode lookup fails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_week_planGet Week PlanA
Show the recipes planned in your Cookidoo week plan ("Meine Woche").
You must be connected first using connect_to_cookidoo.
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | First day of the week to show, as YYYY-MM-DD (default: today) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Show' implies a read-only operation and the connection prerequisite is disclosed, but it does not explicitly state that the operation is non-mutating or describe any error behavior when not connected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no wasted words. The primary purpose is front-loaded, followed immediately by the required prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and connection prerequisite, and an output schema exists to explain return values. The schema also fully documents the lone optional parameter, leaving only a minor gap around explicit read-only behavior and alternative selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single optional 'day' parameter and its YYYY-MM-DD format are fully documented in the schema. The description adds no additional parameter meaning, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: showing recipes planned in the Cookidoo week plan. The parenthetical 'Meine Woche' adds useful domain context, but the description does not explicitly differentiate it from siblings such as list_my_recipes or plan_recipe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear prerequisite ('must be connected first using connect_to_cookidoo'), but does not explain when to use this tool versus alternatives like list_my_recipes or when a week plan might be empty. Usage is largely implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_recipesList My RecipesA
List your own (created) Cookidoo recipes with name, ID, device and total time.
You must be connected first using connect_to_cookidoo.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses the authentication prerequisite and the returned fields, and 'List' implies a safe read, but says nothing about ordering, pagination, result limits, or behavior when the user has no recipes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler: the scope and return contents come first, the prerequisite second. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description needn't explain return values, and it correctly covers the auth prerequisite for a zero-param read tool. The only real gap is absent guidance on result set size or pagination, which matters for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No misleading parameter hints are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List ... Cookidoo recipes') and narrows scope to 'your own (created)' recipes, which separates it from the sibling search_recipes that searches the broader catalogue. It also enumerates the returned fields, so an agent knows exactly what it gets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The prerequisite 'You must be connected first using connect_to_cookidoo' gives a concrete precondition and names the sibling to run first. It stops short of explicitly contrasting with search_recipes (own vs. all recipes), so the 'when not to use' side is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_recipePlan RecipeA
Put one or more recipes into your Cookidoo week plan on a given day.
Catalogue recipes ("r59322") and your own recipes ("01M5...") can be mixed. You must be connected first using connect_to_cookidoo.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | The day, as YYYY-MM-DD | |
| recipe_ids | Yes | Recipe IDs, comma-separated |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It usefully discloses the authentication prerequisite and that catalogue and own recipes can be mixed, but it does not explain whether planning overwrites or appends to existing meals, how invalid IDs behave, or any side effects of this mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short paragraphs with no wasted words. The action is front-loaded, followed by recipe ID format guidance and the connection prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation tool with a full schema and an output schema, the description covers the key context: what it does, valid ID formats, and the authentication prerequisite. It could be slightly more complete by mentioning overwrite/append behavior or duplicate handling, but it is largely sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds value by clarifying acceptable recipe ID formats with examples ('r59322' and '01M5...') and noting that both catalogue and personal recipes can be mixed, which goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: putting recipes into the Cookidoo week plan for a given day. This is clearly a planning mutation, distinguishable in practice from search/list/unplan siblings, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: adding recipes to the week plan, and explicitly requires the user to be connected first via connect_to_cookidoo. It does not state when not to use it, e.g., that unplan_recipe should be used to remove entries, nor does it mention duplicate handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_recipesSearch RecipesA
Search the Cookidoo recipe catalogue.
Returns names, IDs and links. Use get_recipe_details with an ID for ingredients and steps, and plan_recipe to put a recipe into the week plan. Your own recipes are not part of the catalogue; use list_my_recipes for them. You must be connected first using connect_to_cookidoo.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Result page, starting at 0 | |
| limit | No | How many results to show (default 10, at most 20 per page) | |
| query | Yes | Search words, e.g. "Kichererbsen Curry" | |
| device | No | Optional Thermomix the recipe must be made for: "TM5", "TM6" or "TM7" | |
| portions | No | Optional number of portions (0 = any) | |
| difficulty | No | Optional "easy", "medium" or "advanced" | |
| ingredients | No | Optional ingredients the recipe should contain, comma-separated | |
| max_total_time | No | Optional maximum total time in minutes (0 = any) | |
| exclude_ingredients | No | Optional ingredients to leave out, comma-separated |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 does so well for a read operation, disclosing the authentication prerequisite and what a result contains (names, IDs, links). It stops short of disclosing pagination limits or rate-limit behavior, which is why it isn't a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Under five short sentences, front-loaded with the core action, then the return shape, then sibling routing, then the auth prerequisite. No sentence is redundant or self-evident.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values needn't be fully explained, yet the description still previews the key fields. Combined with the explicit auth prerequisite and sibling routing, an agent has everything needed to call this correctly on the first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all nine parameters are individually documented in the schema, so the schema does the heavy lifting. The description adds no query-syntax or filtering semantics beyond what the schema already states, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("Search the Cookidoo recipe catalogue") with immediate scoping: the catalogue excludes the user's own recipes. The agent can distinguish it from get_recipe_details and list_my_recipes without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing for every adjacent need: get_recipe_details with an ID for ingredients/steps, plan_recipe for the week plan, list_my_recipes for personal recipes. It also names the prerequisite ("You must be connected first using connect_to_cookidoo"), so an agent knows the ordering constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unplan_recipeUnplan RecipeA
Remove a recipe from your Cookidoo week plan on a given day.
You must be connected first using connect_to_cookidoo.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | The day, as YYYY-MM-DD | |
| recipe_id | Yes | The recipe ID as shown by get_week_plan |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden of behavioral disclosure. It correctly signals a mutation (removal) and the auth prerequisite, but says nothing about what happens when the recipe isn't in the plan, whether the removal is reversible, or failure behavior — notable gaps for an unannotated 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, the core action stated first and the prerequisite second. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the auth prerequisite plus day format are covered. The one shortfall is missing edge-case behavior (recipe not planned, idempotency) for an unannotated mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (day as YYYY-MM-DD, recipe_id from get_week_plan) are already fully documented in the schema. The description adds no format or sourcing detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (remove) plus resource (recipe from Cookidoo week plan) and scopes it to a given day, immediately distinguishing it from the sibling plan_recipe. An agent can tell exactly what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a clear prerequisite — you must call connect_to_cookidoo first — which is genuinely actionable sequencing guidance. It does not explicitly name the inverse/alternative (plan_recipe) or when-not-to-use conditions, keeping it just 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.
update_custom_recipe_stepsUpdate Custom Recipe StepsA
Replace the steps of an existing custom recipe, including Thermomix settings and ingredient links.
Use this to fix or add Thermomix settings (time, temperature, speed, reverse, soft stir), modes (dough, turbo, ...) and ingredient links on a recipe that was already uploaded. Only the steps are changed; ingredients, times and hints stay as they are. The device (TM6/TM7) is taken from the recipe, the modes are read from Cookidoo. You must be connected first using connect_to_cookidoo.
Write the settings inside the step text in Cookidoo notation, for example "3 Min./120°C/Stufe 1", "12 Min./100°C/Linkslauf/Sanftrührstufe" or "Teig kneten/2 Min." (see generate_recipe_structure and get_thermomix_modes for all forms). Ingredient lines that appear verbatim in a step become links.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | ALL steps of the recipe, one per line. This replaces the existing steps. | |
| recipe_id | Yes | ID of your custom recipe (e.g., "01M5A79NY53CEKEW6NKVYBFSTW") | |
| ingredients | No | Optional ingredient lines to link, one per line. If empty, the recipe's current ingredients are loaded from Cookidoo. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden and does well: it discloses that the operation replaces rather than appends, that the device comes from the recipe and modes from Cookidoo, and that verbatim ingredient lines become links. It stops short of stating reversibility or what happens on malformed notation, which would matter for a destructive replace.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action, then scope, then prerequisites, then formatting rules — a sensible order. The notation examples add real value, but the parenthetical sibling references and repetition of mode names make it slightly longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers everything an agent needs to invoke it correctly — auth prerequisite, replace-vs-merge semantics, required notation format. With an output schema present, return values need not be described, so the only remaining gap is failure/reversibility behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes beyond it by specifying the Cookidoo notation required inside the steps string (with concrete examples) and explaining that ingredient lines present verbatim in a step get linked. It does not explicitly tie the optional ingredients parameter to its 'empty means load current from Cookidoo' fallback, though the schema does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: 'Replace the steps of an existing custom recipe, including Thermomix settings and ingredient links.' That clearly separates it from upload_custom_recipe (create) and generate_recipe_structure (build a skeleton).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the situation ('fix or add Thermomix settings... on a recipe that was already uploaded'), the scope exclusion ('Only the steps are changed; ingredients, times and hints stay as they are'), and the prerequisite ('You must be connected first using connect_to_cookidoo'). It also routes to generate_recipe_structure and get_thermomix_modes for notation forms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_custom_recipeUpload Custom RecipeA
Upload a custom recipe to your Cookidoo account.
This tool creates a brand new recipe from scratch on your Cookidoo account. Use 'generate_recipe_structure' first to validate your recipe data, then pass the resulting JSON to this tool.
Thermomix settings and modes written in the step texts (e.g. "3 Min./120°C/Stufe 1", "Teig kneten/2 Min.") are uploaded as real Thermomix settings, and ingredient lines that appear verbatim in a step are uploaded as ingredient links, so no manual editing in Cookidoo is needed. The modes are read from Cookidoo right before the upload.
| Name | Required | Description | Default |
|---|---|---|---|
| recipe_json | Yes | The validated recipe JSON from generate_recipe_structure |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does substantial work: it discloses that Thermomix settings/modes embedded in step text become real settings, that verbatim ingredient lines become links, and that modes are fetched from Cookidoo immediately before upload (an extra live dependency). It omits auth requirements and error behavior, which matters for a write operation with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then prerequisite, then behavioral detail in priority order. The third paragraph is dense but every clause carries information; only the quoted example strings add slight bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need not be described, and the single parameter is fully schema-documented. The description supplies the missing pieces an agent needs — the upstream dependency, the implicit side effects, and the live mode lookup — making the definition self-sufficient for a write tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, so the baseline is 3; the description goes further by establishing provenance — the string must be the validated output of generate_recipe_structure — which constrains the expected format beyond the schema's terse note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Upload a custom recipe to your Cookidoo account") and clarifies the scope as creating a brand-new recipe from scratch, which separates it from update_custom_recipe_steps. The prerequisite relationship to generate_recipe_structure is made explicit, so an agent can place it correctly among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition: call generate_recipe_structure first and pass the resulting JSON here. The "brand new recipe from scratch" phrasing implies the update sibling is a different tool, but no sibling is named as an alternative and no failure/exclusion cases are offered.
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.
12 tool updates
v1.0.0- First observed
add_to_shopping_list - First observed
connect_to_cookidoo - First observed
generate_recipe_structure - First observed
get_recipe_details - First observed
get_thermomix_modes - First observed
get_week_plan - First observed
list_my_recipes - First observed
plan_recipe - First observed
search_recipes - First observed
unplan_recipe - First observed
update_custom_recipe_steps - First observed
upload_custom_recipe
TDQS
Scored across 12 tools
Most tools have clearly distinct purposes, but generate_recipe_structure and upload_custom_recipe are closely related (validation vs creation), and update_custom_recipe_steps only handles a subset of recipe editing. The descriptions do clarify the boundaries, so confusion is limited.
All names use snake_case and follow a verb-based pattern, which is consistent overall. Minor deviations like connect_to_cookidoo and add_to_shopping_list include prepositions, but the intent remains clear.
With 12 tools, the set is well-scoped: it covers authentication, recipe discovery, week planning, shopping lists, and custom recipe creation without obvious redundancy. Each tool has a clear role in the domain.
Notable gaps exist: you can only update steps of a custom recipe (not ingredients, times, or hints), there's no tool to delete recipes, and shopping list management only supports adding (no view or remove). These omissions could cause agent failures in common workflows.
Maintenance
Related MCP Connectors
Recipe search, ingredient matching, nutrition filters and a private cookbook for any AI agent.
Search, save, organize, cook, and share recipes with any AI assistant.
AI-powered kitchen management — pantry, recipes, meal plans, shopping lists
Persistent food journal for AI assistants. Log meals, save recipes, plan meals and track nutrition.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceLets Claude read recipes from your Cookidoo account and create TM7-optimized custom recipes with guided-cooking annotations, quality scoring, and automatic rollback on upload failure.MIT
- FlicenseNot gradedqualityBmaintenanceEnables 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.-
- AlicenseNot gradedqualityCmaintenanceMCP server for Cookidoo, enabling AI tools to search recipes, manage shopping lists, and retrieve account and subscription information.2GPL 3.0
- AlicenseAqualityDmaintenanceEnables LLMs to upload and manage Thermomix recipes on Cookidoo, including structured steps with Thermomix settings, images, and access to shopping lists and meal planning.11MIT