MCP server for Supertoinette. Read French recipes and rescale their quantities honestly. No API key.
FAQ (answers come from our records)
How do I install it?
We did not find an install command for this repository (our install coverage is only about 4%). Check its README or releases page.
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository smeet666/mcp-supertoinette;first catalogued 2026-10-09;last seen 2026-10-16。There is no official certification or quality rating here — we record sources and dates only.
mcp-supertoinette
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Supertoinette is a French cooking site, one of
the oldest still standing. Its recipes give their ingredients, their steps, their
preparation, cooking and resting times, the number of people they feed and the
photographs of the dish. Beside the recipes it keeps a set of pages of its own on
what to drink with a dish, matching a wine to it and saying which style it
belongs to.
This server connects a chat client to that site. You can search its recipes, read
one with its ingredients rescaled to the number of people at your table, walk its
categories, read a category page by page, and look up what it suggests drinking
with a dish. 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.supertoinette.com, and nothing else: no volume, no port, no credential.
Bundle, without npm
Download mcp-supertoinette-1.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 blanquette de veau. »
- "Read me that recipe for ten people."
- "What categories does the site file its recipes under?"
- "What wine goes with a beef bourguignon?"
- "Scale this ingredient list from my grandmother's notebook by three."
Supertoinette is a French site, so its recipes are found in French. The ordinary
path runs from a search to a recipe: a row carries an id, and get_recipe
takes that id.
Tools
| Tool | What it does |
| ------------------- | -------------------------------------------------------------- |
| get_recipe | Reads one recipe, rescaled to a number of servings on request. |
| search_recipes | Finds recipes by dish or by ingredient. |
| list_categories | Reads the categories the site files its recipes under. |
| browse_recipes | Reads one category, page by page. |
| get_wine_pairings | Reads what the site suggests drinking with a dish. |
| scale_ingredients | Rescales any ingredient list, with no request to the site. |
get_recipe
Reads one recipe in full, and rescales its ingredients when a number of servings
is given.
| Argument | Type | Required | What it does |
| ---------- | -------------------------- | -------- | ------------------------------------------------------ |
| id | string, 1 to 10 characters | yes | The number in a recipe's address, as a row carries it. |
| servings | integer, 1 to 1000 | no | Rescale the ingredients to this many servings. |
**In return:** title with the pictogram the site opens it with taken off, and
title_as_published exactly as the site wrote it; url; description;
published_at; intro, the prose printed above the method; steps;
prep_minutes, cook_minutes, rest_minutes and total_minutes; category;
author; and rating, each null where the page states nothing. yield says
what the recipe was written for and what it was rescaled to. ingredients
carries the lines with the headings the page groups them under, which is what
ingredient_count counts, and each line's scaling reads scaled, rounded or
unscaled.
search_recipes
Searches the recipes for a dish or an ingredient, one page at a time.
| Argument | Type | Required | What it does |
| ---------- | --------------------------- | -------- | ----------------------------------------------------------------- |
| query | string, 1 to 120 characters | yes | A dish or an ingredient, in French. |
| limit | integer, 1 to 39 | no | Rows to serve. |
| page | integer, 1 to 1000 | no | Which page of results to read, the first by default. |
| category | string, 1 to 60 characters | no | One category, spelled as a previous answer's facets spelled it. |
**In return:** rows carrying id, which get_recipe takes, title,
title_as_published and url. Alongside come page, last_page for the
highest page the site links to from this one, result_count, rows_published
for the rows the page held before any were rendered, total_available and
facets, which publishes the category wordings a further search takes. Never
build a category wording by hand: the site answers one it does not know with a
page that reads as an absence.