mcpField
M
mcp-pequerecetas

mcp-pequerecetas

本地服务
github.com游戏娱乐0今天更新

关于 mcp-pequerecetas

mcp-pequerecetas 将西班牙家庭食谱网站 Pequerecetas 接入聊天客户端,适合查找食谱并按人数调整用量。它还可浏览分类,并缩放现有的西班牙语食材清单,无需 API 密钥或账户。

主要功能

  1. 01按菜名或食材搜索食谱
  2. 02读取食谱并调整份量
  3. 03浏览分类及其选项
  4. 04缩放西班牙语食材清单

适用场景

  1. 01按人数调整食谱用量
  2. 02按饮食、场合或烹饪器具查找食谱
  3. 03缩放已有的西班牙语食材清单

MCP 相关

作为 MCP 服务,它向客户端提供食谱搜索、读取、分类浏览和食材用量缩放工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
npmmcp-pequerecetas1.2.0
mcpbmcp-pequerecetas-1.2.0.mcpb1.2.0

工具

5

收录的工具列表 · 更新于 今天

参数类型必填说明
idstring是菜谱地址中的 slug,来自 search_recipes 或 browse_recipes。
servingsinteger否将用量调整为此份数,最多 1000 份。省略时,返回已发布菜谱的原始用量。

详细介绍

README 配图

mcp-pequerecetas

npm CI license MCP Registry Glama Install in Cursor Install in VS Code

Pequerecetas 是一个面向家庭的西班牙家常菜网站。它收录了数千道食谱,包含食材、步骤和照片,并按适用的饮食类型、烹饪所用的厨具、制作场合以及食用者的年龄分类,年龄范围从 6 个月起。

此服务将聊天客户端连接到该网站。你可以搜索食谱、阅读食谱并按用餐人数调整食材用量、列出各分类体系提供的取值、逐页浏览分类页面,还可以按比例调整你已有的任意西班牙语食材清单。无需 API 密钥或账户。

法语版本


安装

一键安装

Install in Cursor Install in VS Code

Claude Code

claude mcp add pequerecetas -- npx -y mcp-pequerecetas

Claude Desktop、Cursor 以及任何使用标准配置格式的客户端

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

需要 Node 24 或更高版本,无需设置环境变量。

使用 Docker
{
  "mcpServers": {
    "pequerecetas": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-pequerecetas:1.1.0"]
    }
  }
}

-i 会保持标准输入开启,协议通过标准输入传输;省略 -t 是因为 TTY 会改写数据流。容器需要能够通过 HTTPS 访问 www.pequerecetas.com,除此之外不需要任何东西:无需卷、端口或凭据。

打包版本,无需 npm

从最新版本下载 mcp-pequerecetas-1.1.0.mcpb 并打开。支持 MCP bundle 的客户端会自行安装,无需 npm,也无需编辑配置文件。bundle 包含其依赖项,因此安装时不会下载任何内容。

你可以这样提问

  • “给我找一道西班牙海鲜饭食谱。”
  • “把这道食谱按 8 人份读给我听。”
  • “这个网站上有什么可以用空气炸锅做的菜?”
  • “给我看看它归类在 6 个月宝宝名下的泥糊。”
  • “把这份西班牙语食材清单的用量扩大到 3 倍。”

Pequerecetas 使用西班牙语撰写,其搜索会匹配页面所用的词语,因此需要用西班牙语查找食谱。常规流程是从搜索或分类体系找到食谱:结果行包含一个 id,而 get_recipe 接收该 id。

工具

工具功能说明
get_recipe读取食谱板块中的一页,并按请求重新计算用量。
search_recipes按菜品或食材查找食谱。
list_facets列出各分类体系提供的值。
browse_recipes逐页读取一个分类体系。
scale_ingredients重新计算任意西班牙语食材清单的用量,无需请求网站。
get_recipe

读取食谱板块中的一页;如果指定了份数,则重新计算食材用量。

参数类型必填功能说明
idstring,1 至 200 个字符是食谱地址中的 slug,与列表项中的内容一致。
servingsinteger,1 至 1000否将用量重新计算为指定份数。

返回内容: kind,其值为 recipe 或 collection。网站会在此类地址发布这两种内容,并以相同方式介绍它们,因此可通过此字段区分:合集是收录其他食谱的文章,返回的字段为 headings 和 recipes(即它所指向的列表项),而非食谱字段。

