Skip to main content
Glama
smeet666

mcp-wikibooks-cookbook

Read a recipe

get_recipe
Read-onlyIdempotent

Fetches a complete recipe from the Wikibooks Cookbook, including ingredients, steps, and nutrition, and rescales ingredient amounts to any desired serving size.

Instructions

Read one Wikibooks Cookbook page: ingredients, equipment, steps, yield, time, difficulty, category, and the nutrition panel when the page carries one. 'id' is the page key from search_recipes or list_recipes, such as 'Cookbook:Spaghetti_alla_Carbonara'. A plain dish name is accepted and the Cookbook namespace is added. Pass 'servings' to rescale: a countable thing lands on the smallest share a cook can take out of one of it, which is a whole one where half of one cannot be measured out at all, such as an egg or a whole clove, a half where half of one pours, weighs or splits, such as a can or a packet, and a quarter where a knife or the size of the thing goes further, such as an onion, a slice of bread or a jar; a measurement is moved to a smaller unit before rounding so nothing disappears; and anything that cannot be multiplied is flagged instead. Read 'scaling' on each ingredient rather than doing the arithmetic yourself. A page that groups its ingredients by what they are for, such as a cake and its glaze, states that group on every line; a page that lists them flat states null. Two lines can read alike and belong to different parts of the dish. A page offering several versions of the dish states which one each line came from in 'variant'. Those lists replace one another: one of them is used, even where the procedure says to mix all the ingredients. A measurement the page writes as a conversion template is read as the value and the unit the page wrote, and the counterpart the template computes is left out: nothing here is converted between measuring systems. A line asking for as much as is needed and giving an indication in brackets, such as 'water as required (about 1 ½ cups)', states a quantity: the indication is scaled with the recipe and the wording in front of it is left as the page wrote it. A line offering an alternative in brackets, such as '4 eggs (or 8 egg yolks)', has both branches scaled, since a cook takes one of them. The Cookbook keeps recipes and the book's own chapter indexes in one namespace, and both write 'Ingredients' over a bulleted list. A page carrying no recipe box, no recipe banner and no procedure comes back with empty lists and a note: its bullets are links to other pages rather than things to buy. A heading owns what is nested under it and stops at the next heading of its own level, so a page carrying two recipes returns the first of each part and names the rest in a note. A page that only redirects elsewhere is followed to the page it points at, and 'id' and 'redirected_from' say which page was read. Rescaling needs a yield to scale from. A page that states none comes back as published, and says so. A page yielding no quantities is answered with 'factor' 1 and a note: an empty ingredient list was multiplied by nothing. 'author' and 'rating' are always null: the Cookbook is written collectively and carries no reader score. A time the page does not state is null, never zero, and never inferred from the steps. A page stating phases rather than a total, such as a fermentation and a cooking, publishes them in 'time_phases' with 'total_minutes' null: the phases measure different things and are never added. Pages are published under a licence that requires attribution; 'license' and 'url' carry what to credit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesPage key from a search, such as 'Cookbook:Spaghetti_alla_Carbonara'.
servingsNoRescale the ingredients to this many servings.
max_description_charsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe page that was read, which differs from 'id' after a redirect.
urlYes
tipsYesNotes, tips and variations the page publishes.
notesYes
stepsYes
titleYes
yieldYes
authorYesAlways null: the Cookbook is written collectively.
energyYesEnergy per serving as the page states it.
ratingYesAlways null: the Cookbook carries no reader score.
sourceYes
licenseYes
categoryYes
equipmentYes
nutritionYes
time_textYesThe time in the page's own wording.
categoriesYesEvery category the page files itself under.
difficultyYes
revised_atYes
attributionYes
descriptionYes
ingredientsYes
time_phasesYesEach duration the page states, in the order it states them.
cook_minutesYesThe phase the page labels as cooking. Null when it labels none.
prep_minutesYesThe phase the page labels as preparation. Null when it labels none.
total_minutesYesThe whole dish, stated only where the page states a total: one duration, or a phase the page itself calls the total. Null where the page states phases and no total, since a fermentation, a marinade or a rest is not cooking time and adding them would answer with a figure nobody published. Read 'time_phases' instead.
difficulty_maxYesThe scale 'difficulty' sits on.
redirected_fromYesRedirect pages walked to reach this one. Empty when the page was reached directly.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses an extensive set of behavioral traits: rescaling rules, handling of groups/variants/conversion templates, redirects, pages without recipe boxes, null fields, and licensing. This goes far beyond the annotations (readOnlyHint, idempotentHint, etc.) and leaves little ambiguity about tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough but presented as a single dense paragraph without bullet points or section breaks, making it hard to scan. Each sentence carries information, but the lack of structure reduces conciseness and readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the description covers all expected output fields and edge cases, including scaling behavior, redirects, missing data, and attribution. It complements the output schema well, providing context for fields like 'factor', 'time_phases', and 'redirected_from'. This is a nearly complete specification for practical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial meaning to 'id' (accepts plain dish names, namespace handling) and 'servings' (detailed rescaling rules) beyond the schema. However, 'max_description_chars' is not mentioned in the description nor described in the schema, leaving a gap for one of the three parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Read one Wikibooks Cookbook page' and lists the specific content returned (ingredients, equipment, steps, etc.), making the tool's purpose explicit. It clearly distinguishes itself from sibling tools like search_recipes and list_recipes by focusing on reading a single page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: 'id' is the page key from search_recipes or list_recipes, and passing 'servings' triggers rescaling. It also explains when rescaling fails (no yield). However, it does not explicitly name alternatives or provide when-not-to-use guidance beyond this, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/smeet666/mcp-wikibooks-cookbook'

If you have feedback or need assistance with the MCP directory API, please join our Discord server