关于 Open Food Facts MCP Server
Open Food Facts MCP Server 将 Open Food Facts 食品数据库接入 AI 助手,提供商品搜索、条码查询、营养评分、过敏原检查和价格查询等功能。适合需要了解食品成分与营养信息的消费者和应用开发者。
主要功能
- 01按名称、品牌或类别搜索商品
- 02按条码查询商品详细信息
- 03查询 Nutri-Score 与 Eco-Score 评级
- 04检查指定过敏原与添加剂信息
- 05比较两款商品并提供 AI 分析
- 06查询 Open Prices 中的价格记录
适用场景
- 01查询某商品是否含有牛奶或麸质等过敏原
- 02比较两款饮品或零食的营养成分
- 03根据手头食材获取食谱建议
MCP 相关
该服务以 MCP 服务形式向 AI 助手提供食品查询、评分与价格工具,并附带营养指南等 MCP 资源和提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Open Food Facts MCP 服务
这是 Open Food Facts 的 Model Context Protocol(MCP)服务实现。它使 AI 助手能够访问食品产品信息,并依据官方 Model Context Protocol 规范提供营养分析、产品比较和食谱建议。
对关注食品的消费者的益处
此 MCP 服务可提供:
- 营养洞察:获取由 AI 提供支持的食品产品分析及其对健康的影响
- 明智选择:比较产品,从而做出更好的饮食选择
- 食谱创意:根据你现有的产品发现食谱
- 饮食支持:了解过敏原、添加剂和饮食适配性
可用工具
核心产品工具
- searchProducts:按名称、品牌、类别或其他关键词在 Open Food Facts 数据库中搜索产品
- getProductByBarcode:通过产品条形码(EAN、UPC 等)获取详细信息
- analyzeProduct:获取由 AI 提供支持的食品产品营养分析
- compareProducts:通过 AI 提供的洞察比较两种产品
- suggestRecipes:获取使用某种产品的 AI 食谱建议
类别与搜索工具
- searchByCategory:在特定食品类别(例如饮料、零食、乳制品、谷物)中搜索产品
- searchByBrand:查找特定品牌的所有产品
- advancedSearch:使用多个筛选条件进行高级产品搜索,包括类别、品牌、Nutri-Score、Eco-Score、NOVA 组、无过敏原选项、标签和国家/地区
- autocomplete:获取类别、品牌、标签、配料、过敏原或添加剂的自动补全建议
营养与健康工具
- getNutriScore:获取产品的 Nutri-Score 等级(A-E),快速了解其健康状况
- getEcoScore:获取产品的 Eco-Score(环境影响评级 A-E)
- getAdditivesInfo:列出产品中的所有添加剂及其 E 编号和 NOVA 加工程度
- getAllergenCheck:检查产品是否含有特定过敏原(麸质、牛奶、鸡蛋、坚果、花生、大豆、鱼类、贝类等)
- checkMultipleAllergens:一次检查产品是否含有多种过敏原中的任意一种
AI 洞察工具
- getProductAIQuestions:获取由 AI 生成、需要人工核实的产品问题
- getRandomAIQuestions:获取 Robotoff 中随机生成、需要人工核实的 AI 问题,非常适合社区贡献
- getProductInsights:获取由 AI 生成的产品洞察(检测到的标签、类别、配料问题等)
- getInsightTypes:获取 Robotoff 中可用 AI 洞察类型的摘要
价格工具
- getProductPrices:从 Open Prices 获取产品的价格历史和当前价格
- searchPrices:使用筛选条件(货币、国家/地区、日期范围)搜索价格
- getRecentPrices:获取最近添加的价格,了解有哪些价格信息可用
入门
先决条件
- Node.js(v16.x 或更高版本)
- npm 或 yarn
安装
-
克隆或下载此代码库
-
安装依赖项:
npm install
- 构建服务:
npm run build
- 启动服务:
npm start
与 AI 助手配合使用
Claude Desktop
- 启动 MCP 服务:
npm start
- 添加到 Claude Desktop 配置文件(macOS 上的
~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"openfoodfacts": {
"command": "node",
"args": ["/path/to/OpenFoodFacts-MCP/dist/index.js"],
"env": {
"TRANSPORT": "stdio"
}
}
}
}
VS Code 与 GitHub Copilot
-
为 VS Code 安装“Model Context Protocol”扩展
-
创建
.vscode/mcp.json:
{
"servers": {
"openfoodfacts": {
"command": "node",
"args": ["${workspaceFolder}/dist/cli.js"],
"env": {
"TRANSPORT": "stdio"
}
}
}
}
其他 AI 工具
此服务支持 HTTP/SSE 传输,可供基于浏览器的 AI 工具使用:
TRANSPORT=http PORT=3000 npm start
然后将你的 AI 工具连接到 http://localhost:3000/sse
对话示例
以下是请求 AI 助手使用 Open Food Facts 工具的自然表达方式:
搜索产品
- “在 Open Food Facts 数据库中搜索巧克力麦片”
- “查找含有杏仁奶的产品”
- “查找有机酸奶产品”
获取产品详情
- “获取条形码为 3017620422003 的产品信息”
- “条形码为 5000159407236 的产品含有什么成分?”
- “显示条形码为 8076809513326 的产品营养数据”
分析产品
- “能分析一下 Nutella 的营养状况吗?”
- “分析 Cheerios 麦片,告诉我它是否健康”
- “分析一下 Oreo 饼干的健康状况”
- “条形码为 3017620422003 的产品健康吗?”
比较产品
- “比较 Nutella 和 Nocciolata”
- “Coke 和 Pepsi 哪个更健康?”
- “从营养角度比较杏仁奶和豆奶”
- “比较条形码为 3017620422003 和 5000159407236 的产品”
食谱建议
- “我能用希腊酸奶做什么?”
- “推荐一些用鹰嘴豆制作的食谱”
- “给我一些藜麦食谱创意”
- “我能用产品 3017620422003 做什么食谱?”
类别和品牌搜索
- “显示饮料类别中的所有产品”
- “查找所有 Nestlé 产品”
- “搜索 Nutri-Score 为 A 的有机产品”
- “查找 Eco-Score 良好的纯素零食”
过敏原检查
- “Nutella 含有麸质吗?”
- “检查这款产品对牛奶和鸡蛋过敏者是否安全”
- “条形码 3017620422003 的产品不含花生吗?”
- “Cheerios 中有哪些过敏原?”
价格查询
- “Nutella 当前的价格是多少?”
- “显示法国近期的产品价格”
- “比较条形码 3017620422003 产品的价格”
资源和提示词
MCP 服务提供实用的资源和提示词:
资源
服务提供教育资源,帮助你了解食品数据:
- 快速帮助指南:如何使用 Open Food Facts 工具——速查指南
- Nutri-Score 指南:了解 Nutri-Score 健康评级(A-E)
- Eco-Score 指南:了解 Eco-Score 环境评级(A-E)
- 过敏原参考指南:常见食品过敏原及其隐藏之处
- 食品添加剂指南:了解 E 编号和食品添加剂
- NOVA 加工程度指南:了解食品加工等级(1-4)
提示词
预配置的提示词可帮助你快速上手:
- analyze-product:获取详细的营养分析
- compare-products:并排比较两款产品
- find-healthy-alternatives:查找某款产品的更健康替代品
- check-allergens:检查产品对你的过敏情况是否安全
- whats-for-dinner:获取使用某款产品的食谱创意
工作原理
MCP 服务在 AI 助手和 Open Food Facts 数据库之间充当桥梁:
- 你的问题:你向 AI 助手询问食品产品
- 工具检测:AI 识别出需要 Open Food Facts 数据
- MCP 请求:AI 调用相应的 MCP 工具
- 数据检索:服务从 Open Food Facts 获取数据
- AI 分析:AI 处理数据并向你作答
示例工作流
做出更健康的选择
You: "Is Nutella healthy?"
AI Assistant uses:
1. searchProducts to find Nutella
2. getProductByBarcode with the barcode
3. analyzeProduct for nutritional assessment
Response: Detailed analysis of Nutella's nutritional profile,
health scores, ingredients, and dietary considerations
比较选项
You: "Which is better for me, Nutella or almond butter?"
AI Assistant uses:
1. searchProducts for both products
2. compareProducts with both barcodes
Response: Side-by-side comparison with recommendations
based on your dietary needs
规划食谱
You: "What can I make with Greek yogurt?"
AI Assistant uses:
1. searchProducts to find Greek yogurt
2. suggestRecipes with the product
Response: Recipe suggestions that use Greek yogurt
as an ingredient
技术详情
服务架构
该服务采用模块化架构,以便于维护和扩展:
核心服务
src/index.ts:入口点src/server.ts:核心 MCP 服务实现,包含资源和提示词注册src/cli.ts:用于开发的 CLI 界面
工具(模块化设计)
src/tools/index.ts:工具注册协调器和核心产品工具src/tools/product-search.ts:产品搜索和条形码查询实用工具src/tools/category-tools.ts:类别和品牌搜索工具src/tools/nutrition-tools.ts:营养评分、过敏原检查和添加剂信息src/tools/insights-tools.ts:来自 Robotoff 的 AI 生成洞察src/tools/price-tools.ts:来自 Open Prices 的产品定价数据src/tools/types.ts:共享类型定义和接口src/tools/helpers.ts:供所有工具使用的可复用辅助函数
资源和服务
src/resources/:指南和文档的资源处理程序resource-registry.ts:资源注册系统static-resources.ts:静态资源内容(指南、参考资料)
src/sampling/:用于分析和食谱生成的 AI 模型集成sampling-service.ts:用于 AI 驱动功能的 MCP sampling 集成
基础设施
src/transport/:通信层(用于 CLI/编辑器的 stdio、用于浏览器的 HTTP)src/config/:服务配置
数据来源
所有产品数据均来自 Open Food Facts,这是一个免费的、开放的协作式全球食品产品数据库。
故障排除
服务无法启动
- 确保已安装 Node.js v16+
- 运行
npm install安装依赖项 - 检查端口 3000 是否可用(用于 HTTP 模式)
AI 无法找到工具
- 确认 MCP 服务正在运行
- 检查 AI 助手的 MCP 配置
- 确保传输类型匹配(stdio 或 HTTP)
未找到产品
- 先尝试使用
searchProducts搜索 - 确认条形码正确(8-14 位数字)
- 某些产品可能尚未收录到数据库中
响应缓慢
- 服务会从 Open Food Facts 获取实时数据
- 首次请求可能会较慢,因为需要检索数据
- 网络连接速度会影响性能
贡献
欢迎贡献!你可以通过以下方式提供帮助:
- 添加对更多食品数据库的支持
- 改进 AI 分析提示词
- 增强错误处理
- 添加用于饮食追踪的新工具
- 改进文档
关于 Open Food Facts
Open Food Facts 是一个人人参与、服务人人的食品产品数据库。这是一个协作项目,收集全球食品产品的信息,包括:
- 配料
- 营养成分
- 过敏原
- 环境影响
- 健康评分(Nutri-Score、NOVA)
了解更多信息,请访问 https://world.openfoodfacts.org/
许可证
本项目采用 GNU Affero 通用公共许可证 v3.0,与 Open Food Facts 项目保持一致。
支持
- Open Food Facts 网站:https://world.openfoodfacts.org/
- Open Food Facts GitHub:https://github.com/openfoodfacts
- Model Context Protocol:https://modelcontextprotocol.io/
用心为全球关注食品的消费者打造
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。