食谱包含 source_shape:如果网站为搜索引擎发布的结构化区块中包含食材,则值为 structured;如果食材是从页面正文中读取的,则值为 article,而该网站的大多数食谱都采用这种方式。接下来是 title、url、description、published_at、modified_at、prep_minutes、cook_minutes、total_minutes、categories、cuisines、keywords、author、author_url、rating、nutrition 和 images;若页面没有说明相应内容,则值为 null 或空值。yield 说明食谱原本适用的份数以及重新计算后的份数;如果页面未说明份数,则返回的 factor 为 1,并附注说明原因。ingredients 中的每一项都包含 scaling,其值为 scaled、rounded 或 unscaled;还包含 is_equipment,用于标记该项是否为工具,而非食材。

search_recipes

按菜品或食材搜索食谱。

参数类型必填功能说明
querystring,1 至 120 个字符是西班牙语菜品或食材名称。
limitinteger,1 至 60否返回的列表项数量。

返回内容: 包含 id(可供 get_recipe 使用)、title、url 和 image_url 的列表项。此外还包含已返回列表项的 result_count,以及始终为 null 的 total_available:网站不会发布搜索匹配结果的总数。网站的搜索结果只有一页,再请求第二页时会再次返回第一页,因此这些就是该查询能返回的全部列表项。其中一些列表项是收录食谱的文章,get_recipe 会将其标记为 collection。

list_facets

列出网站浏览食谱所用的分类值,这些值读取自各分类发布的站点地图。

参数类型必填作用
facetstring,至少 1 个字符否一个分类。不填时返回全部八个。

这些分类为 dieta、edad、ingrediente、ocasion、recetas-de、tecnica、tipo-de-cocina 和 tipo-plato:饮食类型、食用者的年龄、主要食材、场合、一天中的时段、厨具、菜系和菜肴种类。

返回内容: facets,其中每项包含 name、value_count 和 values,而 value 是 browse_recipes 所用的 slug。各值按网站发布的顺序排列。读取全部八个分类,每个分类需要一次请求。无法读取的分类会列在 notes 中,并从 facets 中省略,这样缺少一个分类的列表就不会被误认为网站只有七个分类。

browse_recipes

读取某个分类中食谱的一页。

参数类型必填作用
facetstring,至少 1 个字符是要浏览的分类。
valuestring,1 到 120 个字符是来自 list_facets 的 slug,例如 thermomix。
pageinteger,1 到 200否要读取的页码,默认为第一页。

返回内容: 返回与 search_recipes 相同结构的行,其中 page_served 表示网站实际提供的页码,has_more 表示网站自身的分页是否还有下一页;total_available 始终为 null,因为网站不会在这些页面上显示总数。网站使用自己的 slug,因此手动构造的 slug 会指向网站没有的页面,并返回 not_found。这些分类不能组合:网站不支持同时查询两个分类。

scale_ingredients

按比例调整一组西班牙语食材条目。不访问网站。

参数类型必填作用
ingredients由 1 到 200 个字符串组成的数组是要调整的条目,按原文填写。
factor大于 0 且不超过 1000 的数字二选一数量的乘数。
from_servings1 到 1000 的整数二选一这份清单适用于多少人。
to_servings1 到 1000 的整数二选一应适用于多少人。

请提供 factor,或同时提供 from_servings 和 to_servings。不能同时指定这两种方式,因为它们可能要求不同的结果。

返回内容: 每一行都包含 text(调整后的文本)、original(输入的原文)、amount、amount_max、unit 和 scaling,后者说明结果的准确性:计算结果恰好吻合时为 scaled;为便于厨房计量而调整数值时为 rounded;该行没有数量时为 unscaled。is_equipment 用于标记提及工具的条目。此外还会返回 scaled_count、rounded_count 和 unscaled_count。不同单位制之间不会进行换算,像 pizca 这样的近似计量单位会保留厨师给出的份量。

配置

变量默认值范围作用
PQR_USER_AGENT未设置添加到此服务自身的 User-Agent 前面。
PQR_MIN_INTERVAL_MS30003000 至 60000两次请求之间的间隔(毫秒)。
PQR_TIMEOUT_MS200001000 至 120000单次请求允许耗时多久。
PQR_MAX_RETRIES30 至 8网站未响应时尝试请求的次数。
PQR_CACHE_TTL_MS9000000 至 86400000读取结果的缓存时长。设为 0 会关闭缓存。
PQR_CACHE_MAX_ENTRIES2001 至 5000同时缓存的读取结果数。
PQR_MAX_BODY_BYTES8000000100000 至 64000000可读取页面的最大字节数。
PQR_LOG_LEVELerrorsilent、error、info、debug输出到 stderr 的内容。

