# io.github.smeet666/mcp-wikibooks-cookbook (mcpb · mcp-wikibooks-cookbook-1.3.0.mcpb)

Search the Wikibooks Cookbook, read a recipe and rescale it to any number of servings.

- Trust score: 40/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-12

## Components

- mcpb · `mcp-wikibooks-cookbook-1.3.0.mcpb`: 40/100 (this document), [markdown](https://verifymcp.io/servers/smeet666-mcp-wikibooks-cookbook/https-github-com-smeet666-mcp-wikibooks-cookbook-releases-download-v1-3-0-mcp-wi.md), [page](https://verifymcp.io/servers/smeet666-mcp-wikibooks-cookbook/https-github-com-smeet666-mcp-wikibooks-cookbook-releases-download-v1-3-0-mcp-wi)
- npm · `mcp-wikibooks-cookbook`: 79/100, [markdown](https://verifymcp.io/servers/smeet666-mcp-wikibooks-cookbook/mcp-wikibooks-cookbook.md), [page](https://verifymcp.io/servers/smeet666-mcp-wikibooks-cookbook/mcp-wikibooks-cookbook)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/smeet666/mcp-wikibooks-cookbook/releases/download/v1.3.0/mcp-wikibooks-cookbook-1.3.0.mcpb`
- Version: `1.3.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-12.

- **Supply Chain Security**: 13/100
  - Malware scan not yet available for this package.
  - Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.
  - No install/post-install scripts declared.
  - Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 2 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 59/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2138 tokens (~534/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 94/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 79% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

- Download bundle: `https://github.com/smeet666/mcp-wikibooks-cookbook/releases/download/v1.3.0/mcp-wikibooks-cookbook-1.3.0.mcpb`

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-11 (score 40, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-08-09 (score 39)

First indexed and scored.

## MCP tools (4)

### `search_recipes` (~282 tokens)

Search the Cookbook

Search the Wikibooks Cookbook for a recipe, by dish name or by an ingredient it uses. 'text' searches the whole of each page, which is what finds a dish from an ingredient inside it; 'title' matches the page name only, which is exact and misses a dish the Cookbook names differently. The Cookbook also holds reference pages on ingredients, techniques and cuisines, and those rank alongside recipes: a row is a page, and only get_recipe can say whether it carries an ingredient list. A full-text row can be a page that merely names the dish: when the titles do not say the words searched for, the notes say so, because the Cookbook links to dishes it does not hold. On a title search the same rows are pages the Cookbook files under another name, such as 'Eggplant' for 'aubergine', since that search opens no page. 'total_available' is null because the search route reports no total and offers no second page. Narrow the query rather than asking for more. Every row carries an 'id', which get_recipe takes.

Input parameters:

- `limit` (integer)
- `query` (string, required): A dish, such as 'carbonara', or an ingredient, such as 'guanciale'.
- `search` (string): 'text' reads the whole page; 'title' matches the page name only.

Output parameters:

- `notes` (array)
- `query` (string)
- `result_count` (integer): Rows returned by this call.
- `results` (array)
- `source` (string)
- `total_available`: Always null: the search route publishes no total and no paging.

### `get_recipe` (~784 tokens)

Read a recipe

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…

Input parameters:

- `id` (string, required): Page key from a search, such as 'Cookbook:Spaghetti_alla_Carbonara'.
- `max_description_chars` (integer)
- `servings` (integer): Rescale the ingredients to this many servings.

Output parameters:

- `attribution` (string)
- `author`: Always null: the Cookbook is written collectively.
- `categories` (array): Every category the page files itself under.
- `category`
- `cook_minutes`: The phase the page labels as cooking. Null when it labels none.
- `description`
- `difficulty`
- `difficulty_max` (number): The scale 'difficulty' sits on.
- `energy`: Energy per serving as the page states it.
- `equipment` (array)
- `id` (string): The page that was read, which differs from 'id' after a redirect.
- `ingredients` (array)
- `license`
- `notes` (array)
- `nutrition`
- `prep_minutes`: The phase the page labels as preparation. Null when it labels none.
- `rating`: Always null: the Cookbook carries no reader score.
- `redirected_from` (array): Redirect pages walked to reach this one. Empty when the page was reached directly.
- `revised_at`
- `source` (string)
- `steps` (array)
- `time_phases` (array): Each duration the page states, in the order it states them.
- `time_text`: The time in the page's own wording.
- `tips` (array): Notes, tips and variations the page publishes.
- `title` (string)
- `total_minutes`: The 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 o…
- `url` (string)
- `yield` (object)

### `scale_ingredients` (~502 tokens)

Rescale an ingredient list

Rescale a list of English ingredient lines. This contacts no website and works on a list from anywhere, including one the user pasted in. Give either 'factor' directly, or 'from_servings' and 'to_servings' and the factor is computed. Grams, millilitres, ounces and pounds are multiplied and rounded to what a scale can show; a quantity that would fall below one is moved to a smaller unit first, so it never rounds away to nothing. Countable things land where a kitchen can follow, and what decides is the content rather than the container: a can, a packet, a sheet of gelatine or a spoon lands on a half, because half of one pours, weighs or cuts. An egg, a yolk, a white, a zest or a whole clove lands on a whole one, since there is no half of it to measure out, which is what stops an answer like '2.4 eggs'. A bottle, a jar, a block and a slice go one step further, to the quarter, as a whole food a knife shares out does. An approximate measure is scaled as a count, so a pinch taken from 6 servings to 25 is 4 pinches; the note gives the everyday equivalence, and the quantity stays in the unit the line used. That covers the gestures, such as a pinch, a dash, a glug or a handful, and anything named after what holds it, such as a capful or a spoonful. A line with no quantity at all comes back untouched and flagged. A bracketed equivalent, as in '450 g (1 pound)', is scaled with the amount it restates rather than left to contradict it, and so is one written after a slash, as in '500 g / 1.1 lb'. A line offering a choice, as in '2 tablespoons butter OR 30 g margarine', has both branches scaled, so whichever one the cook takes carries the same share. Prefer this over doing the arithmetic yourself.

Input parameters:

- `factor` (number): Multiplier to apply. Use this or the from/to pair.
- `from_servings` (number): How many servings the list is written for.
- `ingredients` (array, required): Ingredient lines, for example ['450 g (1 pound) spaghetti', '5 egg yolks', 'Salt'].
- `to_servings` (number): How many servings are wanted.

Output parameters:

- `factor` (number)
- `ingredients` (array)
- `notes` (array)
- `rounded_count` (integer): Lines whose value was moved to stay usable, not lines that could have been.
- `scaled_count` (integer): Lines whose arithmetic came out exact.
- `unscaled_count` (integer): Lines carrying nothing that can be multiplied.

### `list_recipes` (~235 tokens)

Browse the Cookbook

Browse the Wikibooks Cookbook by cuisine, by kind of dish, or by main ingredient. Give at least one of the three; giving several narrows the result. This is built on the Cookbook's search, because the route this server is allowed to use publishes no way to list the members of a category. What comes back is therefore a ranked sample and not the category itself: it is neither complete nor ordered, and its length says nothing about how many recipes the Cookbook holds on the subject. The Cookbook also holds reference pages on ingredients and techniques, and those rank alongside recipes. Open a row with get_recipe before describing it as a recipe. Use search_recipes instead when there is a dish name to look up.

Input parameters:

- `cuisine` (string): A cuisine or a country, such as 'Italian' or 'Thai'.
- `dish_type` (string): A kind of dish, such as 'soup', 'dessert' or 'bread'.
- `limit` (integer)
- `main_ingredient` (string): The ingredient a recipe is built on, such as 'chicken' or 'lentils'.

Output parameters:

- `cuisine`
- `dish_type`
- `main_ingredient`
- `notes` (array)
- `query` (string): The search this server built from the arguments.
- `result_count` (integer)
- `results` (array)
- `source` (string)
- `total_available`: Always null: no route reports how many recipes a category holds.

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/smeet666-mcp-wikibooks-cookbook/https-github-com-smeet666-mcp-wikibooks-cookbook-releases-download-v1-3-0-mcp-wi#diagnostics

## Score history

- 2026-08-12: 40
- 2026-08-11: 40
- 2026-08-10: 39
- 2026-08-09: 39

## Links

- Repository: https://github.com/smeet666/mcp-wikibooks-cookbook
- Changelog RSS feed: https://verifymcp.io/servers/smeet666-mcp-wikibooks-cookbook/https-github-com-smeet666-mcp-wikibooks-cookbook-releases-download-v1-3-0-mcp-wi.xml
- Changelog JSON feed: https://verifymcp.io/servers/smeet666-mcp-wikibooks-cookbook/https-github-com-smeet666-mcp-wikibooks-cookbook-releases-download-v1-3-0-mcp-wi.json
- HTML version of this page: https://verifymcp.io/servers/smeet666-mcp-wikibooks-cookbook/https-github-com-smeet666-mcp-wikibooks-cookbook-releases-download-v1-3-0-mcp-wi
