Your Cookidoo
account, for AI.
Tu cuenta de Cookidoo,
para la IA.
An MCP server that exposes your Cookidoo recipes, shopping list, meal planner and collections to Claude, IDEs and any AI agent — as a clean set of typed tools. Un servidor MCP que expone tus recetas de Cookidoo, la lista de la compra, el planificador de menús y las colecciones a Claude, IDEs y cualquier agente de IA — como un conjunto de herramientas tipadas.
Everything in your kitchen, scriptable.Toda tu cocina, programable.
cookidoo-mcp is a TypeScript rewrite of the Python cookidoo-api, wrapped as an MCP server so any AI client can read and act on your account.
cookidoo-mcp es una reescritura en TypeScript del cookidoo-api de Python, empaquetada como servidor MCP para que cualquier cliente de IA lea y actúe sobre tu cuenta.
Recipe searchBúsqueda de recetas
Search the catalogue with filters and pull full recipe details by id.Busca en el catálogo con filtros y obtén los detalles completos de una receta por id.
Shopping listLista de la compra
Add or remove recipe ingredients and free-text items, mark them as bought, rename or clear the list.Añade o quita ingredientes y artículos libres, márcalos como comprados, renómbralos o vacía la lista.
Meal plannerPlanificador
Read a week of the calendar and schedule recipes — standard or custom — on any day.Lee una semana del calendario y planifica recetas — estándar o personalizadas — en cualquier día.
Custom recipesRecetas propias
List, read, create and delete your own recipes derived from existing ones.Lista, consulta, crea y elimina tus propias recetas derivadas de otras existentes.
CollectionsColecciones
Browse and manage both managed (subscribed) and custom collections, paged.Explora y gestiona colecciones gestionadas (suscritas) y propias, paginadas.
Lazy, self-healing authAuth perezosa y auto-reparable
Logs in via the Cookidoo OAuth2 cookie flow, re-authenticates on a 401, with optional session persistence.Inicia sesión por el flujo OAuth2 de Cookidoo, se reautentica ante un 401, con persistencia de sesión opcional.
Clean architecture, by design.Arquitectura limpia, por diseño.
Built with NestJS following a DDD + CQRS + Hexagonal layout. Tools never touch the HTTP client directly — they dispatch Commands and Queries through a bus. Hecho con NestJS siguiendo un diseño DDD + CQRS + Hexagonal. Las herramientas nunca tocan el cliente HTTP directamente — despachan Comandos y Consultas por un bus.
- 1
TransportTransporte
Stateless Streamable HTTP at
POST /api/mcp. A freshMcpServeris built per request;GET/DELETEreturn405.Streamable HTTP sin estado enPOST /api/mcp. Se construye unMcpServernuevo por petición;GET/DELETEdevuelven405. - 2
Tools layerCapa de herramientas
Each tool has a Zod input schema and only dispatches a Command or Query — never calls the client.Cada herramienta tiene un esquema de entrada Zod y solo despacha un Comando o Consulta — nunca llama al cliente.
- 3
Application (CQRS)Aplicación (CQRS)
Commands and Queries with handlers that talk to the
ICookidooClientport.Comandos y Consultas con manejadores que hablan con el puertoICookidooClient. - 4
InfrastructureInfraestructura
CookidooHttpClient— a singleton behind the port — implements the TS rewrite of cookidoo-api with lazy OAuth2 login.CookidooHttpClient— un singleton tras el puerto — implementa la reescritura TS de cookidoo-api con login OAuth2 perezoso.
# DDD + CQRS + Hexagonal src/ core/ config/ # env validation + creds mcp/ # Streamable HTTP transport contexts/ cookidoo/ domain/ # types, ICookidooClient port application/ # CQRS commands & queries infrastructure/ # CookidooHttpClient transport/mcp/ # tools + Zod schemas app.module.ts main.ts
Up and running in minutes.Funcionando en minutos.
Run it locally with pnpm, or as a container with Docker. Requires Node and a Cookidoo account.Ejecútalo localmente con pnpm, o como contenedor con Docker. Requiere Node y una cuenta de Cookidoo.
Install & configure credentialsInstala y configura las credenciales
pnpm install
cp .env.example .env # then fill in your credentialsRun in watch mode (or production)Ejecuta en modo watch (o producción)
pnpm dev # watch mode # or pnpm build && pnpm prod
Or run it with DockerO ejecútalo con Docker
docker build -t cookidoo-mcp . docker run --rm -p 3000:3000 --env-file .env cookidoo-mcp
Point your MCP client at itApunta tu cliente MCP
POST http://localhost:3000/api/mcp # Streamable HTTP (stateless) GET http://localhost:3000/api/health # liveness probe
Configured by environment.Configurado por entorno.
Credentials and localization come from environment variables. See .env.example in the repo.Las credenciales y la localización vienen de variables de entorno. Mira .env.example en el repo.
| VariableVariable | RequiredObligatoria | DefaultPor defecto | DescriptionDescripción |
|---|---|---|---|
COOKIDOO_EMAIL | yessí | — | Cookidoo account emailEmail de la cuenta de Cookidoo |
COOKIDOO_PASSWORD | yessí | — | Cookidoo account passwordContraseña de la cuenta de Cookidoo |
COOKIDOO_COUNTRY_CODE | nono | es | Localization country codeCódigo de país de localización |
COOKIDOO_LANGUAGE | nono | es-ES | Localization languageIdioma de localización |
COOKIDOO_URL | nono | cookidoo.es/… | Localization base URLURL base de localización |
COOKIDOO_COOKIE_FILE | nono | — | Path to persist the session across restartsRuta para persistir la sesión entre reinicios |
COOKIDOO_DEBUG | nono | false | Log the full OAuth2 login flow to debug authenticationRegistra todo el flujo de login OAuth2 para depurar la autenticación |
PORT | nono | 3000 | HTTP portPuerto HTTP |
COOKIDOO_COOKIE_FILE to a writable path to restore and rewrite the session across restarts — an expired one self-heals on the next 401. The file holds session cookies: treat it like a credential and keep it out of version control.
Por defecto la sesión vive solo en memoria. Define COOKIDOO_COOKIE_FILE con una ruta escribible para restaurar y reescribir la sesión entre reinicios — una caducada se auto-repara en el siguiente 401. El archivo guarda cookies de sesión: trátalo como una credencial y mantenlo fuera del control de versiones.
36 MCP tools, fully typed.36 herramientas MCP, totalmente tipadas.
Every tool dispatches a Command or Query through the CQRS bus. Filter by domain below.Cada herramienta despacha un Comando o Consulta por el bus CQRS. Filtra por dominio abajo.