间隔下限为 3000 毫秒。低于此值会被拒绝并采用默认值;这一点会在 stderr 中说明,而不会静默处理。

错误

代码含义处理方法
not_found网站在该地址没有内容。对照 search_recipes 检查 slug。
invalid_input参数无法生成请求。消息会指出出错的参数。
rate_limited网站要求此客户端放慢请求速度。等待后重试。请求的内容仍然存在。
parse_failure页面格式无法读取。请反馈此问题;网站可能已发生变化。
network_error请求未能完成。请重试。
timeout未能在规定时间内收到响应。请重试,或调高 PQR_TIMEOUT_MS。

作为库使用

读取层单独发布,包含自己的请求节奏控制、缓存和错误术语,不附带任何协议。

import { PequerecetasClient } from "mcp-pequerecetas/client";

const client = new PequerecetasClient();
const read = await client.getRecipe("paella-de-marisco");

无需依赖其他内容即可运行;它从环境中读取配置,并将诊断信息发送到 stderr。对于希望在代码中设置配置的调用方,可从同一入口点导入 loadConfig 和 createLogger:

import { createLogger, loadConfig, PequerecetasClient } from "mcp-pequerecetas/client";

const client = new PequerecetasClient({
  config: { ...loadConfig(), minIntervalMs: 5000 },
  logger: createLogger("debug"),
});

每次读取都会返回 { data, cached },其中 cached 表示结果来自缓存,而非网站。

请求节奏与署名

一次只发送一个请求,两次请求间隔三秒;如果网站施加限制,间隔会延长。User-Agent 中包含项目名称、版本,以及可供联系的地址。

Pequerecetas 可免费阅读,并自行承担托管费用。向他人展示食谱时,请注明网站并链接到食谱来源页面。

此服务与 Pequerecetas 无关联。

隐私

不会收集任何信息。此服务只读取 www.pequerecetas.com,默认将读取内容保存在内存中 15 分钟,不会写入磁盘,并将诊断信息发送到 stderr。它不携带任何凭据,因为网站不需要凭据。请参阅 PRIVACY.md。

开发

npm install
npm run build:fixtures
npm test
npm run coverage
npm run check

测试套件读取的语料由 scripts/build-fixtures.mjs 生成,其中包含虚构食谱,因此这里不会存储任何第三方内容。实时测试套件通过 PQR_LIVE=1 运行,每个路由发送一个请求。

贡献

欢迎提交问题和拉取请求。请参阅 CONTRIBUTING.md。

许可证

MIT。请参阅 LICENSE。


mcp-pequerecetas(法语)

英语版

Pequerecetas 是一个西班牙家庭烹饪网站。它收录了数千道食谱,附有食材、步骤和照片,并根据适合的饮食类型、烹饪器具、制作场合以及食用者的年龄(从 6 个月起)对每道食谱进行分类。

此服务将对话客户端连接到该网站。你可以搜索食谱、阅读食谱并按用餐人数调整用量、列出每个分类体系公布的值、逐页浏览某个分类体系,还可以调整任何已有的西班牙语食材清单。它不需要 API 密钥或账户。

安装

一键安装

在 Cursor 中安装 在 VS Code 中安装

Claude Code

claude mcp add pequerecetas -- npx -y mcp-pequerecetas

Claude Desktop、Cursor 以及所有采用标准配置格式的客户端

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

需要 Node 24 或更高版本,且无需设置任何环境变量。

使用 Docker
{
  "mcpServers": {
    "pequerecetas": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-pequerecetas:1.1.0"]
    }
  }
}

-i 会保持 stdin 开启,协议通过它传输;不使用 -t,因为 TTY 会重写数据流。容器需要能够通过 HTTPS 出站连接到 www.pequerecetas.com,除此之外不需要任何东西:不需要卷、端口或凭据。

Bundle,无需 npm

从最新发布版本下载 mcp-pequerecetas-1.1.0.mcpb 并打开。支持 MCP bundles 的客户端会自动完成安装,无需 npm,也无需修改配置文件。bundle 包含其依赖项,因此安装时不会下载任何内容。

