Search Marmiton recipes, read ingredients and steps, and scale quantities to any servings.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Marmiton is the largest French cooking site, where home cooks have been publishing their recipes since 1999. Each one gives its ingredients with their quantities, the steps to follow, the preparation and cooking times, the number of servings it is written for, and the ratings the people who made it left behind.
This server connects a chat client to that site. You can search its recipes by dish or by ingredient, read one in full with its ingredients and its steps, and rescale the quantities to the number of people at your table, with each line saying whether the figure is exact or was moved to stay usable in a kitchen. It needs no API key and no account.
One-click install
Claude Code
Claude Desktop, Cursor, and any client using the standard config format
Node 24 or later is required, and no environment variable has to be set.
-i keeps stdin open, which is where the protocol travels, and -t is left out
because a TTY rewrites the stream. The container needs outbound HTTPS to
www.marmiton.org, and nothing else: no volume, no port, no credential.
Download mcp-marmiton-2.0.1.mcpb from
the latest release
and open it. A client that supports MCP bundles installs it on its own, with no
npm and no configuration file to edit. The bundle carries its dependencies, so
nothing is fetched at install time.
Marmiton is a French site, so its recipes are found in French: tarte aux pommes, poulet curry coco. The ordinary path runs from a search to a reading:
search_recipes names an id, and get_recipe takes that id.
| Tool | What it does |
|---|---|
search_recipes | Finds recipes by dish or by ingredient. |
get_recipe | Reads one recipe, rescaled to a number of servings on request. |
scale_ingredients | Rescales any ingredient list, with no request to the site. |
The server only reads. It publishes nothing to Marmiton.
search_recipesSearches the recipes for a dish or an ingredient. Marmiton matches on the opening letters of a word, so a query brings back what the site ranked for it, and the answer says when the titles carry none of the words asked for.
| Argument | Type | Required | What it does |
|---|---|---|---|
query | string, up to 200 characters | yes | What to search for, in French. |
limit | integer, 1 to 30, default 10 | no | Recipes to serve from this page of results. |
In return: rows carrying id, which get_recipe takes; title; url; and
image_url, which is null for a recipe published without a picture. Alongside
come result_count and total_available, the recipes on this page before
limit was applied. Marmiton's robots.txt disallows paging through search
results, so one page is what a search reads: narrow the query to see other
recipes.
get_recipeReads one recipe in full, and rescales its quantities when a number of servings is given.
| Argument | Type | Required | What it does |
|---|---|---|---|
id | string of digits | one of two | The Marmiton recipe id, as search_recipes returned it. |
url | a marmiton.org URL | one of two | The address of the recipe, used when id is absent. |
servings | number, above 0 and up to 500 | no | Rescale the quantities to this many servings. |
In return: title, url, ingredients, steps, prep_minutes,
cook_minutes, total_minutes, category, author, rating and nutrition,
each null when the page publishes none. yield says what the recipe was
written for and what it was rescaled to: original_count, original_text,
requested, unit for what is being counted, and factor for the multiplier
applied. Every ingredient carries original, text, amount, amountMax for a
range, unit, and scaling, which reads scaled, rounded or unscaled. The
figures are this server's arithmetic, so say they were recomputed when you show
them. nutrition describes the recipe as published, at its own number of
servings.
scale_ingredientsApplies the same arithmetic to any list of ingredient lines, with no request to the site, so it works on a recipe copied from a book or a family notebook.
| Argument | Type | Required | What it does |
|---|---|---|---|
ingredients | array of 1 to 100 strings, up to 300 chars | yes | The lines to rescale, in French. |
factor | number, above 0 and up to 100 | one of two | The multiplier to apply. |
from_servings | number, above 0 and up to 500 | one of two | How many servings the list is written for. |
to_servings | number, above 0 and up to 500 | one of two | How many servings are wanted. |
Pass factor, or the from_servings and to_servings pair.
In return: the factor used, the rescaled ingredients in the shape
get_recipe returns, and scaled_count, rounded_count and unscaled_count,
which count the lines whose value the rounding moved.
Every ingredient comes back with a scaling flag saying what the rescaling could
do with its quantity.
| Flag | Meaning | Example |
|---|---|---|
scaled | The value is the product itself. | 3 oeufs Γ2 β 6 oeufs |
rounded | The value was moved to stay usable. | 25 cl de lait Γ0.667 β 17 cl de lait |
unscaled | Carries no quantity, so left exactly as written. | sel, coriandre |
A quantity is stated in the unit that suits it, so a line can come back in a
different unit from the one the recipe used: 200 g multiplied by twenty reads
4 kg.
How finely an ingredient can be divided depends on what it is. A baguette can be
cut in two, in three or in four; an egg cannot be shared out. A quantity landing
between the two is rounded, and the rescaled recipe then departs a little from
the proportions of the original. The line carries rounded, and its note says
what was done.
Every variable is optional. Set them in the env block of your client config.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcp-marmiton)<a href="https://allmcps.com/mcp/mcp-marmiton"><img src="https://allmcps.com/api/badge/mcp-marmiton?style=directory" alt="MCP Marmiton on AllMCPs" /></a>