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).

  • Private publishing by default for the user's own collection, plus nutrient lookup/estimation guidance.

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.

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.
    2 npm
    MIT
  • A
    license
    A
    quality
    F
    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
    D
    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