可以这样询问

  • “Búscame una receta de paella de marisco.”
  • “请把这道食谱读给我听,按 8 人份计算。”
  • “这个网站上有什么适合用空气炸锅烹饪的菜?”
  • “给我看看它归类在 6 个月以下的泥糊食物。”
  • “把这份西班牙语食材清单的用量乘以 3。”

Pequerecetas 使用西班牙语编写,其搜索会比对页面中的词语,因此需要用西班牙语查找食谱。通常的流程是从搜索或分类体系找到食谱:每条结果都带有一个 id,而 get_recipe 接受这个 id。

工具

工具功能
get_recipe阅读食谱版块中的页面,并按需调整用量。
search_recipes按菜品或食材查找食谱。
list_facets列出每个分类体系公布的值。
browse_recipes逐页浏览某个分类体系。
scale_ingredients调整西班牙语食材清单的用量,无需发起请求。
get_recipe

读取食谱栏目中的页面;如果提供了份数,则按比例调整食材用量。

参数类型必填作用
id字符串,1 至 200 个字符是食谱 URL 中的 slug。
servings整数,1 至 1000否将用量按此份数进行调整。

返回: kind,值为 recipe 或 collection。该网站会在这类地址发布这两种页面,且对它们的描述方式相同,因此由此区分:合集是一篇汇集其他食谱的文章,返回 headings 和 recipes(即它所指向的条目),而不是食谱字段。

食谱包含 source_shape:当页面发布给搜索引擎的区块包含食材时,值为 structured;当食材从页面正文中读取时,值为 article,该网站的大多数食谱都将食材放在正文中。其余字段依次为 title、url、description、published_at、modified_at、prep_minutes、cook_minutes、total_minutes、categories、cuisines、keywords、author、author_url、rating、nutrition 和 images;页面未说明的字段为 null 或空值。yield 表示食谱原本适用的份数以及调整后的份数;如果页面未说明份数,则返回的 factor 为 1,并附带说明这一点的备注。每条 ingredients 都包含 scaling,值为 scaled、rounded 或 unscaled,以及 is_equipment,用于标记该条目指的是器具而非可食用物品。

search_recipes

按菜肴或食材搜索食谱。

参数类型必填作用
query字符串,1 至 120 个字符是用西班牙语输入菜肴或食材。
limit整数,1 至 60否要返回的条目数。

返回: 条目包含 id(可传给 get_recipe)、title、url 和 image_url。此外还有 result_count(已返回的条目数)和 total_available,后者始终为 null:该网站不会公布搜索结果总数。该网站的搜索仅提供单页,且对第二页请求会原样返回第一页,因此这些就是它针对该查询提供的全部条目。有些条目是汇集多个食谱的文章,get_recipe 会将其作为 collection 返回。

list_facets

列出该网站浏览食谱时使用的值,这些值从每个分类体系发布的站点地图中读取。

参数类型必填作用
facet字符串,至少 1 个字符否一个分类体系;未提供时返回全部八个。

分类体系包括 dieta、edad、ingrediente、ocasion、recetas-de、tecnica、tipo-de-cocina 和 tipo-plato:饮食方式、用餐者的年龄、主要食材、场合、一天中的时段、器具、菜系和菜肴类型。

返回: facets,每项包含 name、value_count 和 values;其中 value 是 browse_recipes 使用的 slug。值的顺序与网站发布时一致。读取八个分类体系需要每个分类体系各发起一次请求。无法读取的分类体系会列在 notes 中,并从 facets 中省略,以免缺少一个分类体系的列表被误认为是只有七个分类体系的网站。

browse_recipes

读取某个分类体系中的食谱页面。

参数类型必需作用
facet字符串,至少 1 个字符是要浏览的分类体系。
value字符串,1 至 120 个字符是来自 list_facets 的 slug,例如 thermomix。
page整数,1 至 200否要读取的页面,默认为第一页。

返回: 返回 search_recipes 所提供格式的行,其中 page_served 表示网站实际提供的页面,has_more 表示其分页中是否还有下一页,而 total_available 始终为 null,因为网站不会在这些页面上显示总数。网站会自行生成 slug,因此手动构造的 slug 会指向网站没有收录的页面,并返回 not_found。各分类体系之间无法交叉查询:网站不提供同时查询两个分类体系的方法。

