这是为 Open Food Facts 项目实现的一个 Model Context Protocol (MCP) 服务器。它使用官方的 Model Context Protocol 规范,向 AI 驱动的开发工具提供有关食品产品的上下文信息。
Model Context Protocol (MCP) 是一种标准化的方式,用于 AI 驱动的开发工具与代码仓库和其他数据源进行通信。它通过提供结构化的访问方式,使 AI 工具能够更好地理解代码库:
此 MCP 服务器实现了以下功能:
MCP 服务器支持两种操作模式:
默认模式,专注于为普通用户提供食品产品信息:
增强模式,带有额外的工具供 Open Food Facts 贡献者使用:
cd mcp-server
npm install
npm run build
标准模式(默认):
npm start
# 或
node dist/cli.js
开发者模式:
npm start -- --developer
# 或
node dist/cli.js --developer
安装 VS Code 的 "Model Context Protocol" 扩展
创建或更新 .vscode/mcp.json,添加适当的配置:
对于标准用户:
{
"servers": {
"openfoodfacts-standard": {
"command": "node",
"args": [
"${workspaceFolder}/mcp-server/dist/cli.js"
],
"env": {
"TRANSPORT": "stdio"
},
"description": "仅包含食品产品工具的标准模式"
}
},
"defaultServer": "openfoodfacts-standard"
}
对于开发者:
{
"servers": {
"openfoodfacts-developer": {
"command": "node",
"args": [
"${workspaceFolder}/mcp-server/dist/cli.js",
"--developer"
],
"env": {
"TRANSPORT": "stdio"
},
"description": "包含所有工具的开发者模式,包括 GitHub 和代码分析"
}
},
"defaultServer": "openfoodfacts-developer"
}
以下是您可以使用任何 AI 助手触发特定 MCP 工具的示例提示。这些展示了自然地表述请求以访问每个工具功能的方法。
您可以将各种 AI 助手连接到您的 Open Food Facts MCP 服务器:
.vscode/mcp.jsonPORT=28375 npm start
# 对于开发者模式:
PORT=28375 npm start -- --developer
http://localhost:28375/sse 的 MCP 服务器MCP 服务器根据活动模式提供不同的资源和提示集:
服务器提供了预配置的提示以完成常见任务:
标准模式:
开发者模式(附加):
为了最大限度地发挥 MCP 工具的效果:
查找产品:
searchProducts 按名称、品牌或类别查找产品getProductByBarcode 当您有一个具体的产品条形码时分析和比较:
analyzeProduct 获取营养见解和健康分析compareProducts 直接比较两个产品suggestRecipes 根据成分获取烹饪创意理解代码库:
analyzeRepository 把握整体结构explainCode 获取详细的代码解释问题管理:
analyzeGitHubIssue 理解特定问题analyzeGitHubIssuesByLabel 识别问题之间的模式matchIssues 查找与问题相关的议题贡献代码:
generatePR 创建 PR 模板generateTests 添加测试覆盖gitHelper 获取 git 工作流指导营养分析:
用户:"Nutella 是否健康?"
MCP 流程:
1. 使用 searchProducts 查找 Nutella
2. 使用找到的条形码调用 getProductByBarcode
3. 使用 analyzeProduct 进行营养评估
产品比较:
用户:"Nutella 和 Nocciolata 哪个更健康?"
MCP 流程:
1. 使用 searchProducts 查找每个产品
2. 使用找到的条形码比较产品
3. 结构化的营养值比较
食谱创意:
用户:"我可以用希腊酸奶做什么?"
MCP 流程:
1. 使用 searchProducts 查找希腊酸奶
2. 使用该产品建议食谱
理解代码库:
用户:"产品模式是如何组织的?"
MCP 流程:
1. 使用 explainCode 关注模式
2. 使用 analyzeRepository 查找相关组件
解决问题:
用户:"帮我调试这个与产品验证相关的 Perl 错误"
MCP 流程:
1. 使用 matchIssues 查找类似的问题
2. 使用 explainCode 理解验证逻辑
贡献:
用户:"我想在产品模式中添加一个新的字段"
MCP 流程:
1. 使用 explainCode 检查模式结构
2. 使用 generatePR 创建 PR 模板
3. 为新字段生成测试
MCP 服务器的结构如下:
src/cli.ts:命令行接口,解析开发者模式标志src/server.ts:核心服务器实现,具有模式特定配置src/tools/:包含所有工具实现
src/tools/index.ts:中央注册表,根据模式有条件地注册工具src/tools/product-search.ts:产品搜索和条形码查找工具src/tools/ai-analysis-tool.ts:AI 驱动的产品分析工具src/tools/github-issues-tool.ts:GitHub 问题分析工具(开发者模式)src/resources/:资源处理器和注册表,带模式过滤src/prompts/:提示定义和处理器,带模式过滤src/sampling/:与 AI 模型交互的服务src/transport/:传输层实现(stdio, HTTP/SSE)服务器支持以下命令行参数:
--developer:启用带有额外工具和资源的开发者模式--transport=<类型>:设置传输类型(stdio, http)--port=<数字>:设置 HTTP 端口(HTTP/SSE 传输)--help:显示帮助信息连接问题:
标准模式中缺少工具:
--developer 标志GitHub API 速率限制:
服务器输出日志以帮助诊断问题:
欢迎贡献!这里有一些可以改进 MCP 服务器的方法:
src/ 目录中进行更改npm run build 构建本项目在 GNU Affero General Public License 下发布,与 Open Food Facts 项目的许可证相同。