Content
# Cookidoo MCP Server
An MCP (Model Context Protocol) server that wraps the unofficial [cookidoo-api](https://github.com/miaucl/cookidoo-api) library to let AI assistants interact with your Cookidoo account.
## Features
- **Recipes** -- get recipe details, manage custom recipes
- **Collections** -- browse curated collections, create and manage custom collections
- **Calendar** -- plan meals by adding/removing recipes on specific dates
- **Shopping List** -- full shopping list management (ingredients, custom items, check-off)
- **Suggestions** -- find recipes based on ingredients you have available
- **Account** -- check user info and subscription status
## Setup
### Prerequisites
- Python 3.13+
- [uv](https://docs.astral.sh/uv/) package manager
- A Cookidoo account (cookidoo.com)
### Configuration
Copy `.env.example` to `.env` and fill in your credentials:
```bash
cp .env.example .env
```
```
COOKIDOO_EMAIL=your@email.com
COOKIDOO_PASSWORD=your-password
# Optional localization (defaults to ch / de-CH)
# COOKIDOO_COUNTRY_CODE=ch
# COOKIDOO_LANGUAGE=de-CH
```
Credentials can also be passed as environment variables directly (they take precedence over `.env`).
### Running
```bash
# Run the server (stdio transport)
uv run cookidoo-mcp
# Test with MCP Inspector
uv run mcp dev src/cookidoo_mcp/server.py
```
### Cursor Integration
Add to your `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (workspace):
```json
{
"mcpServers": {
"cookidoo": {
"command": "uv",
"args": ["run", "--directory", "/path/to/cookido-mcp", "cookidoo-mcp"],
"env": {
"COOKIDOO_EMAIL": "your@email.com",
"COOKIDOO_PASSWORD": "your-password"
}
}
}
}
```
## Tools
| Category | Tool | Description |
|----------|------|-------------|
| Recipes | `get_recipe_details` | Get full recipe details by ID |
| Recipes | `get_custom_recipe` | Get a custom recipe by ID |
| Recipes | `add_custom_recipe_from` | Copy a recipe as a custom recipe |
| Recipes | `remove_custom_recipe` | Delete a custom recipe |
| Collections | `get_managed_collections` | List curated collections |
| Collections | `add_managed_collection` | Subscribe to a curated collection |
| Collections | `remove_managed_collection` | Unsubscribe from a collection |
| Collections | `get_custom_collections` | List custom collections |
| Collections | `add_custom_collection` | Create a custom collection |
| Collections | `remove_custom_collection` | Delete a custom collection |
| Collections | `add_recipes_to_custom_collection` | Add recipes to a collection |
| Collections | `remove_recipe_from_custom_collection` | Remove a recipe from a collection |
| Calendar | `get_calendar_week` | Get planned recipes for a week |
| Calendar | `add_recipes_to_calendar` | Add recipes to a date |
| Calendar | `remove_recipe_from_calendar` | Remove a recipe from a date |
| Calendar | `add_custom_recipes_to_calendar` | Add custom recipes to a date |
| Calendar | `remove_custom_recipe_from_calendar` | Remove a custom recipe from a date |
| Shopping | `get_shopping_list_recipes` | Get recipes on shopping list |
| Shopping | `get_ingredient_items` | Get ingredient items |
| Shopping | `add_ingredients_for_recipes` | Add ingredients for recipes |
| Shopping | `remove_ingredients_for_recipes` | Remove ingredients for recipes |
| Shopping | `add_ingredients_for_custom_recipes` | Add ingredients for custom recipes |
| Shopping | `remove_ingredients_for_custom_recipes` | Remove ingredients for custom recipes |
| Shopping | `edit_ingredient_items_ownership` | Check/uncheck ingredients |
| Shopping | `get_additional_items` | Get custom shopping items |
| Shopping | `add_additional_items` | Add custom items |
| Shopping | `edit_additional_items` | Edit custom items |
| Shopping | `edit_additional_items_ownership` | Check/uncheck custom items |
| Shopping | `remove_additional_items` | Remove custom items |
| Shopping | `clear_shopping_list` | Clear entire shopping list |
| Account | `get_user_info` | Get user profile |
| Account | `get_active_subscription` | Check subscription status |
| Suggestions | `suggest_recipes_from_ingredients` | Find recipes from available ingredients |
## Disclaimer
This project is not endorsed by or affiliated with Cookidoo or Vorwerk. It uses the unofficial [cookidoo-api](https://github.com/miaucl/cookidoo-api) library.