Skip to main content
Glama

Unofficial Monsieur Cuisine MCP

An unofficial MCP server (built with FastMCP) that lets an AI assistant search, read, create, edit, and publish recipes on the Monsieur Cuisine service (Lidl's Monsieur Cuisine / LidlMix) using your own account.

WARNING

This is a vibe-coded prototype. The whole thing was built conversationally, end to end. It works and it's been tested against a real account — but treat it as a proof-of-concept, not production-grade code. There are no unit tests, the API is reverse-engineered from the web app (so it can break any time Lidl changes something), and every "authoring" tool writes to your real account. Have fun with it, but don't build anything important on top of it.

IMPORTANT

Monsieur Cuisine Smart (MC3.0) only. The recipe-authoring features (device programs and automatic step modes) are built and tested exclusively for the Monsieur Cuisine Smart (MC3.0). Other models expose a different, smaller program set that isn't supported here, so creating/editing recipes for them may fail or produce wrong steps.

Disclaimer

Unofficial and not affiliated with, endorsed by, or supported by Lidl, Monsieur Cuisine, or TecPal. "Monsieur Cuisine" and "Lidl" are trademarks of their respective owners. Use at your own risk, and be nice to the servers.

CAUTION

You are responsible for complying with Monsieur Cuisine's Terms of Service. This MCP was built for personal use — to get more enjoyment out of your own kitchen robot — not for disrupting the service or infringing anyone's intellectual property. Don't hammer the servers, don't scrape or redistribute content that isn't yours, and don't publish recipes or photos you don't own the rights to. How you use it is on you.


Related MCP server: Paprika MCP Server

What it does

Monsieur Cuisine has no official API. This server talks to the same endpoints the web app uses — the public recipe API, plus the site's session-authenticated proxy for your own recipes and favorites — and exposes them as clean MCP tools. Point any MCP-capable assistant at it and you can say things like "build me a 450-kcal high-protein lunch for two and save it privately" and it'll actually do it.

Cool things to try

These are just natural-language prompts to your assistant — it picks the tools.

🎯 Hit an exact calorie & macro target.

"Create a private recipe for a high-protein lunch bowl at about 450 kcal with 40 g protein, 30 g carbs and 15 g fat, 2 servings. Add realistic ingredient amounts and step-by-step Monsieur Cuisine smart instructions, then publish it privately."

🧊 Cook from whatever's in the fridge.

"I've got chicken thighs, a zucchini, half an onion, garlic and some rice. Find recipes I can make on my Monsieur Cuisine — and if nothing fits, draft a new one that uses them and set the device programs for each step."

⚖️ Rescale servings.

"Take my 'Zupa jarzynowa' recipe and change it from 3 servings to 6 — scale the ingredient amounts accordingly and bump the times if it needs it."

🥗 Nutrition-tune an existing recipe.

"Edit my pancake recipe to bring it down to ~300 kcal per serving and raise protein to 20 g, keeping everything else the same."

📸 Recipe with a cover photo, ready to publish.

"Create a draft for oatmeal with berries, attach ~/photos/oatmeal.jpg as the cover, fill in nutrients and steps, then publish it privately."

🧹 Tidy up.

"List all my recipes, publish the two soup drafts privately, and delete the empty test ones."

Requirements

  • Python ≥ 3.10 (developed on 3.12)

  • uv for dependency management

  • A real Monsieur Cuisine / Lidl account (login happens in a real browser)

  • A Monsieur Cuisine Smart (MC3.0) — the recipe-authoring features target this model only

  • Dependencies (installed via uv sync): fastmcp, httpx, playwright

Setup

# 1. Install dependencies
uv sync

# 2. Install the browser used for the one-time login (once)
uv run playwright install chromium

# 3. Log in — a real browser window opens; sign in normally (CAPTCHA/2FA included)
uv run monsieur-cuisine-mcp-login

Lidl's login (accounts.lidl.com) is interactive and CAPTCHA-protected, so there's no headless login — you log in manually in the browser window that opens. Once the session is established, the cookies are saved to ~/.monsieur-cuisine-mcp/storage_state.json and reused until they expire. Re-run the login command whenever the session lapses.

The login uses your installed Google Chrome when it's available (falling back to the bundled Chromium) and keeps its own browser profile in ~/.monsieur-cuisine-mcp/browser-profile, so repeat logins look like the same returning device. If a login fails, it writes a timestamped trace — navigations, request statuses, console errors — to ~/.monsieur-cuisine-mcp/last-login.log. No passwords and no request/response bodies are ever recorded.

Run the server

uv run monsieur-cuisine-mcp        # starts the MCP server over stdio

Connect it to an MCP client

Claude Code:

claude mcp add monsieur-cuisine -- uv run --directory /path/to/Unofficial-Monsieur-Cuisine-MCP monsieur-cuisine-mcp

…or the generic JSON config most MCP clients understand:

{
  "mcpServers": {
    "monsieur-cuisine": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/Unofficial-Monsieur-Cuisine-MCP", "monsieur-cuisine-mcp"]
    }
  }
}

