Search the Wikibooks Cookbook, read a recipe and rescale it to any number of 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.
The Cookbook is the recipe collection of the English Wikibooks, a Wikimedia project. Thousands of recipes are written and maintained there in the open, each with its ingredients, the equipment it calls for, its steps, the tips and variations its authors added, and the categories it files itself under: a cuisine, a kind of dish, a main ingredient. The pages are published under Creative Commons Attribution-ShareAlike 4.0.
This server connects a chat client to that collection. You can search the recipes by dish or by ingredient, list them by cuisine, kind of dish or main ingredient, read one with its ingredients rescaled to the number of people at your table, and rescale any ingredient list of your own. 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
api.wikimedia.org, and nothing else: no volume, no port, no credential.
Download mcp-wikibooks-cookbook-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.
The ordinary path runs from a search to a reading: a row carries an id, the
page key, and get_recipe takes that key.
| 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 wiki. |
list_recipes | Lists recipes by cuisine, kind of dish or main ingredient. |
search_recipesSearches the Cookbook, either across the whole text of its pages or across their titles alone.
| Argument | Type | Required | What it does |
|---|---|---|---|
query | string, 1 to 300 characters | yes | A dish, such as carbonara, or an ingredient, such as guanciale. |
search | text or title, default text | no | text reads the whole page; title matches the page name alone. |
limit | integer, 1 to 50, default 10 | no | Rows to serve. |
In return: rows carrying id, the page key get_recipe takes; title;
url; image_url; description, the short gloss the wiki keeps for a page; and
excerpt, the matching passage with the highlight markup taken off. Each of the
last three is null where the search offered none. total_available is always
null: the search route publishes no total and no paging, so result_count
counts the rows this call returned.
get_recipeReads one recipe, and rescales its ingredients when a number of servings is given.
| Argument | Type | Required | What it does |
|---|---|---|---|
id | string, 1 to 300 characters | yes | The page key, such as Cookbook:Spaghetti_alla_Carbonara. |
servings | integer, 1 to 500 | no | Rescale the ingredients to this many servings. |
max_description_chars | integer, 100 to 20000, default 1200 | no | How much of the page's prose to serve. |
In return: title, url, ingredients, equipment, steps, tips for
the notes and variations the page publishes, prep_minutes, cook_minutes,
total_minutes, time_text in the page's own wording, time_phases, category
and categories for every category the page files itself under. A figure the
page states nothing for is null. id names the page that was read, which
differs from the key asked for after a redirect, and redirected_from then names
the key that led there. yield says what the recipe was written for and what it
was rescaled to, and each ingredient carries scaling, reading scaled,
rounded or unscaled.
scale_ingredientsApplies the same arithmetic to any list of ingredient lines, with no request to the wiki.
| Argument | Type | Required | What it does |
|---|---|---|---|
ingredients | array of 1 to 100 strings, up to 300 chars | yes | The lines to rescale. |
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.
list_recipesLists recipes along the categories the Cookbook files them under. The arguments combine, and the answer says which search was built from them.
| Argument | Type | Required | What it does |
|---|---|---|---|
cuisine | string, up to 80 characters | no | A cuisine or a country, such as Italian or Thai. |
dish_type | string, up to 80 characters | no | A kind of dish, such as soup, dessert or bread. |
main_ingredient | string, up to 80 characters | no | The ingredient a recipe is built on. |
limit | integer, 1 to 50, default 15 | no | Rows to serve. |
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-wikibooks-cookbook)<a href="https://allmcps.com/mcp/mcp-wikibooks-cookbook"><img src="https://allmcps.com/api/badge/mcp-wikibooks-cookbook?style=directory" alt="MCP Wikibooks Cookbook on AllMCPs" /></a>