mcp-marmiton
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
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.
_Version française_
---
Install
**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.
With Docker
-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.
Bundle, without npm
Download mcp-marmiton-2.1.0.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.
What you can ask
- « Trouve-moi une recette de tarte aux pommes. »
- "Read me that recipe for six people instead of four."
- "What can I make with courgettes and chèvre?"
- "Here is a recipe I copied from a book, scale it by 1.5 for me."
- "How long does the second one take to cook?"
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.
Tools
| 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_recipes
Searches 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_recipe
Reads 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_ingredients