Skip to main content
Glama
smeet666

mcp-supertoinette

mcp-supertoinette

CI npm licence MIT

在 MCP 客户端中阅读 Supertoinette 的食谱:搜索食谱、阅读单条食谱、按其他人数重新调整份量、浏览类别,以及查询葡萄酒搭配。

只读。无需 API 密钥,无需账户。

法文版


安装

claude mcp add supertoinette -- npx -y mcp-supertoinette

或者在任何 MCP 客户端的配置中:

{
  "mcpServers": {
    "supertoinette": {
      "command": "npx",
      "args": ["-y", "mcp-supertoinette"]
    }
  }
}

使用 Docker:

docker build -t mcp-supertoinette .
docker run -i --rm mcp-supertoinette

容器只需要能够访问 www.supertoinette.com

Related MCP server: spoonacular-mcp

工具

工具

用途

search_recipes

按菜品或食材查找食谱

get_recipe

读取一条食谱,可按要求调整份量

list_categories

食谱可按其浏览的类别

browse_recipes

某个类别下的食谱

get_wine_pairings

为一道菜推荐五种葡萄酒,或菜品索引

scale_ingredients

离线调整任何法语食材列表的份量

食谱通过其地址中的数字来标识:/recette/4210/veloute-de-gaverole.html 中的 4210search_recipesbrowse_recipes 在每一行都返回该数字。

search_recipes

参数

类型

默认值

备注

query

string

required

一道菜或一种食材,用法语

limit

integer

20

1 到 39

page

integer

1

1 到 1000

category

string

一个分面标签,例如 Poissons

{
  "query": "cabillaud",
  "page": 1,
  "last_page": 2,
  "results": [
    {
      "id": "702",
      "title": "Cabillaud aux champignons",
      "url": "https://www.supertoinette.com/recette/702/cabillaud-aux-champignons.html",
      "image_url": "https://recette.supertoinette.com/new/…-800.webp",
      "categories": ["Sauces", "Poissons"]
    }
  ],
  "result_count": 20,
  "rows_published": 39,
  "total_available": null,
  "facets": [{ "label": "Poissons", "count": 60 }]
}

category 接受 facets 中的某个标签,按返回时的拼写原样传入。未知标签找不到任何结果,因此过滤器会被丢弃,搜索会在没有该标签的情况下重新运行,并有一条备注说明哪个标签被丢弃了。total_available 始终为 null,因为 Supertoinette 不发布总数;请使用 last_page。分面计数相互重叠,因此它们的总和会超过返回的行数。搜索会将食谱与网站自身的编辑精选混在一起;这些精选会被移除,这就是 result_count 可能低于 limit 的原因。

get_recipe

参数

类型

默认值

备注

id

string

required

地址中的数字

servings

integer

1 到 1000

{
  "id": "4210",
  "title": "Velouté de gaverole au pravin",
  "url": "https://www.supertoinette.com/recette/4210/veloute-de-gaverole.html",
  "yield": { "original_text": "6 personnes", "requested": 4, "factor": 0.6667 },
  "ingredients": [
    {
      "text": "533 g de tiges de gaverole",
      "original": "800 g de tiges de gaverole",
      "scaling": "scaled",
      "amount": 533,
      "unit": "g",
      "is_heading": false
    }
  ],
  "steps": ["Émincer les tiges de gaverole."],
  "prep_minutes": 15,
  "cook_minutes": 25,
  "rest_minutes": 30,
  "total_minutes": 70,
  "difficulty": { "label": "Recette facile" },
  "cost_level": { "label": "Economique", "level": 1, "scale": 3 },
  "rating": { "value": 4.2, "count": 9, "scale": 5 },
  "tags": [{ "label": "Soupes & potages", "category": "91/recettes-soupes-potages" }],
  "faq": []
}

时间以分钟为单位,在 Supertoinette 未发布任何值的地方为 nulldifficulty 有一个标签但没有等级,因为网站没有为其发布等级;cost_level 有一个等级,因为网站绘制了它。ingredient_sheets 包含网站自身的链接,其中大约二十分之一的链接指向旁边一行不同的食材。

对产量中没有数字的食谱请求 servings — “供一大盘使用” — 会返回 invalid_input。请求类别页面的 id 会返回 parse_failure

list_categoriesbrowse_recipes

list_categories 不接受任何参数,并返回 Supertoinette 在其页面上列出的四十个类别:

{
  "categories": [
    {
      "label": "Soupes & potages",
      "category": "91/recettes-soupes-potages",
      "url": "https://www.supertoinette.com/recettes/91/recettes-soupes-potages",
      "listed_in": "footer"
    }
  ],
  "category_count": 40
}

