mcp-bbc-goodfood
mcp-bbc-goodfood
一个在 BBC Good Food 上读取食谱的 MCP 服务器。 只读,无需 API 密钥,无需账户。
为什么存在
BBC Good Food 接受搜索筛选器上的任何值,并对它不认识的值以总数零作答。请求 glutenfree 而不是 gluten-free,网站会说没有匹配项,其确信程度与它说 48 个食谱匹配正确拼写时相同。猜测拼写的模型会得到一个自信的缺失,而不是一个拒绝。
这个服务器发布词汇表,以便问题可以被正确地提出。
Related MCP server: mcp-spoonacular
工具
list_filters
列出食谱搜索可以沿其收窄的轴,以及每个轴所取的值和携带这些值的食谱数量。
参数 | 类型 | 含义 |
| 字符串,可选 | 在此搜索内测量计数。省略它以获取网站的完整列表。 |
网站对搜索返回的行进行筛选器计数,因此两者回答不同的问题。在 chicken 内,diet 报告 gluten-free 48。在整个列表中,它报告 gluten-free 2810。两者互不可比,答案会说明它测量的是哪个范围。
{
"query": "chicken",
"filters": [
{
"name": "diet",
"label": "Diets",
"options": [{ "value": "gluten-free", "label": "Gluten-free", "count": 48 }],
"option_count": 10
}
],
"filter_count": 9,
"total_available": 363,
"total_is_ceiling": false,
"rows_seen": 30,
"matched_rows": 30,
"source": "BBC Good Food",
"notes": ["…"]
}答案拒绝夸大什么
发布的值是一个候选清单。 网站显示一个轴上的十个最频繁值,并接受它从未列出的其他值:cuisine=mexican 将搜索收窄到 306 个食谱,却没有出现在十个之中。答案说该列表是一个摘录,而不是称其为接受值的集合,因为这样称呼的服务器会拒绝有效的值。
总数可能是一个下限。 网站一次搜索最多提供 10 000 行,然后就此打住。恰好落在这个数字上的总数是被截断的,因此它陈述的是一个下限而不是计数,total_is_ceiling 说明了这一点。
网站未发布任何内容的计数是 null,绝不是 0。 在从零开始的尺度上,两者将无法区分。
网站对没有内容的词条用完全相同的行来回答。 搜索 foobar 返回七个食谱——其中包括一个大黄汽水和一块烙饼条——按片段匹配,没有任何标记表明答案是未命中。因此每个答案都报告 rows_seen 和 matched_rows:网站提供了多少行,以及其中有多少行带有搜索词。当第二个为零而第一个不为零时,注释说明该计数描述的是网站提供的内容,而不是匹配的内容。
两个计数而不是一个裁决。合法的搜索可能不出现在任何标题中,读者看到 30 中的 2 比一个替他们判断的标记判断得更好。
安装
npx mcp-bbc-goodfoodClaude Code
claude mcp add bbc-goodfood -- npx -y mcp-bbc-goodfood任何 MCP 客户端
{
"mcpServers": {
"bbc-goodfood": {
"command": "npx",
"args": ["-y", "mcp-bbc-goodfood"]
}
}
}容器
docker build -t mcp-bbc-goodfood .
docker run -i --rm mcp-bbc-goodfood容器需要能够访问 www.bbcgoodfood.com,仅此而已。它不需要任何凭据,因为没有任何凭据可取。
设置
每个设置都是一个环境变量,并且都不是必需的。超出范围的值会被拒绝,并在 stderr 上输出一行,默认值保持不变:无法生效的设置会说明这一点,而不是被静默地限制。
变量 | 默认值 | 范围 |
| — | 您自己的标识符。此项目的标识符会保持附加,以便网站可以联系到人。 |
| 1500 | 1000 到 60000 |
| 20000 | 1000 到 120000 |
| 3 | 0 到 8 |
| 900000 | 0 到 86400000,0 关闭存储 |
| 200 | 1 到 5000 |
|
|
|
节奏下限不能从外部降低。该网站可免费阅读,且未发布爬取延迟,这是要小心的理由,而不是可以加快速度的许可。
作为库
读取层单独发布,带有其节奏、存储和错误词汇表,不附加任何协议:
import { GoodFoodClient } from "mcp-bbc-goodfood/client";错误
六个代码,仅此而已。调用者根据打开消息的代码进行分支。
代码 | 含义 |
| 该地址下网站没有任何内容 |
| 参数无法产生请求 |
| 网站要求此客户端放慢速度。它没有说明是否有任何内容匹配 |
| 答案以该服务器无法读取的形式到达 |
| 请求无法完成 |
| 在截止时间内没有答案到达 |
署名
食谱、标题和计数属于 BBC Good Food。每个答案都带有来源,向读者展示的列表应注明网站并链接到页面。
贡献
参见 CONTRIBUTING.md。测试优先,覆盖率下限为 100%,所有内容遵循的规则是服务器绝不说数据未携带的任何内容。
根据 MIT 许可。
mcp-bbc-goodfood (français)
Un serveur MCP qui lit les recettes de BBC Good Food. En lecture seule, sans clé d'API et sans compte.
Pourquoi il existe
BBC Good Food accepte n'importe quelle valeur sur une facette de recherche, et
répond à une valeur qu'il ne connaît pas par un total de zéro. Demandez
glutenfree au lieu de gluten-free et le site répond que rien ne correspond,
avec l'assurance qu'il met à dire que 48 recettes correspondent à la bonne
orthographe. Un modèle qui devine une orthographe reçoit une absence confiante
plutôt qu'un refus.
Ce serveur publie le vocabulaire, pour que la question soit posable.
L'outil
list_filters
Liste les axes le long desquels une recherche de recettes peut être restreinte, avec les valeurs que chacun prend et le nombre de recettes qui les portent.
Argument | Type | Sens |
| chaîne, optionnel | Mesure les comptes à l'intérieur de cette recherche. Sans lui, ils portent sur le listing entier du site. |
Le site compte ses facettes sur les lignes qu'une recherche rend, donc les deux
répondent à des questions différentes. Dans chicken, diet annonce
gluten-free 48. Sur le listing entier, il annonce gluten-free 2810. Aucun des
deux n'est comparable à l'autre, et la réponse dit quelle portée elle a mesurée.
Ce que les réponses refusent d'affirmer
Les valeurs publiées sont un extrait. Le site montre les dix valeurs les plus
fréquentes d'un axe et en accepte d'autres qu'il ne liste jamais :
cuisine=mexican restreint une recherche à 306 recettes sans figurer parmi les
dix. La réponse dit que la liste est un extrait au lieu de l'appeler l'ensemble
des valeurs acceptées, parce qu'un serveur qui l'appellerait ainsi refuserait des
valeurs qui marchent.
Un total peut être un plancher. Le site sert au plus 10 000 lignes pour une
recherche et s'arrête là. Un total qui tombe exactement sur ce nombre a été
coupé, donc il énonce un plancher plutôt qu'un compte, et total_is_ceiling le
dit.
Un compte que le site n'a pas publié vaut null, jamais 0. Sur une échelle
qui commence à zéro, les deux seraient indiscernables.
Le site répond quand même à un terme dont il n'a rien. Chercher foobar rend
sept recettes, dont un cocktail à la rhubarbe et une barre de flapjack,
rapprochées par fragments, sans que rien ne marque la réponse comme un échec.
Chaque réponse rend donc rows_seen et matched_rows : combien de lignes le
site a servies, et combien d'entre elles portent un mot de la recherche. Quand la
seconde vaut zéro et la première non, une note dit que le compte décrit ce que le
site a proposé plutôt que ce qui correspond.
Deux comptes plutôt qu'un verdict. Une recherche légitime peut n'apparaître dans
aucun titre, et un lecteur qui voit 2 sur 30 juge mieux qu'un drapeau qui
jugerait pour lui.
Installation
npx mcp-bbc-goodfoodClaude Code
claude mcp add bbc-goodfood -- npx -y mcp-bbc-goodfoodN'importe quel client MCP
{
"mcpServers": {
"bbc-goodfood": {
"command": "npx",
"args": ["-y", "mcp-bbc-goodfood"]
}
}
}Conteneur
docker build -t mcp-bbc-goodfood .
docker run -i --rm mcp-bbc-goodfoodLe conteneur doit joindre www.bbcgoodfood.com et rien d'autre. Il ne prend
aucun identifiant, puisqu'il n'y en a aucun à prendre.
Réglages
Chaque réglage est une variable d'environnement, et aucune n'est obligatoire. Une valeur hors bornes est refusée par une ligne sur stderr et le défaut tient : un réglage qui ne peut pas prendre effet le dit, plutôt que d'être borné en silence.
Variable | Défaut | Bornes |
| — | Votre identifiant. Celui du projet reste ajouté, pour que le site puisse joindre une personne. |
| 1500 | 1000 à 60000 |
| 20000 | 1000 à 120000 |
| 3 | 0 à 8 |
| 900000 | 0 à 86400000, 0 éteint le stockage |
| 200 | 1 à 5000 |
|
|
|
Le plancher du rythme ne peut pas être abaissé de l'extérieur. Le site est gratuit à lire et ne publie aucun délai d'exploration, ce qui est une raison d'être prudent plutôt qu'une licence d'aller vite.
Comme bibliothèque
La couche de lecture est publiée seule, avec son rythme, son stockage et sa taxonomie d'erreurs, sans protocole attaché :
import { GoodFoodClient } from "mcp-bbc-goodfood/client";Erreurs
Six codes et pas un de plus. Un appelant branche sur le code qui ouvre le message.
Code | 含义 |
| 该地址下网站没有任何内容 |
| 参数无法生成请求 |
| 网站要求放慢速度。这并不能说明匹配情况 |
| 响应以该服务器无法读取的形式到达 |
| 请求未能完成 |
| 在时限内没有收到任何响应 |
署名
食谱、标题和账户归 BBC Good Food 所有。每个响应都带有来源,向读者展示的列表必须注明网站并链接到页面。
贡献
参见 CONTRIBUTING.md。测试优先,覆盖率下限为 100%,以及统辖一切的规则:服务器绝不会说出数据未承载的内容。
根据 MIT 许可发布。
Maintenance
Tools
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables querying food nutritional information, discovering recipes by ingredients or diet type, getting ingredient substitutions, and receiving personalized food recommendations based on mood and season.
- AlicenseNot gradedqualityCmaintenanceProvides access to the Spoonacular food API for recipes, nutrition, ingredients, and meal plans.MIT
- FlicenseNot gradedqualityDmaintenanceEnables browsing recipes, searching by category, and viewing detailed recipe information from the Gousto cookbook API via natural language.
- AlicenseNot gradedqualityCmaintenanceEnables querying Open Food Facts product database by barcode, full-text search, category, brand, or country.12MIT
Related MCP Connectors
Spoonacular food API: recipes, nutrition, ingredients, meal plans. Free 150/day.
Recipes MCP — wraps TheMealDB API (free tier, no auth)
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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-bbc-goodfood'
If you have feedback or need assistance with the MCP directory API, please join our Discord server