Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.smeet666/mcp-ptitchef

NPM · MCP-PTITCHEF · 2 COMPONENTS · SCANNED SEP 20

Search Ptitchef recipes, read one, and rescale it to any servings. No API key.

+3 this week 91 Trust /100
Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to smeet666/mcp-ptitchef). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 21 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability69
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1999 tokens (~285/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management80
  • Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.smeet666/mcp-ptitchef server?

io.github.smeet666/mcp-ptitchef runs locally as an npm package, launched with npx -y mcp-ptitchef. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · mcp-ptitchef

# add to Claude Code
claude mcp add smeet666-mcp-ptitchef -- npx -y mcp-ptitchef
// .cursor/mcp.json
{
  "mcpServers": {
    "smeet666-mcp-ptitchef": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-ptitchef"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "smeet666-mcp-ptitchef": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-ptitchef"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add smeet666-mcp-ptitchef -- npx -y mcp-ptitchef
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "smeet666-mcp-ptitchef": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mcp-ptitchef"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add smeet666-mcp-ptitchef --command npx --arg -y --arg mcp-ptitchef
# ~/.hermes/config.yaml
mcp_servers:
  smeet666-mcp-ptitchef:
    command: "npx"
    args: ["-y", "mcp-ptitchef"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "smeet666-mcp-ptitchef": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "mcp-ptitchef"
      ]
    }
  }
}
# add to Vellum
assistant mcp add smeet666-mcp-ptitchef -t stdio -c npx -a -y mcp-ptitchef
// mcp.json
{
  "mcpServers": {
    "smeet666-mcp-ptitchef": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-ptitchef"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

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

  • 17 Sept 26 +1

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

  • 15 Sept 26 +1

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

  • 13 Sept 26 +1

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

  • 11 Sept 26 +1

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

  • 9 Sept 26 +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.

  • 7 Sept 26 +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.

  • 4 Sept 26 +1

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

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/mcp-ptitchef@1.0.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo smeet666/mcp-ptitchef
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/smeet666/mcp-ptitchef/.github/workflows/publish.yml@refs/tags/v1.0.1
Rekor log index 2644874724
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:d583bf6bf057b1e50efc690dc6459e15925aa141d2883c5402206980b967d9d38ee429ee4efacde7998a1c20ea5b4fcf94912158413a53e994048abcc

Background: How many MCP packages publish verified provenance →

Dependencies 95 packages
Packages resolved 95
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 7 exposed · ~1,422 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
browse_recipes ~225

Read the recipes under one category of Ptitchef, page by page, or one of the lists the site keeps standing. Pass 'category' with a slug from list_categories or from a search's 'topic_slug', or pass 'listing' for one of: latest, top_rated, most_viewed. Never build a category slug by hand: the site writes them freely and answers an address it does not hold by serving another page. The page in the answer is the one the site served, which is the first page again when the page asked for is past the last one.

NameTypeReqDescription
categorystringA category slug: one from list_categories whose 'is_family' is false, or the 'topic_slug' a search answered with. A family's slug belongs to list_categories instead.
limitintegerRows to render, 20 by default.
listingstringOne of the site's standing lists, read instead of a category.
pageintegerThe page of a category to read. A standing list has one page only.
NameTypeReqDescription
askedstringyesWhat was asked for: a search, a category, or a list of ingredients. 'query' carries the same value under the name every source of recipes publishes it in.
foldedintegeryesRows naming a recipe already held. A guide lists one recipe under two headings where it belongs to both; such a row is counted in 'rows_seen' and rendered once.
kindstringyesHow the listing came to be, which decides what its total counts. 'topic' means the site answered a search from a page of its own; 'free_text' means it answered on its own terms.
notesarrayyesWhat qualifies this answer: what its total counts, what it left out, and where the site answered from an address other than the one asked for. Read these before quoting a figure.
pageintegeryesThe page that was read, which is the one the site served.
querystringyesWhat was asked for, under the name a search publishes it in.
result_countintegeryesRows rendered here.
resultsarrayyes
rows_seenintegeryesRows the site served on this page, before any were set aside.
single_pagebooleanyesTrue when the site serves this listing on one page and offers no further one.
sourcestringyesThe site this answer was read from. Credit it when showing a row.
titlestring|nullyesThe site's own heading for the listing.
topic_slugstring|nullyesThe category page this listing was served from. Pass it to browse_recipes as 'category' to read the topic's further pages, and its total where this answer carries none.
total_availableyesRecipes the site says this listing holds. Null when it published no figure.
urlstringyesThe address the listing was read from.

No examples provided.

get_recipe ~180

Read one Ptitchef recipe: its ingredients, method, times, rating, nutrition and the cost the site estimates for it. Pass the 'id' of a row from search_recipes, browse_recipes or search_by_ingredients. Give 'servings' to rescale the ingredients, and read each line's 'scaling' before quoting a quantity: 'scaled' is exact arithmetic, 'rounded' was moved to stay usable, and 'unscaled' carries nothing that could be multiplied. A time or a figure the site publishes none of comes back null, never zero.

NameTypeReqDescription
idstringyesThe 'id' of a row from a search or a listing, which is the recipe's own page path.
servingsintegerRescale the ingredients to this many servings. Left out, the ingredients come back as published.
NameTypeReqDescription
attributionstringyes
authorstring|nullyes
author_urlstring|nullyes
categorystring|nullyes
cook_minutesyes
cuisinestring|nullyes
descriptionstring|nullyes
difficultystring|nullyesThe site's own wording, such as 'facile'.
estimated_coststring|nullyesWhat the site estimates the ingredients cost, with the currency it names. Repeated as published: it is the site's figure and readers of the site dispute it.
faqarrayyes
idstringyes
illustrated_stepsarrayyes
image_urlstring|nullyes
ingredientsarrayyesThe lines as published where no servings were asked for, in which case 'yield.factor' is null and each line's 'scaling' describes no arithmetic. Pass 'servings' to rescale them.
keywordsarrayyes
modifiedstring|nullyes
notesarrayyesWhat qualifies this answer: what the arithmetic did, what it could not do, and what the site states rather than this server. Read these before quoting a quantity or a cost.
nutritionyesAs published, per the serving size it names.
prep_minutesyes
publishedstring|nullyes
ratingnumber|nullyes1 to 5, as the site states it.
rating_countyes
review_countyes
sourcestringyesThe site this recipe was read from. Credit it when showing it.
stepsarrayyesThe method, one line per step, in the shape every source of recipes publishes it in. 'illustrated_steps' carries the same lines beside the photograph the site took of each.
steps_are_one_blockbooleanyesTrue when the site published its method as one block of prose, so the single step above is that block rather than the first of several.
titlestringyes
total_minutesyes
translationsarrayyesThe other languages this recipe was published in, which get_recipe_translations answers on its own for a caller who wants nothing else.
urlstringyesThe public page. Show this when citing the recipe.
yieldobjectyes

No examples provided.

get_recipe_translations ~164

List the other languages a Ptitchef recipe was published in, with the page of each. get_recipe already carries this list under 'translations', so call this one only where the rest of the recipe is not wanted. Pass the 'id' of a row from a search or a listing. The pairing is the site's own: each page names its counterparts, and this repeats those names rather than matching titles. How many there are belongs to the recipe: a recent one names more than twenty, from German to Hindi, and an older one names none. An empty list is what the site published, and the read succeeded.

NameTypeReqDescription
idstringyesThe 'id' of a row from a search or a listing, which is the recipe's own page path.
NameTypeReqDescription
idstringyes
notesarrayyes
sourcestringyes
titlestringyes
translation_countintegeryes
translationsarrayyes
urlstringyesThe French page these counterparts were read from.

No examples provided.

list_categories ~201

List the categories Ptitchef browses its recipes by. Called without arguments it returns the families of ingredients; pass a family's slug as 'family' to list the categories it holds. Read this before building an address by hand: the site writes its slugs freely, so the same vegetable appears as 'chou-kale' on one line and as 'recette-de-petits-pois' on the next, and a slug that was guessed lands on a page the site does not hold. Each entry carries the slug to pass back and the page to open.

NameTypeReqDescription
familystringThe slug of a family to open, taken from a previous call. Leave it out to read the families themselves, which is where the tree starts.
limitintegerEntries to render, 20 by default and 200 at most. A level holding more than this says so, and 'categories_published' always states what the page listed.
NameTypeReqDescription
categoriesarrayyes
categories_publishedintegeryesEntries the page listed, before any were rendered.
category_countintegeryesEntries rendered here.
familystring|nullyesThe family that was opened, or null for the root.
family_titlestring|nullyesThe site's own heading for this level. Null when the page carries none.
notesarrayyes
sourcestringyes
urlstringyesThe page these categories were read from.

No examples provided.

scale_ingredients ~305

Rescale a list of ingredient lines to a different number of servings, without contacting any website. Give either 'factor' directly, or 'from_servings' and 'to_servings' and the factor is computed. Works on any French ingredient list, whatever its source, so it also serves a recipe pasted in by hand. Quantities in grams or millilitres are multiplied and rounded to readable values; a countable thing lands on a half when half of one can be poured, weighed or cut, as a boîte, a sachet, a feuille de gélatine or a cuillère can, and on a whole one when it cannot, as an oeuf, a jaune or a blanc; approximate measures such as a pinch or a handful have their count multiplied in whole units and stay in their own vocabulary. A line writing an article where a digit would go, as in 'un bouchon de rhum' or 'une pincée de sel', is read as one of that measure. Lines carrying no quantity are returned untouched and flagged. Prefer this over doing the arithmetic yourself.

NameTypeReqDescription
factornumberMultiplier to apply. Use this or the from/to pair.
from_servingsnumberHow many servings the list is written for.
ingredientsarrayyesIngredient lines, for example ['200 g de farine', '3 oeufs', 'sel'].
to_servingsnumberHow many servings are wanted.
NameTypeReqDescription
factornumberyes
ingredientsarrayyes
notesarrayyes
rounded_countintegeryesLines whose value rounding moved away from the exact product, not lines that could have been rounded.
scaled_countintegeryes
unscaled_countintegeryes

No examples provided.

search_by_ingredients ~138

Find Ptitchef recipes from the ingredients a cook already has. Give one to 5 ingredients in French, as a cook would name them ("poulet", "citron"). The site counts every recipe it finds and serves one page of them, so 'total_available' can be far larger than the rows returned, and the rest cannot be reached. A longer list than the site's own form reads is refused rather than sent and silently cut.

NameTypeReqDescription
ingredientsarrayyesOne to 5 ingredients, in French. The site reads no more than that.
limitintegerRows to render, 20 by default.
NameTypeReqDescription
askedstringyesWhat was asked for: a search, a category, or a list of ingredients. 'query' carries the same value under the name every source of recipes publishes it in.
foldedintegeryesRows naming a recipe already held. A guide lists one recipe under two headings where it belongs to both; such a row is counted in 'rows_seen' and rendered once.
kindstringyesHow the listing came to be, which decides what its total counts. 'topic' means the site answered a search from a page of its own; 'free_text' means it answered on its own terms.
notesarrayyesWhat qualifies this answer: what its total counts, what it left out, and where the site answered from an address other than the one asked for. Read these before quoting a figure.
pageintegeryesThe page that was read, which is the one the site served.
querystringyesWhat was asked for, under the name a search publishes it in.
result_countintegeryesRows rendered here.
resultsarrayyes
rows_seenintegeryesRows the site served on this page, before any were set aside.
single_pagebooleanyesTrue when the site serves this listing on one page and offers no further one.
sourcestringyesThe site this answer was read from. Credit it when showing a row.
titlestring|nullyesThe site's own heading for the listing.
topic_slugstring|nullyesThe category page this listing was served from. Pass it to browse_recipes as 'category' to read the topic's further pages, and its total where this answer carries none.
total_availableyesRecipes the site says this listing holds. Null when it published no figure.
urlstringyesThe address the listing was read from.

No examples provided.

search_recipes ~209

Search recipes on Ptitchef by dish or ingredient. The site answers in one of two ways and the answer says which: it either sends the search to a category page of its own, whose total counts what that category holds, or it answers on its own terms on a single page whose total is the number of rows served. When a category answered, 'topic_slug' names it and browse_recipes reads its further pages. Some topics come back as a guide the site wrote instead, grouped under headings of its own and carrying no total; browse_recipes on the same 'topic_slug' reads their full listing. A search the site matched nothing for comes back with no row and a total of zero, which is an absence the site stated.

NameTypeReqDescription
limitintegerRows to render, 20 by default. 'rows_seen' states what the page served.
querystringyesA dish or an ingredient, in French, as a reader of the site would type it.
NameTypeReqDescription
askedstringyesWhat was asked for: a search, a category, or a list of ingredients. 'query' carries the same value under the name every source of recipes publishes it in.
foldedintegeryesRows naming a recipe already held. A guide lists one recipe under two headings where it belongs to both; such a row is counted in 'rows_seen' and rendered once.
kindstringyesHow the listing came to be, which decides what its total counts. 'topic' means the site answered a search from a page of its own; 'free_text' means it answered on its own terms.
notesarrayyesWhat qualifies this answer: what its total counts, what it left out, and where the site answered from an address other than the one asked for. Read these before quoting a figure.
pageintegeryesThe page that was read, which is the one the site served.
querystringyesWhat was asked for, under the name a search publishes it in.
result_countintegeryesRows rendered here.
resultsarrayyes
rows_seenintegeryesRows the site served on this page, before any were set aside.
single_pagebooleanyesTrue when the site serves this listing on one page and offers no further one.
sourcestringyesThe site this answer was read from. Credit it when showing a row.
titlestring|nullyesThe site's own heading for the listing.
topic_slugstring|nullyesThe category page this listing was served from. Pass it to browse_recipes as 'category' to read the topic's further pages, and its total where this answer carries none.
total_availableyesRecipes the site says this listing holds. Null when it published no figure.
urlstringyesThe address the listing was read from.

No examples provided.

Common questions

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

io.github.smeet666/mcp-ptitchef is listed in the public MCP registry as io.github.smeet666/mcp-ptitchef. Search Ptitchef recipes, read one, and rescale it to any servings. No API key. This page covers its npm package (mcp-ptitchef).

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

io.github.smeet666/mcp-ptitchef scores 91 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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-ptitchef server expose?

io.github.smeet666/mcp-ptitchef exposes 7 tools: list_categories, search_recipes, browse_recipes, search_by_ingredients, get_recipe, and 2 more. Their descriptions and schemas cost roughly 1,422 tokens of context every time the server is loaded.

Is the io.github.smeet666/mcp-ptitchef server still maintained?

io.github.smeet666/mcp-ptitchef is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

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

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