listed_in 对菜品种类为 footer,对烹饪方式和季节为 menu。食谱自身的 tags 会通向数百个这两个列表都没有的更多类别。

browse_recipes 读取其中一个类别:

参数

类型

默认值

备注

category

string

required

一个令牌,例如 107/recettes-desserts

limit

integer

20

1 到 30

page

integer

1

1 到 1000

令牌由数字和名称共同组成。从 list_categories 或食谱的 tags 中获取它,并原样传回:名称的任何其他拼写都会到达一个不存在的页面。每一行在搜索行所包含的内容之外,还增加了 difficultytotal_minutes

search_recipescategorybrowse_recipescategory 是两回事。前者是分面标签(Poissons),后者是令牌(95/recettes-poissons)。

超过最后一页的页码返回时没有行也没有错误;请将 pagelast_page 进行比较。

get_wine_pairings

为某道菜提供 id,或为菜品字母索引提供 pagekind 表示返回的是两者中的哪一个,另一个字段为 null

参数

类型

备注

id

string

菜品地址中的数字

page

integer

1 到 100,用于索引

{
  "kind": "dish",
  "dish": {
    "dish": "Aligot",
    "style": "Un vin blanc sec assez puissant, fin et très légèrement boisé",
    "pairings": [
      { "rank": "Bon accord", "wine": "Premières côtes de bordeaux" },
      { "rank": "Accord parfait", "wine": "Mâcon blanc" }
    ],
    "recipes": [{ "id": "1081", "title": "Aligot" }]
  },
  "index": null
}

五个等级是 Supertoinette 自己的措辞,按它自己的顺序排列。

scale_ingredients

调整任何法语食材列表的份量,无需访问网络。

参数

类型

备注

ingredients

string[]

1 到 200 行

factor

number

大于 0,最大 100

from_servingsto_servings

integer

1 到 1000,代替 factor

每一行返回时都带有标记。scaled 是精确计算。rounded 已移动到一个厨房可以量出的量,note 给出它移动前的精确数值。unscaled 没有可乘的数量。单位保持食谱所用的体系不变,近似度量保持其自身大小:四倍的一撮就是四撮。

get_recipe 在给定 servings 时应用相同的规则。

设置

环境变量,全部可选。超出范围的值会在 stderr 上被拒绝,并应用默认值。

变量

默认值

范围

STO_USER_AGENT

你的标识符,会添加到此项目标识的前面

STO_MIN_INTERVAL_MS

3000

3000 到 60000

STO_TIMEOUT_MS

20000

1000 到 120000

STO_MAX_RETRIES

3

0 到 8

STO_CACHE_TTL_MS

900000

0 到 86400000,0 表示禁用缓存

STO_CACHE_MAX_ENTRIES

200

1 到 5000

STO_LOG_LEVEL

error

silent, error, info, debug

一次只处理一个请求。STO_MIN_INTERVAL_MS 将两次请求之间的间隔提高到其 3000 毫秒下限以上,并且没有任何设置可以降低它。

错误

代码

含义

not_found

该地址没有任何内容

invalid_input

参数无法生成请求

rate_limited

网站要求放慢速度;请稍后重试

parse_failure

页面以该服务器无法读取的形式到达

network_error

请求失败

timeout

在截止时间内没有应答

每条消息都以方括号中的代码开头。

作为库使用

读取层独立发布,自带节奏控制、缓存和错误处理:

import { SupertoinetteClient } from "mcp-supertoinette/client";

数量按 Supertoinette 发布的形式返回;重新调整份量由上面的工具完成。

署名

食谱、标题和照片均归 Supertoinette 所有。展示食谱时,请注明来源网站并链接到该页面。

贡献

参见 CONTRIBUTING.md。基于 MIT 许可。


mcp-supertoinette (法语)

在 MCP 客户端中阅读 Supertoinette 的食谱:搜索食谱、阅读单条食谱、按其他人数重新调整份量、浏览类别,以及查询葡萄酒搭配。

只读。无需 API 密钥,无需账户。

安装

claude mcp add supertoinette -- npx -y mcp-supertoinette

或者在任何 MCP 客户端的配置中:

{
  "mcpServers": {
    "supertoinette": {
      "command": "npx",
      "args": ["-y", "mcp-supertoinette"]
    }
  }
}

使用 Docker:

docker build -t mcp-supertoinette .
docker run -i --rm mcp-supertoinette

容器只需要能够访问 www.supertoinette.com

工具

工具

用途

search_recipes

按菜品或食材查找食谱

get_recipe

读取一条食谱,可按要求调整份量

list_categories

