Skip to main content
Glama
smeet666

mcp-bbc-goodfood

mcp-bbc-goodfood

CI npm licence MIT

一个在 BBC Good Food 上读取食谱的 MCP 服务器。 只读,无需 API 密钥,无需账户。

Version française


为什么存在

BBC Good Food 接受搜索筛选器上的任何值,并对它不认识的值以总数零作答。请求 glutenfree 而不是 gluten-free,网站会说没有匹配项,其确信程度与它说 48 个食谱匹配正确拼写时相同。猜测拼写的模型会得到一个自信的缺失,而不是一个拒绝。

这个服务器发布词汇表,以便问题可以被正确地提出。

Related MCP server: mcp-spoonacular

工具

list_filters

列出食谱搜索可以沿其收窄的轴,以及每个轴所取的值和携带这些值的食谱数量。

参数

类型

含义

query

字符串,可选

在此搜索内测量计数。省略它以获取网站的完整列表。

网站对搜索返回的行进行筛选器计数,因此两者回答不同的问题。在 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_seenmatched_rows:网站提供了多少行,以及其中有多少行带有搜索词。当第二个为零而第一个不为零时,注释说明该计数描述的是网站提供的内容,而不是匹配的内容。

两个计数而不是一个裁决。合法的搜索可能不出现在任何标题中,读者看到 30 中的 2 比一个替他们判断的标记判断得更好。

安装

npx mcp-bbc-goodfood

Claude 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 上输出一行,默认值保持不变:无法生效的设置会说明这一点,而不是被静默地限制。

变量

默认值

范围

BGF_USER_AGENT

您自己的标识符。此项目的标识符会保持附加,以便网站可以联系到人。

BGF_MIN_INTERVAL_MS

1500

1000 到 60000

BGF_TIMEOUT_MS

20000

1000 到 120000

BGF_MAX_RETRIES

3

0 到 8

BGF_CACHE_TTL_MS

900000

0 到 86400000,0 关闭存储

BGF_CACHE_MAX_ENTRIES

200

1 到 5000

BGF_LOG_LEVEL

error

silenterrorinfodebug

节奏下限不能从外部降低。该网站可免费阅读,且未发布爬取延迟,这是要小心的理由,而不是可以加快速度的许可。

作为库

读取层单独发布,带有其节奏、存储和错误词汇表,不附加任何协议:

import { GoodFoodClient } from "mcp-bbc-goodfood/client";

错误

六个代码,仅此而已。调用者根据打开消息的代码进行分支。

代码

含义

not_found

该地址下网站没有任何内容

invalid_input

参数无法产生请求

rate_limited

网站要求此客户端放慢速度。它没有说明是否有任何内容匹配

parse_failure

答案以该服务器无法读取的形式到达

network_error

请求无法完成

timeout

在截止时间内没有答案到达

署名

食谱、标题和计数属于 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

query

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-goodfood

Claude Code

claude mcp add bbc-goodfood -- npx -y mcp-bbc-goodfood

N'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-goodfood

Le 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

BGF_USER_AGENT

Votre identifiant. Celui du projet reste ajouté, pour que le site puisse joindre une personne.

BGF_MIN_INTERVAL_MS

1500

1000 à 60000

BGF_TIMEOUT_MS

20000

1000 à 120000

BGF_MAX_RETRIES

3

0 à 8

BGF_CACHE_TTL_MS

900000

0 à 86400000, 0 éteint le stockage

BGF_CACHE_MAX_ENTRIES

200

1 à 5000

BGF_LOG_LEVEL

error

silent, error, info, debug

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

含义

not_found

该地址下网站没有任何内容

invalid_input

参数无法生成请求

rate_limited

网站要求放慢速度。这并不能说明匹配情况

parse_failure

响应以该服务器无法读取的形式到达

network_error

请求未能完成

timeout

在时限内没有收到任何响应

署名

食谱、标题和账户归 BBC Good Food 所有。每个响应都带有来源,向读者展示的列表必须注明网站并链接到页面。

贡献

参见 CONTRIBUTING.md。测试优先,覆盖率下限为 100%,以及统辖一切的规则:服务器绝不会说出数据未承载的内容。

根据 MIT 许可发布。

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying food nutritional information, discovering recipes by ingredients or diet type, getting ingredient substitutions, and receiving personalized food recommendations based on mood and season.
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables browsing recipes, searching by category, and viewing detailed recipe information from the Gousto cookbook API via natural language.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying Open Food Facts product database by barcode, full-text search, category, brand, or country.
    12
    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)

  • Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.

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-bbc-goodfood'

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