scale_ingredients

按比例调整西班牙语食材行的用量。此工具不会连接任何网站。

参数类型必需作用
ingredients由 1 至 200 个字符串组成的数组是要调整用量的行。
factor数字,大于 0 且不超过 1000二选一用来乘以用量的数值。
from_servings整数,1 至 1000二选一原食谱的份数。
to_servings整数,1 至 1000二选一目标份数。

提供 factor,或同时提供 from_servings 和 to_servings。同时指定这两种方式会被拒绝,因为它们可能要求不同的结果。

返回: 每一行都包含当前文本 text、原始输入 original、amount、amount_max、unit,以及体现结果准确性的 scaling:算术结果精确时为 scaled,为便于厨房计量而调整数值时为 rounded,该行不包含用量时为 unscaled。is_equipment 标记名称为器具的行。此外还会返回 scaled_count、rounded_count 和 unscaled_count。不会在不同计量单位体系之间转换,而像 pizca 这样的近似计量单位会保留厨师给出的量。

配置

变量默认值范围作用
PQR_USER_AGENT未设置添加到服务器的 User-Agent 前缀。
PQR_MIN_INTERVAL_MS30003000 至 60000两次请求之间的间隔(毫秒)。
PQR_TIMEOUT_MS200001000 至 120000请求的最长持续时间。
PQR_MAX_RETRIES30 至 8请求无响应时的重试次数。
PQR_CACHE_TTL_MS9000000 至 86400000读取结果的保留时长。设为零会关闭缓存。
PQR_CACHE_MAX_ENTRIES2001 至 5000同时保留的读取结果数量。
PQR_MAX_BODY_BYTES8000000100000 至 64000000可读取的最大页面大小,单位为字节。
PQR_LOG_LEVELerrorsilent、error、info、debug输出到 stderr 的内容。

间隔下限为 3000 毫秒。低于此值的设置会被拒绝并采用默认值;这一情况会在 stderr 中说明,而不会静默处理。

错误

代码含义后续操作
not_found网站上没有这个地址对应的内容。使用 search_recipes 检查 slug。
invalid_input参数无法生成请求。消息会指出相关参数。
rate_limited网站要求降低请求频率。等待后重试。请求的内容仍然存在。
parse_failure页面以无法读取的形式返回。请报告此问题;网站可能已发生变化。
network_error请求未能完成。重试。
timeout未能及时收到响应。重试,或增大 PQR_TIMEOUT_MS。

作为库使用

读取层单独发布,包含请求间隔、缓存和错误术语,不绑定任何协议。

import { PequerecetasClient } from "mcp-pequerecetas/client";

const client = new PequerecetasClient();
const read = await client.getRecipe("paella-de-marisco");

无需配置即可构建;它会从环境变量读取设置,并将诊断信息输出到 stderr。偏好在代码中 设置这些值的用户,可以从同一入口点使用 loadConfig 和 createLogger:

import { createLogger, loadConfig, PequerecetasClient } from "mcp-pequerecetas/client";

const client = new PequerecetasClient({
  config: { ...loadConfig(), minIntervalMs: 5000 },
  logger: createLogger("debug"),
});

每次读取都会返回 { data, cached },其中 cached 表示响应来自缓存,而非网站。

请求频率与署名

一次只发出一个请求,每次请求间隔三秒;网站要求降低请求频率时,间隔会相应延长。User-Agent 中包含项目名称、版本和联系地址。

Pequerecetas 免费提供阅读内容,并自行承担托管费用。向他人展示食谱时,请注明网站并链接到食谱来源页面。

此服务与 Pequerecetas 无关联。

隐私

不会收集任何信息。服务仅读取 www.pequerecetas.com,不会访问其他主机;默认将读取内容保存在内存中十五分钟,不写入磁盘,并将诊断信息输出到 stderr。服务不携带任何标识符,因为网站不要求提供标识符。请参阅 PRIVACY.md。

开发

npm install
npm run build:fixtures
npm test
npm run coverage
npm run check

测试套件读取的数据集由 scripts/build-fixtures.mjs 编写,包含虚构的食谱,因此这里不存储任何第三方内容。实时测试套件在 PQR_LIVE=1 时运行,每条路由发送一个请求。

贡献

欢迎提交 issue 和 pull request。请参阅 CONTRIBUTING.md。

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。