Verbose logs: set MC_LOG_LEVEL=DEBUG or pass --debug to either command.

Tools

Fourteen tools, grouped by what they touch.

Discover & read — public, no login needed

Tool

What it does

search_recipes

Search the public catalog with rich filters: category, complexity, duration, rating, device type, and even nutrient ranges (kcal / protein / carbs / fat).

list_recipe_filters

List the valid filter option ids (categories, complexity, …) for a language — feed these into search_recipes.

get_recipe

Full details for a recipe by id: ingredients, per-serving steps, and nutrients. Also reads your own drafts/private recipes when you're logged in.

Your account — login required

Tool

What it does

list_my_recipes

Your own authored recipes, filterable by status (draft / in-review / private / published).

list_favorite_recipes

Your bookmarked recipes.

add_favorite_recipe / remove_favorite_recipe

Bookmark or un-bookmark a recipe.

search_ingredients

Search the ingredient database (returns the ingredient ids used to link steps to real ingredients).

Author recipes — login required

Tool

What it does

list_recipe_creation_options

Valid complexity/category/unit/device ids plus the full device-program catalog (customized, steaming, sous-vide, cooking eggs, …).

create_recipe

Create a draft: title, description, servings, prep/ready times, whole-number nutrients, ingredient groups, steps with automatic device programs, and an optional cover photo.

edit_recipe

Change any fields of one of your recipes — only what you pass is updated, everything else is preserved.

publish_recipe

Publish a draft privately, or submit it for public editorial review. Also flips an already-published recipe between private and public.

delete_recipe

Move one of your recipes to trash (works from any status).

restore_recipe

Bring a trashed recipe back as a draft (undo a delete).

How it works

  • Public API (mc-api.tecpal.com) — search, filters, and public recipe details. No auth.

  • Session proxy (/proxy-api) — everything tied to your account (favorites, your own recipes, create/edit/publish/delete), authenticated with the browser cookies from the manual login.

  • WordPress admin-ajax — the recipe-creation "guide" (valid categories, units, devices).

The code lives in a small package split by concern: client (the authenticated proxy call + error handling), search, favorites, ingredients, nutrients, media (cover-photo upload), payloads (recipe read→write mapping), devices (the device-program catalog and step builder), lifecycle (status changes + listing), and authoring (create/edit).

Good to know / limitations

  • It's your real account. Authoring tools create, change, publish, and trash real recipes. delete_recipe moves a recipe to trash — it vanishes from the site (which has no trash view or restore button, so treat it as permanent there), but the data is kept and restore_recipe can bring it back as a draft. There's no hard-delete, so trashed recipes linger server-side forever.

  • Nutrients must be whole numbers — fractional values are rounded.

  • Every step needs a title and every ingredient group needs a name to be publishable; the tools auto-fill sensible defaults ("Step 1", "General Ingredients") so drafts stay publishable.

  • Publishing is a one-way street away from "draft". A published recipe can be switched between private and public, or deleted — but it cannot be reverted to a draft (the platform forbids it).

  • Public vs. private publish. "Private" is instant; "public" submits the recipe for Monsieur Cuisine's editorial review and only goes live after they approve it.

  • Some categories aren't assignable. list_recipe_creation_options returns a few categories the create API rejects; if you hit Invalid category, pick a different one.

  • Rate limiting. Bursts of write calls can get temporarily throttled — space them out.

Vibe-coded extensions in this fork