食谱可按其浏览的类别

browse_recipes

某个类别下的食谱

get_wine_pairings

为一道菜推荐五种葡萄酒,或菜品索引

scale_ingredients

离线调整任何法语食材列表的份量

食谱通过其地址中的数字来标识:/recette/4210/veloute-de-gaverole.html 中的 4210search_recipesbrowse_recipes 在每一行都返回该数字。

search_recipes

参数

类型

默认值

备注

query

string

required

一道菜或一种食材

limit

integer

20

1 到 39

page

integer

1

1 到 1000

category

string

一个分面标签,例如 Poissons

category 接受 facets 中返回的某个标签,按原样书写。未知标签找不到任何结果,因此过滤器会被丢弃,搜索会在没有该标签的情况下重新运行,并有一条备注说明哪个标签被丢弃了。total_available 始终为 null,因为 Supertoinette 不发布任何总数;请使用 last_page。分面计数相互重叠,它们的总和会超过行数。搜索会将食谱与网站自身的编辑精选混在一起;这些精选会被移除,这就是 result_count 低于所请求的 limit 的原因。

get_recipe

参数

类型

默认值

备注

id

string

required

地址中的数字

servings

integer

1 到 1000

时间以分钟为单位,在 Supertoinette 未发布任何值时为 nulldifficulty 带有一个标签但没有等级,因为网站没有为其发布任何等级;cost_level 带有自己的等级,因为网站绘制了它。ingredient_sheets 包含网站自身的链接,其中大约二十分之一的链接指向旁边一行不同的食材。

对产量中没有数字的食谱请求 servings — “供一大盘使用” — 会返回 invalid_input。请求类别页面的 id 会返回 parse_failure

list_categoriesbrowse_recipes

list_categories 不接受任何参数,并返回 Supertoinette 在其页面上列出的四十个类别。listed_in 对菜品种类为 footer,对烹饪方式和季节为 menu。食谱的 tags 会通向数百个这两个列表都没有的更多类别。

browse_recipes 读取其中一个类别:

参数

类型

默认值

备注

category

string

required

一个令牌,例如 107/recettes-desserts

limit

integer

20

1 到 30

page

integer

1

1 到 1000

令牌由数字和名称共同组成。从 list_categories 或食谱的 tags 中获取它,并原样传回:名称的任何其他拼写都会到达一个不存在的页面。每一行在搜索行所包含的内容之外,还增加了 difficultytotal_minutes

search_recipescategorybrowse_recipescategory 是两回事。前者是分面标签(Poissons),后者是令牌(95/recettes-poissons)。

超过最后一页的页码返回时没有行也没有错误;请将 pagelast_page 进行比较。

get_wine_pairings

为某道菜提供 id,或为菜品字母索引提供 pagekind 表示返回的是两者中的哪一个,另一个字段为 null

参数

类型

备注

id

string

菜品地址中的数字

page

integer

1 到 100,用于索引

五个等级是 Supertoinette 自己的措辞,按它自己的顺序排列。

scale_ingredients

调整任何法语食材列表的份量,无需访问网络。

参数

类型

备注

ingredients

string[]

1 到 200 行

factor

number

大于 0,最大 100

from_servingsto_servings

integer

1 到 1000,代替 factor

每一行返回时都带有标记。scaled 是精确计算。rounded 已移动到一个厨房可以量出的量,note 给出它移动前的精确数值。unscaled 没有可乘的数量。单位保持食谱所用的体系不变,近似度量保持其自身大小:四倍的一撮就是四撮。

get_recipe 在给定 servings 时应用相同的规则。

设置

环境变量,全部可选。超出范围的值会在 stderr 上被拒绝,并应用默认值。

变量

默认值

范围

STO_USER_AGENT

你的标识符,会添加到此项目标识的前面

STO_MIN_INTERVAL_MS

3000

3000 到 60000

STO_TIMEOUT_MS

20000

1000 到 120000

STO_MAX_RETRIES

3

0 到 8

STO_CACHE_TTL_MS

900000

0 到 86400000,0 表示禁用缓存

STO_CACHE_MAX_ENTRIES

200

1 到 5000

STO_LOG_LEVEL

error

silent, error, info, debug

一次只处理一个请求。STO_MIN_INTERVAL_MS 将两次请求之间的间隔提高到其 3000 毫秒下限以上,并且没有任何设置可以降低它。

错误

代码

含义

not_found

该地址没有任何内容

invalid_input

参数无法生成请求

rate_limited

网站要求放慢速度;请稍后重试

parse_failure

页面以该服务器无法读取的形式到达

network_error

请求失败

timeout

