Cookidoo MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COOKIDOO_EMAIL | Yes | Your Cookidoo account email | |
| COOKIDOO_PASSWORD | Yes | Your Cookidoo account password |
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| connect_to_cookidooA | Authenticate with Cookidoo and store the session. This tool must be called before using other Cookidoo tools. It will:
Returns: str: Success message confirming connection Raises: ValueError: If credentials are missing from .env file Exception: If authentication fails |
| get_recipe_detailsA | Get detailed information about a specific recipe by its ID. Use this tool to get full details about a recipe for inspiration before creating your own custom recipe. You must be connected first using connect_to_cookidoo. |
| get_custom_recipe_detailsA | Get the full text content of a recipe in the account's custom recipes. Unlike get_recipe_details, this endpoint includes preparation instructions. It returns plain ingredient and instruction text; use the update tools to add or replace guided-cooking annotations. |
| get_shopping_list_ingredientsB | Get Cookidoo shopping-list ingredients grouped by recipe. |
| get_meal_plan_weekA | Get Cookidoo's complete seven-day meal-plan window. Cookidoo normally omits empty days and returns custom recipes as bare IDs.
This tool fills all seven days starting with the requested date and resolves
custom recipe IDs to names, images, durations, and links. This matches the
|
| add_recipes_to_meal_planA | Add one or more recipes to a Cookidoo meal-plan day. Mixed official IDs (for example r460132) and custom recipe ULIDs are supported when recipe_source is auto. Separate IDs with commas, spaces, or newlines. The updated day is returned after Cookidoo confirms the change. |
| remove_recipe_from_meal_planC | Remove one recipe from a Cookidoo meal-plan day. |
| move_recipe_in_meal_planA | Move one recipe from one Cookidoo calendar day to another. The recipe is added to the target first and then removed from the source. If removal fails, a newly-added target entry is rolled back. |
| copy_recipe_to_customA | Copy an official Cookidoo recipe into the account's custom recipes. This is the supported way to obtain the full ingredients and instructions of an official recipe before translating or editing it. Set dry_run to true to validate and preview creation of the private copy without changing the account. |
| generate_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. Always put weighing/adding ingredients in one step and the subsequent chopping, mixing, cooking, or kneading action in a separate step. |
| validate_guided_recipe_structureA | Validate a complete custom recipe, including guided-cooking annotations. Step annotations use Cookidoo's exact request schema:
INGREDIENT annotations must be in ingredient-only steps. TTS and MODE annotations belong in following, separate machine-action steps. Every annotation position is a zero-based JavaScript UTF-16 range into its enclosing step text. VOLUME positions use their enclosing ingredient text. Use calculate_annotation_position instead of normal Python string indexes. |
| calculate_annotation_positionA | Calculate Cookidoo's offset and length for text inside a recipe step. Cookidoo uses JavaScript UTF-16 character positions, which differ from normal Python string indexes when text before the marker contains emoji. Use this tool for every TTS, MODE, INGREDIENT, and VOLUME annotation. |
| update_custom_recipe_stepsA | Replace a custom recipe's preparation steps. steps_json must be a JSON array. Each item may be plain step text or a STEP object containing TTS, MODE, and/or INGREDIENT annotations. This partial update preserves the recipe's other fields. Always use separate steps for weighing/adding ingredients and for the following cooking, mixing, chopping, or kneading action. A single step cannot contain both INGREDIENT and TTS/MODE annotations. Set dry_run to true to validate and return the full replacement step list without patching Cookidoo. |
| update_custom_recipe_ingredientsA | Replace a custom recipe's ingredients. ingredients_json must be a JSON array. Each item may be plain ingredient text or an INGREDIENT object containing a VOLUME annotation. This partial update preserves the recipe's other fields. Set dry_run to true to validate and return the full replacement ingredient list without patching Cookidoo. |
| upload_custom_recipe_imageA | Upload a local image and attach it to a custom Cookidoo recipe. The file is converted to JPEG when necessary (including WebP), uploaded through Cookidoo's signed customer-recipe image flow, and attached with isImageOwnedByUser enabled. Cookidoo accepts images up to 10 MB. |
| upload_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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/vitaliemiron/cookidoo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server