SuperAPI AI 工具集

mcp-bbc-goodfood

mcp-bbc-goodfood 是一个面向 BBC Good Food 食谱网站的 MCP 服务器,将聊天客户端与该站点连接起来。它需要 Node 24 或更高版本,无需 API 密钥和账号。用户可以通过它读取食谱搜索可用筛选项及其取值,按饮食、菜系、餐类、难度等维度检索食谱,读取单份食谱并将原料用量按用餐人数重新换算,并在公制与美制单位之间切换。常见流程为先调用 list_filters,再 search_recipes,最后用条目携带的路径调用 get_recipe。部分食谱属于订阅内容,返回时标记 premium 且不含原料和步骤。该项目为非官方项目,与 BBC Good Food 无关联,采用 MIT 许可。

访问官网

工具介绍

mcp-bbc-goodfood 是一个面向 BBC Good Food 食谱网站的 MCP(Model Context Protocol)服务器,用于把聊天客户端连接到该站点,以便检索和读取食谱。BBC Good Food 是英国烹饪网站,也是同名杂志的线上平台,其食谱由自家厨师撰写和测试,每条包含原料、做法、准备与烹饪时间、难度、适合的饮食类型、每份营养信息以及读者评分。站点按自身维度收窄食谱:饮食、菜系、餐类、难度。部分内容仅限订阅用户。

用途方面,该服务器主要服务于在对话客户端中查询 BBC Good Food 食谱的场景,包括按条件搜索、读取食谱、换算原料用量和切换单位。它无需 API 密钥,也不需要账号。

主要能力包括:读取站点用于收窄搜索的各个维度(轴)及其取值;沿这些维度搜索食谱;读取单条食谱,并把原料按用餐人数重新换算;在公制与美制单位之间切换。典型提问如“找一个 40 分钟以内的素食咖喱”“可以按哪些饮食筛选”“把这份六人份食谱按美制杯读出来”“哪些评分在四星及以上”“把这份杂志原料表按 1.5 倍换算”。常规路径为 list_filters、search_recipes,再用条目携带的路径调用 get_recipe。搜索会同时应用站点自身的维度以及服务器对读取到的行施加的限制。

使用方式方面,支持一键安装在 Claude Desktop、Cursor 以及任何使用标准配置格式的客户端,要求 Node 24 或更高版本,无需设置环境变量。命令行参数 -i 保持标准输入打开(协议传输通道),不添加 -t(TTY 会重写流)。容器需要到 www.bbcgoodfood.com 的出站 HTTPS,不需要卷、端口或凭据。也提供不含 npm 的 Bundle 方式:从最新发布中下载 mcp-bbc-goodfood-1.1.0.mcpb 并打开,支持 MCP bundle 的客户端会自行安装,无需 npm 和配置文件,bundle 自带依赖,安装时不下载任何内容。也可以作为库单独使用:读取站点的层已单独发布,带有自身的节奏控制、缓存和错误,且不附带协议;listFilters、searchRecipes 和 getRecipe 各自返回 { data, cached },并抛出携带六种错误码之一的错误。

各工具的返回内容:list_filters 返回 filters,每个轴一个条目,含 name、label(站点自身措辞)、argument(search_recipes 对应的参数名)以及 options(每个值的 value、label 和 count;站点未公布的 count 为 null),option_count 表示此处列出的选项数量,少于站点实际接受的数量。search_recipes 返回带有 id、title、url、image_url 和 rating 的行,以及 result_count、rows_seen 和 total_available;标记 total_is_ceiling 的总数表示一次搜索最多可提供的行数,因此是下限而非计数;restrictions_lifted 列出收窄导致搜索失败时被搁置的内容,premium_dropped 计数被移除的订阅行。get_recipe 返回 title、url、premium、yield_text、yield_count、prep_minutes、cook_minutes、total_minutes、difficulty、diets、author、rating、rating_count、description、ingredients、steps、nutrition(nutrition_per 指明所描述的份量)和 unit_system;页面未声明的数值为 null;订阅食谱返回 premium 为 true,且不含原料和步骤。scale_ingredients 对任意原料行列表应用同样的换算,无需请求站点,可传入 factor 或 from_servings 与 to_servings 对。

换算规则:数量会以合适的单位表示,因此换算后一行可能使用与原食谱不同的单位,例如 200 g 乘二十为 4 kg,2 g 除以十为 200 mg。原料可分程度取决于其性质:一条面包可切二、三或四份,鸡蛋不可分。落在两者之间的数量会取整,换算后的食谱会略偏离原比例,该行会携带 rounded 及其说明。这些数字是服务器自己的运算结果,展示时应说明是重新计算所得;页面未注明份数的食谱无法换算到用餐人数,返回结果会说明这一点。

限制与配置:所有变量均可选,在客户端配置的 env 块中设置;超出范围的值回退到默认值,原因写入 stderr。每次失败携带六种错误码之一、一条消息,并在有帮助时给出提示。请求一次一个发出,间隔至少一秒半,且无论配置如何都保持一秒的下限;User-Agent 始终以项目标识和一个可联系到人的地址结尾。每个结果都携带其读取页面的地址,source 标明站点。服务器不收集用户信息,不向作者发送内容,在本机运行,仅联系 www.bbcgoodfood.com,运行时将答案保存在内存中,不写入磁盘。测试针对生成的夹具运行,不产生网络请求;实时测试套件 npm run test:live 每条路由发一次请求,每晚针对站点运行。该项目为非官方项目,与 BBC Good Food 无隶属关系,采用 MIT 许可,食谱归 BBC Good Food 及其作者所有。