This fork (published as monsieur-cuisine-mcp-vibe) was built conversationally on top of the original server — i.e. vibe-coded, end to end, with an AI coding assistant driving the changes. It keeps the original tools intact and adds:

  • English (en-US) by default for all Monsieur Cuisine operations (the upstream default is Polish pl-PL), including the matching login locale.

  • Paprika import (list_paprika_recipes, get_paprika_recipe, import_paprika_recipes): reads a Paprika .paprikarecipes.zip export and converts each recipe — splitting ingredient lines into amount/unit/name, mapping Thermomix free-text notation (3 sec/speed 7, 15 min/100°C/speed 1, 212°F/reverse speed 1, weigh 50 g, oven/Varoma settings) onto Monsieur Cuisine Smart device programs (customized, slow_cooking, roasting, steaming, kneading, scale), parsing servings/times/nutrition, uploading the embedded photo as the cover image, mapping categories/difficulty onto the locale's ids, then creating and (optionally) publishing each recipe. Re-runs are idempotent via skip_existing.

  • Automatic scale weigh steps wherever a recipe calls for weighing, so gram-weighted ingredients actually get a weighing step.

  • Pre-publish analysis (analyze_recipe) and a publish gate: publish_recipe now runs the analyzer first and refuses to publish recipes with blocking issues (missing quantities, empty step titles, missing cover photo).

  • Cookidoo import (cookidoo_login, cookidoo_status, get_cookidoo_recipe, import_cookidoo_recipe): logs in to Cookidoo (Thermomix's official recipe platform) via the unofficial cookidoo-api package and imports a recipe by id or URL, converting Thermomix steps to MC Smart programs, parsing nutrition, uploading the cover photo, and creating/publishing. Credentials via COOKIDOO_EMAIL/COOKIDOO_PASSWORD env vars or a .env file (gitignored); the auth token is cached in .cookidoo_token.

Treat this fork with the same caution as the upstream: reverse-engineered API, no unit tests, writes to your real account.

License

Apache-2.0.

Available Tools

22 tools
add_favorite_recipeAdd Favorite RecipeA

Add a recipe to the logged-in user's favorites (bookmarks).

Requires a saved login session: run uv run monsieur-cuisine-mcp-login once beforehand to log in manually in a browser window. If no session is saved, this tool raises an error telling the user to do that.

IMPORTANT: translation_id is the recipe's translationId field from a search_recipes/get_recipe result - NOT the numeric recipe id used by those same tools. Always call search_recipes or get_recipe first to look up the correct translationId for the recipe to add.

Inputs: translation_id (required), language. Returns: object

analyze_recipeAnalyze RecipeB

Deeply analyze one of the user's own recipes BEFORE publishing it.

Inputs: recipe_id (required), language. Returns: object

cookidoo_loginCookidoo LoginA

Log in to Cookidoo (Thermomix's official recipe platform) and cache the auth token, so Cookidoo recipes can be imported afterwards.

Credentials can be passed explicitly here, or set once via the COOKIDOO_EMAIL / COOKIDOO_PASSWORD environment variables (and optionally COOKIDOO_COUNTRY, default 'gb', and COOKIDOO_LANGUAGE, default 'en-GB') in a .env file in the project root. The token is cached in .cookidoo_token and reused on later calls.

Inputs: email, country, language, password. Returns: object

cookidoo_statusCookidoo StatusA

Report whether Cookidoo credentials and a cached token are available.

Inputs: no named parameters. Returns: object

create_recipeCreate RecipeA

Create a new recipe as a DRAFT under the logged-in user's account.

The recipe is created for the Monsieur Cuisine Smart (MC3.0), the only supported device. Only title is required. The recipe is saved as a draft (status "draft") and is NOT published. Pass image_path to attach a dish photo (see below). Publishing is a separate step: once the draft is complete, call publish_recipe (public review, or private=True for a private publish). A published recipe cannot be reverted to a draft; to take it down, switch it to private or delete it with delete_recipe.

Requires a saved login session: run uv run monsieur-cuisine-mcp-login once beforehand. If no session is saved, this tool raises an error telling the user to do that.

The valid step program names and their params are listed in full under steps below - you do NOT need another call to enumerate them. Only complexity_id and category_ids are language-specific ids you cannot guess: call list_recipe_creation_options(language) first (same language) to get those, or omit them (a draft is valid without them).

Inputs: title (required), fat, steps, protein, +13 more. Returns: object

delete_recipeDelete RecipeA

Delete one of the logged-in user's own recipes (moves it to trash).

This is the "Delete" action from the web app's "My recipes" list ("..." menu): it sets the recipe's status to "trash", so it disappears from the recipe list. The web app has no trash view or restore button, so on the website this is effectively permanent. Technically it's a soft delete - the data is kept server-side and can be brought back with restore_recipe - but there is no hard-delete endpoint, so a trashed recipe stays in trash forever. Works for the user's own recipes in any status; it cannot delete recipes that are not the user's own.

Because this changes the user's account, only call it for a recipe the user has clearly asked to delete, identified by its recipe_id (from list_my_recipes / the create_recipe result). The result reports the deleted recipe's title and previous status.

Requires a saved login session: run uv run monsieur-cuisine-mcp-login once beforehand.

Inputs: recipe_id (required), language. Returns: object

edit_recipeEdit RecipeA

Edit one of the logged-in user's own recipes (the "Edit" button in the web app). Only the fields you pass are changed; everything else is kept.

This is the counterpart to create_recipe: it fetches the recipe and re-saves it as a whole (the update is a full replace), so any argument left unset keeps its current value. The recipe keeps its current status; a published recipe is re-saved in place and must stay complete (the server rejects an edit that would make it incomplete). Requires a saved login session (uv run monsieur-cuisine-mcp-login).

Field meanings match create_recipe. IMPORTANT - collection fields REPLACE the current value when supplied: passing steps replaces ALL steps, and passing ingredients and/or ingredient_groups replaces ALL ingredient groups (so re-send the full list, not just the changed entries). Nutrients are merged instead: only the calories/protein/carbohydrate/fat you pass are overwritten. image_path replaces the cover photo. See create_recipe for the step/ingredient/program shapes.

Inputs: recipe_id (required), fat, steps, title, +14 more. Returns: object

get_cookidoo_recipeGet Cookidoo RecipeA

Preview how ONE Cookidoo recipe converts to a Monsieur Cuisine Smart recipe, without creating anything.

Accepts a Cookidoo recipe id (e.g. 'r59322') or a full Cookidoo URL (e.g. 'https://cookidoo.co.uk/recipes/recipe/en-GB/r59322'). Requires a prior cookidoo_login (or COOKIDOO_EMAIL/COOKIDOO_PASSWORD env vars).

Returns the parsed Cookidoo fields plus the converted payload: ingredients (amount/unit/name), steps with detected device programs (Thermomix '3 sec/speed 7' -> customized, '15 min/100°C/speed 1' -> customized, oven/Varoma -> roasting/steaming/slow_cooking/kneading, 'weigh N g' -> scale), mapped category/complexity ids, parsed servings/times/nutrition, and the downloaded cover-image file.

Inputs: recipe_ref (required), email, country, language, +2 more. Returns: object

get_paprika_recipeGet Paprika RecipeA

Preview how ONE recipe from a Paprika export converts to a Monsieur Cuisine Smart recipe, without creating anything.

Returns the parsed Paprika fields plus the converted payload: ingredients split into amount/unit/name, direction sentences mapped onto device programs (Thermomix "3 sec/speed 7" -> customized, "5 min/120°C/speed 1" -> customized, "212°F/reverse speed 1" -> customized reverse, "weigh 50 g" -> scale, oven/simmer notation -> roasting/slow_cooking/steaming/kneading), mapped category/complexity ids, parsed servings/times/nutrition, and the extracted cover-image file. Review a tricky conversion here, fix it with create_recipe/edit_recipe if needed - or skip straight to import_paprika_recipes, which does the same conversion automatically.

Inputs: name (required), zip_path (required), language. Returns: object

get_recipeGet RecipeA

Fetch full details for a single recipe: ingredients, step-by-step instructions per serving size, and nutrients (calories/protein/ carbohydrate/fat).

Always call this tool to get recipe details instead of fetching the recipe's web page directly - the web page requires a headless browser to render and does not expose this data as clean JSON.

Works for public recipes without login. It also reads the caller's OWN unpublished recipes (draft / private-publish) - those aren't served by the public API, so it falls back to the authenticated endpoint, which needs a saved login session. (Own recipes come back in a slightly different shape.)

Inputs: recipe_id (required), language. Returns: object

import_cookidoo_recipeImport Cookidoo RecipeA

Import ONE Cookidoo recipe into the user's Monsieur Cuisine account.

Fetches the recipe from Cookidoo (Thermomix settings included), converts it (ingredients split, Thermomix -> MC Smart device programs, times, servings, nutrition, cover photo), creates the recipe and (publish=True) publishes it. private=True publishes only to the user's own account (no editorial review).

Inputs: recipe_ref (required), email, country, private, +4 more. Returns: object

import_paprika_recipesImport Paprika RecipesA

Import recipes from a Paprika export archive onto the user's Monsieur Cuisine account, converting each one and (by default) publishing it.

For every selected recipe this: splits the ingredient lines into amount/unit/name ("30 g olive oil"), maps the Thermomix-style directions onto Monsieur Cuisine Smart device programs (customized / slow_cooking / roasting / steaming / kneading / scale - including a scale weighing step wherever the recipe calls for weighing), parses servings, prep/total times and the nutritional_info block, uploads the embedded photo as cover image, maps the Paprika categories/difficulty onto the language's MC category and complexity ids, then creates the recipe and (publish=True) publishes it immediately - private=True publishes only to the user's own account (no editorial review), private=False submits it for public review.

A recipe that fails the publish-completeness check stays as a draft and its publish_error is reported; fix it with edit_recipe + analyze_recipe, then publish_recipe. Re-running with skip_existing=True never creates duplicates (recipes already among the user's own are skipped).

Inputs: zip_path (required), limit, names, private, +3 more. Returns: object

list_favorite_recipesList Favorite RecipesA

List the logged-in user's favorite (bookmarked) recipes, with full recipe details for each one.

Requires a saved login session: run uv run monsieur-cuisine-mcp-login once beforehand to log in manually in a browser window. If no session is saved, this tool raises an error telling the user to do that.

Each result's top-level translationId field is what remove_favorite_recipe expects - not the nested recipe's id field.

Inputs: page, language, page_size, sort_field, +1 more. Returns: object

list_my_recipesList My RecipesA

List the logged-in user's OWN recipes - the web app's "My recipes" page.

This is the recipes the user authored (drafts, in-review, published and rejected), which is different from list_favorite_recipes (recipes the user bookmarked). Each entry's id is the numeric recipe id used by delete_recipe and get_recipe. Trashed/deleted recipes are never listed.

Requires a saved login session: run uv run monsieur-cuisine-mcp-login once beforehand. If no session is saved, this tool raises an error telling the user to do that.

Inputs: page, status, keyword, language, +3 more. Returns: object

list_paprika_recipesList Paprika RecipesA

List the recipes inside a Paprika app export archive (.paprikarecipes.zip).

Read-only preview of what the export contains: one entry per recipe with its name, servings, difficulty, Paprika categories and whether it has an embedded photo. Use get_paprika_recipe to preview the full Monsieur Cuisine conversion of one recipe, or import_paprika_recipes to create and publish them on the user's account.

Inputs: zip_path (required). Returns: object

list_recipe_creation_optionsList Recipe Creation OptionsA

List the valid option identifiers for creating a recipe in a given language: complexity levels, categories, serving units, ingredient units and device types.

Call this before create_recipe whenever you need to set complexity_id or category_ids, since their valid ids are language-specific and differ between locales.

Requires a saved login session: run uv run monsieur-cuisine-mcp-login once beforehand. If no session is saved, this tool raises an error telling the user to do that.

Inputs: language. Returns: object

list_recipe_filtersList Recipe FiltersA

List available recipe search filters and their valid option identifiers for a given language.

Call this before search_recipes whenever you need to pass categories, ingredient_categories or complexity, since their valid identifiers are specific to language and differ between locales.

Inputs: language. Returns: object

publish_recipePublish RecipeA

Publish one of the logged-in user's own DRAFT recipes.

The workflow is: create_recipe makes a draft, then this tool publishes it. Two modes, mirroring the web app's publish dialog:

  • private=False (default): PUBLIC publish - submits the recipe for editorial review (status "pending"); it goes public only after the Monsieur Cuisine team approves it. The web app requires confirming the recipe and photo are your own original content; publishing here asserts the same, so only do it when the user intends to submit their original recipe for public review.

  • private=True: PRIVATE publish (status "private-publish") - published only to the user's own account, no review.

The recipe must be complete or the server refuses to publish (a clear "not complete" error lists what is missing): cover photo, complexity, categories, a serving size, at least one ingredient, and a non-empty title on every step and ingredient group.

Also switches an already-published recipe between public and private. NOTE: a published recipe cannot be reverted to a draft (the platform forbids it) - to take one down, switch it to private (private=True) or use delete_recipe.

Requires a saved login session: run uv run monsieur-cuisine-mcp-login once beforehand.

Inputs: recipe_id (required), private, language. Returns: object

remove_favorite_recipeRemove Favorite RecipeA

Remove a recipe from the logged-in user's favorites (bookmarks).

Requires a saved login session: run uv run monsieur-cuisine-mcp-login once beforehand to log in manually in a browser window. If no session is saved, this tool raises an error telling the user to do that.

IMPORTANT: translation_id is the bookmark/recipe translationId field from a list_favorite_recipes result - NOT the numeric recipe id used by get_recipe/search_recipes. Always call list_favorite_recipes first to look up the correct translationId for the recipe to remove.

Inputs: translation_id (required), language. Returns: object

restore_recipeRestore RecipeA

Restore a trashed recipe (undo delete_recipe), bringing it back as a draft.

delete_recipe only moves a recipe to "trash" and keeps its data, so this can undo it. The web app can't (it has no trash view), but the API allows it. The recipe comes back as a DRAFT no matter what it was before deletion, so if it was published, re-publish it with publish_recipe afterwards. Find trashed recipes to restore with list_my_recipes(status="trash").

Meaningful only on a trashed recipe: on an already-published recipe it fails (a live recipe can't be moved back to draft); on a draft it's a no-op.

Requires a saved login session: run uv run monsieur-cuisine-mcp-login once beforehand.

Inputs: recipe_id (required), language. Returns: object

search_ingredientsSearch IngredientsA

Search the Monsieur Cuisine ingredient database, returning matching ingredients with their systemIngredientId.

Use this to find the system_ingredient_id for an ingredient before passing it to create_recipe, when you want to guarantee the exact database ingredient rather than relying on create_recipe's automatic first-match resolution of a plain name.

Requires a saved login session: run uv run monsieur-cuisine-mcp-login once beforehand. If no session is saved, this tool raises an error telling the user to do that.

Inputs: query (required), count, language. Returns: object

search_recipesSearch RecipesA

Search Monsieur Cuisine recipes by free text and/or filters.

IMPORTANT: categories, ingredient_categories and complexity are language-dependent - their valid identifiers differ per language (e.g. category IDs and complexity labels for "pl-PL" are entirely different from "en-US"). Always call list_recipe_filters(language) first with the same language to get valid identifiers for these three arguments.

Each result includes a url field pointing at the recipe's web page - do not fetch that page directly. Instead, pass the result's id to the get_recipe tool, which returns the same data as clean JSON.

Inputs: page, media, query, source, +19 more. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 22 tools

    Disambiguation4/5

    Tools are mostly clearly distinct: search vs get vs create/edit/delete/restore/publish form a recognizable lifecycle, and the Paprika vs Cookidoo import triplets are separated by verb (list/get/import). A few boundaries require reading descriptions (list_my_recipes vs list_favorite_recipes, list_recipe_filters vs list_recipe_creation_options, analyze_recipe has a vague description), but overlaps are minor.

    Naming Consistency4/5

    Nearly all names follow snake_case verb_noun (search_recipes, create_recipe, import_paprika_recipes). The only deviation is cookidoo_status (noun-first), which is a small, understandable exception for a status tool. Overall predictable and readable.

    Tool Count4/5

    22 tools is a bit above the ideal 3-15 range but each maps to a real operation across recipe CRUD, favorites, filters, ingredients, Paprika import and Cookidoo import. Nothing feels redundant or padding, though the surface is on the heavy side.

    Completeness4/5

    The recipe lifecycle is well covered: search/get/create/edit/delete/restore/publish/analyze, favorites add/remove/list, plus filters and two external import pipelines. Minor gaps exist (no ratings/comments, no public-recipe listing, no hard delete), but agents can work around them.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with Saffron recipe management functionality, including creating and updating recipes, importing from websites or text, and organizing cookbooks. Provides comprehensive recipe management capabilities through Saffron's API with support for ingredients, instructions, timing, and metadata.
      4 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to search, read, and update recipes in Paprika Recipe Manager, allowing natural language interaction with your recipe collection including ingredients, directions, and metadata.
      4
      5
      MIT
    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables 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.
      -
    • A
      license
      A
      quality
      D
      maintenance
      Enables LLMs to upload and manage Thermomix recipes on Cookidoo, including structured steps with Thermomix settings, images, and access to shopping lists and meal planning.
      11
      MIT