# io.github.smeet666/mcp-recipes (mcpb · mcp-recipes-4.0.0.mcpb)

Search six recipe sites at once, in French, English and Spanish, and scale quantities.

- Trust score: 50/100 (low)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- mcpb · `mcp-recipes-4.0.0.mcpb`: 50/100 (this document), [markdown](https://verifymcp.io/servers/smeet666-mcp-recipes/https-github-com-smeet666-mcp-recipes-releases-download-v4-0-0-mcp-recipes-4-0-0.md), [page](https://verifymcp.io/servers/smeet666-mcp-recipes/https-github-com-smeet666-mcp-recipes-releases-download-v4-0-0-mcp-recipes-4-0-0)
- npm · `mcp-recipes`: 91/100, [markdown](https://verifymcp.io/servers/smeet666-mcp-recipes/mcp-recipes.md), [page](https://verifymcp.io/servers/smeet666-mcp-recipes/mcp-recipes)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/smeet666/mcp-recipes/releases/download/v4.0.0/mcp-recipes-4.0.0.mcpb`
- Version: `4.0.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-09-20.

- **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 16 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 61/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2273 tokens (~568/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**: 57/100
  - Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 4 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 5 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

- Download bundle: `https://github.com/smeet666/mcp-recipes/releases/download/v4.0.0/mcp-recipes-4.0.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-09-19 (score 50, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-16 (score 49, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-14 (score 48, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-12 (score 47, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-11 (score 46, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-09-04 (score 42, +11)

- [security improvement] Judged manipulation: unverified → pass
- [functional improvement] Schema quality: unverified → excellent

### 2026-09-03 (score 31)

First indexed and scored.

## MCP tools (4)

### `search_recipes` (~623 tokens)

Search every recipe source at once

Search every recipe source this server reads, at the same time, for a dish or an ingredient, and get one merged list. Each row carries the id get_recipe takes, and that id names the source it came from, so nothing has to be guessed afterwards. The sources are written in different languages and count their own results differently, so 'per_source' says what each one answered, what its own number means, and names any that failed. A short list is never evidence of what exists. Not every row opens onto a recipe. Some sources file pages about an ingredient beside the recipes using it, and some publish articles that gather recipes; 'per_source' says in each source's own words what one of its rows can be. Only get_recipe tells them apart, and it says what it read off the page. The query goes to each source's own search as free text. There is no filtering: a word naming a diet, a time or a calorie count matches only where that source's index happens to carry it. Ask in a whole sentence if that is the question. These indexes answer the words they are handed, so a sentence is also sent as the words naming the dish and as the dish word alone, and the rows are the union; 'per_source' lists every wording and what it returned. What the question says the recipe must not hold is set aside from those shorter wordings rather than searched for, and named back in the notes: a negation, an allergy stated as one, a diet named in one word, and the number of people at the table. No source filters on any of it, so open a row with get_recipe and read the ingredient list before calling it suitable. A condition is read with the food on whichever side of it the sentence put one, so 'allergique aux noix' and 'peanut allergy' both name the nut. Where a sentence puts a food on neither side, the notes say a condition was stated and that its food was not read, because naming the wrong word would hide a dish and search for the food being avoided at once. Rows are interleaved one source at a time rath…

Input parameters:

- `fan_out` (boolean): Whether a question may also be sent in shorter wordings derived from it. On, because these indexes answer the words they are handed: a question written as a sentence comes back empty from a corpus ho…
- `limit_per_source` (integer): Rows to take from each source, so one source cannot fill the whole list.
- `query` (string, required): A dish or an ingredient, in any of the languages the sources publish in.
- `sources` (array): Sources to ask, by id. Left out, they are all asked, which is the point of this tool. The ids are the ones 'per_source' reports.

Output parameters:

- `notes` (array)
- `order` (string): How the list was built, in words.
- `per_source` (array)
- `query` (string)
- `result_count` (integer): Rows in this answer, across every source.
- `results` (array)

### `get_recipe` (~541 tokens)

Read one recipe, optionally rescaled

Read one recipe in full: its ingredients, its steps, what it yields, and whatever times, rating and nutrition its source publishes. 'id' must come from search_recipes. It names the source, so this reads the right one without guessing; an identifier no source would have minted is refused, because sending it anywhere would answer about the wrong dish. Pass 'servings' to rescale. Quantities land where a kitchen can follow them: an egg stays whole, anything that pours or cuts can halve, a small measurement moves to a smaller unit before it is rounded, and anything unmultipliable is flagged rather than scaled. A page that states no number of servings comes back as published and says so, because dividing by a yield nobody wrote would answer for a number of people the page never claimed. Read 'kind' first. Some sources publish articles gathering other recipes at the same kind of address as a recipe, and such an answer carries 'collection' with the recipes it points at and no 'recipe' at all: there is nothing to cook from that page, and the recipes it lists are read with get_recipe. A part this answer holds nothing for says which of two things happened: the page showed no sign of it, or this server failed to read what the page carries. An empty ingredient list is never evidence that an ingredient is absent from the dish. 'sections' decides what comes back, and 'sections_omitted' names what was left out: a field belonging to an omitted section is empty because nobody asked for it, never because the page states nothing. A field a source does not publish is null, never zero. Credit the source and link the url when you repeat any of it.

Input parameters:

- `id` (string, required): From search_recipes, such as 'marmiton:44078', 'pequerecetas:paella-de-marisco' or 'cookbook:Cookbook:Carbonara'. Two sources address a recipe by a bare number, so spell an id with its source.
- `max_gathered` (integer): Recipes and headings to return from an address that gathers recipes. The answer says how many the article holds.
- `max_step_chars` (integer): Characters kept per step. Raise it only if a step was cut mid-sentence.
- `max_steps` (integer): Steps to return. The answer says how many more there are.
- `sections` (array): Which parts to return. A full recipe is a lot of text, so this defaults to two.
- `servings` (integer): Rescale to this many. Left out, the quantities come back as published.

Output parameters:

- `collection` (object): Present when 'kind' is 'collection'.
- `id_read_as` (string|null): How a raw identifier was routed, when it was not spelled with its source.
- `kind` (string): What the address held. 'recipe' comes with 'recipe' and no 'collection'; 'collection' comes with 'collection' and no 'recipe', and is an article gathering other recipes, with no ingredients and no me…
- `notes` (array)
- `recipe` (object): Present when 'kind' is 'recipe'.

### `scale_ingredients` (~378 tokens)

Scale an ingredient list, in any language it reads

Multiply a list of ingredient lines, in French, in English, in Spanish, or in a list holding more than one of them. Give either 'factor', or 'from_servings' and 'to_servings' and the factor is worked out from them. Quantities land where a kitchen can follow them: an egg stays whole because half of one is not something a cook takes out of the shell, while anything that pours, weighs or cuts can halve, a spoonful shrinks into the smaller spoon before it is rounded, and a pinch keeps whatever size a hand gives it while its count is multiplied. Every line comes back with 'scaling': 'scaled' when the arithmetic landed on the exact product, 'rounded' when something had to move for the line to stay usable, 'unscaled' when the line carries nothing to multiply. A rounded line says what it was rounded from and in which direction. No quantity is converted between measuring systems: grams stay grams and cups stay cups, because a conversion changes what the recipe said.

Input parameters:

- `factor` (number): What to multiply by. Give exactly one of: 'factor', or both 'from_servings' and 'to_servings'.
- `from_servings` (integer): What the list serves now. Give it with 'to_servings', and without 'factor'.
- `ingredients` (array, required): The lines as written, one ingredient each, such as '200 g de farine' or '3 eggs'. One line, not a whole recipe.
- `language` (string): 'auto' reads each line on its own, which is what a list holding more than one language needs. Name a language to read every line that way.
- `to_servings` (integer): What it should serve. Give it with 'from_servings', and without 'factor'.

Output parameters:

- `equipment_count` (integer): Lines naming a tool, which are never multiplied: a recipe made for more people uses the same pan.
- `factor` (number): What every quantity was multiplied by.
- `ingredients` (array)
- `language` (string): How the lines were read.
- `notes` (array)
- `rounded_count` (integer): Lines whose value moved to stay usable.
- `scaled_count` (integer): Lines whose arithmetic came out exact.
- `unscaled_count` (integer): Lines carrying nothing that can be multiplied, tools excepted.

### `compare_recipes` (~303 tokens)

One dish, as each source writes it

Take a dish and show how each source writes it, side by side. Each source's closest match is read in full, and all of them can be rescaled to the same number of servings so the ingredient lists stand comparison. The answer states what differs and leaves it there: the quantities each asks for, what each measures in, what each yields, and which fields each source publishes at all. No version is ranked above another. Some sources carry reader ratings and some have no author and no rating by nature, so there is no score they share. When only one source answers, the answer says so and shows that one rather than presenting part of a comparison as the whole of it.

Input parameters:

- `dish` (string, required): The dish to compare, in any of the languages the sources publish in.
- `max_step_chars` (integer): Characters kept per step. Raise it only if a step was cut mid-sentence.
- `max_steps` (integer): Steps to return per version.
- `sections` (array): Which parts of each version to return. Several full recipes is a lot of text.
- `servings` (integer): Rescale every version to this many, which is what makes the lists comparable.
- `sources` (array): Sources to compare, by id. Left out, every source is read, which is the point of this tool. Name two or three to put particular traditions side by side. The ids are the ones 'per_source' reports.

Output parameters:

- `differences` (array): What differs between the versions, stated as fact. No version is ranked.
- `dish` (string)
- `notes` (array)
- `per_source` (array)
- `versions` (array)

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/smeet666-mcp-recipes/https-github-com-smeet666-mcp-recipes-releases-download-v4-0-0-mcp-recipes-4-0-0#diagnostics

## Score history

- 2026-09-20: 50
- 2026-09-19: 50
- 2026-09-18: 49
- 2026-09-17: 49
- 2026-09-16: 49
- 2026-09-15: 48
- 2026-09-14: 48
- 2026-09-13: 47
- 2026-09-12: 47
- 2026-09-11: 46
- 2026-09-10: 42
- 2026-09-09: 42
- 2026-09-08: 42
- 2026-09-07: 42
- 2026-09-06: 42
- 2026-09-05: 42
- 2026-09-04: 42
- 2026-09-03: 31

## Common questions

### What is the io.github.smeet666/mcp-recipes server?

io.github.smeet666/mcp-recipes is listed in the public MCP registry as io.github.smeet666/mcp-recipes. Search six recipe sites at once, in French, English and Spanish, and scale quantities. This page covers its MCPB bundle (https://github.com/smeet666/mcp-recipes/releases/download/v4.0.0/mcp-recipes-4.0.0.mcpb).

### Is the io.github.smeet666/mcp-recipes server safe to use?

io.github.smeet666/mcp-recipes scores 50 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.smeet666/mcp-recipes server expose?

io.github.smeet666/mcp-recipes exposes 4 tools: search_recipes, get_recipe, scale_ingredients, compare_recipes. Their descriptions and schemas cost roughly 1,845 tokens of context every time the server is loaded.

### What licence is the io.github.smeet666/mcp-recipes server under?

io.github.smeet666/mcp-recipes declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Repository: https://github.com/smeet666/mcp-recipes
- Changelog RSS feed: https://verifymcp.io/servers/smeet666-mcp-recipes/https-github-com-smeet666-mcp-recipes-releases-download-v4-0-0-mcp-recipes-4-0-0.xml
- Changelog JSON feed: https://verifymcp.io/servers/smeet666-mcp-recipes/https-github-com-smeet666-mcp-recipes-releases-download-v4-0-0-mcp-recipes-4-0-0.json
- HTML version of this page: https://verifymcp.io/servers/smeet666-mcp-recipes/https-github-com-smeet666-mcp-recipes-releases-download-v4-0-0-mcp-recipes-4-0-0