在截止时间内没有应答

每条消息都以方括号中的代码开头。

作为库使用

读取层独立发布,自带节奏控制、缓存和错误处理:

import { SupertoinetteClient } from "mcp-supertoinette/client";

数量按 Supertoinette 发布的形式返回;重新调整份量由上面的工具完成。

署名

食谱、标题和照片均归 Supertoinette 所有。展示食谱时,请注明来源网站并链接到该页面。

贡献

参见 CONTRIBUTING.md。基于 MIT 许可。

参数

类型

默认值

说明

category

字符串

必填

一个令牌,如 107/recettes-desserts

limit

整数

20

1 到 30

page

整数

1

1 到 1000

令牌由数字和名称组成。请从 list_categories 或食谱的 tags 中获取它,并原样传回:以任何其他方式书写名称都会指向不存在的页面。每一行都会在搜索行所携带的内容上增加 difficultytotal_minutes

search_recipescategorybrowse_recipescategory 是两回事。前者是分面标签(Poissons),后者是令牌(95/recettes-poissons)。

超出最后一页的页码不会返回任何行,也不会报错;请比较 pagelast_page

get_wine_pairings

为一道菜提供 id,或为菜肴的字母索引提供 pagekind 指示返回的是两种响应中的哪一种,另一个字段为 null

参数

类型

说明

id

字符串

一道菜地址中的编号

page

整数

1 到 100,用于索引

五个等级沿用 Supertoinette 的等级及其顺序。

scale_ingredients

在不访问网络的情况下,对一份法语食材列表进行缩放。

参数

类型

说明

ingredients

字符串[]

1 到 200 行

factor

数字

大于 0,最大 100

from_servingsto_servings

整数

1 到 1000,替代 factor

每一行都会带标记返回。scaled 表示精确计算。rounded 表示已折算为厨房中可计量的数量,并附有 note 说明其变动的确切数值。unscaled 表示该行没有需要乘的数量。单位保持食谱所用的体系,近似计量保持其大小:四倍的少许就是四个少许。

当传入 servings 时,get_recipe 也适用同样的规则。

设置

环境变量,全部可选。超出范围的值会在 stderr 上被拒绝,并采用默认值。

变量

默认值

范围

STO_USER_AGENT

您的标识符,置于项目标识符之前

STO_MIN_INTERVAL_MS

3000

3000 到 60000

STO_TIMEOUT_MS

20000

1000 到 120000

STO_MAX_RETRIES

3

0 到 8

STO_CACHE_TTL_MS

900000

0 到 86400000,0 表示禁用缓存

STO_CACHE_MAX_ENTRIES

200

1 到 5000

STO_LOG_LEVEL

error

silenterrorinfodebug

一次只处理一个请求。STO_MIN_INTERVAL_MS 将两次请求之间的间隔延长到其 3000 毫秒下限以上,任何设置都不能将其降低。

错误

代码

含义

not_found

该地址没有内容

invalid_input

参数无法生成有效的请求

rate_limited

网站要求放慢速度;请稍后重试

parse_failure

页面以该服务器无法解析的形式返回

network_error

请求失败

timeout

在时限内没有收到响应

每条消息都以方括号中的代码开头。

作为库使用

读取层单独发布,包含其速率、缓存和错误处理:

import { SupertoinetteClient } from "mcp-supertoinette/client";

数量按 Supertoinette 发布的原样返回;缩放功能位于上层的工具中。

署名

食谱、标题和照片均归 Supertoinette 所有。展示食谱时,请注明来源网站并链接到相应页面。

贡献

参见 CONTRIBUTING.md。基于 MIT 许可。

A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    Enables management of culinary recipes through web scraping from sites like Marmiton.org, recipe generation, ingredient management, and querying a MongoDB database of recipes, comments, users, and utensils.
    18
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to search for recipes, get nutritional information, find ingredients, and more through the Spoonacular Food API using natural language.
    6
    15
    5
    ISC
  • A
    license
    A
    quality
    B
    maintenance
    MCP server that searches French recipes from Marmiton, reads ingredients and steps, and rescales quantities to any number of servings without requiring an API key.
    6
    3
    2,395
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Search and read recipes from the English Wikibooks Cookbook, with tools to rescale ingredient lists to a target number of servings.
    4
    117
    MIT

View all related MCP servers

Related MCP Connectors

  • Spoonacular food API: recipes, nutrition, ingredients, meal plans. Free 150/day.

  • Recipes MCP — wraps TheMealDB API (free tier, no auth)

  • Clean product data from any URL. Schema.org + AI extraction. 200 free calls/month.

View all MCP Connectors

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-supertoinette'

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