安全
搜索。扫描。保持安全。
一个全面的模型上下文协议(MCP)服务器,提供对FDA(食品和药物管理局)数据的访问 食物 安全信息。
🎯 此服务器提供什么
此MCP服务器提供 8工具 访问产品安全数据,帮助用户:
- 检查食品的产品召回和安全警报
- 监控食品安全问题和召回趋势
- 分析安全趋势和公司信息
- 获得全面的食品安全见解
🚀 快速开始
先决条件
- Python 3.10或更高版本
- pip或uv包管理器
安装
- 克隆或下载项目:
git clone https://github.com/surabhya/SafetySearch.git
cd SafetySearch- 安装依赖项:
# Using pip
pip install "mcp[cli]>=1.0.0" httpx>=0.24.0 pydantic>=2.0.0
# Or using uv (recommended)
uv add "mcp[cli]>=1.0.0" httpx>=0.24.0 pydantic>=2.0.0🔧 用法
使用紫外线(推荐)
注: 如果您以前安装过mcp在另一个项目中,或者如果您遇到以下错误Failed to spawn: mcp ... No such file or directory,运行: ``bash uv remove mcp uv add "mcp[cli]>=1.0.0"`这确保了mcp` 二进制文件已正确链接到当前环境。
启动MCP检查器(开发模式)
使用MCP检查器测试和验证服务器:
uv run mcp dev server.py直接启动服务器
直接运行服务器进行测试:
uv run python server.py在Claude Desktop中安装(生产环境)
在Claude Desktop中安装服务器以供生产使用:
uv run mcp install server.py🛠️ 可用工具
食品安全工具(8种工具)✅
| 工具 | 说明 | 参数 |
|---|---|---|
search_recalls_by_product_description | 通过详细分析、安全见解和全面报告搜索食品召回。 | query: str |
search_recalls_by_product_type | 按产品类型搜索召回,包括详细分析、公司趋势和安全建议。 | product_type: str |
search_recalls_by_specific_product | 检查特定产品的召回情况,并提供详细的安全信息和建议。 | product_name: str |
search_recalls_by_classification | 按分类搜索召回,并进行详细分析和风险评估。 | classification: str |
search_recalls_by_code_info | 按代码信息搜索召回,并提供详细的产品跟踪和安全警报。 | code_info: str |
search_recalls_by_date | 通过详细的时间线分析和安全趋势按日期范围搜索召回。 | days: int (默认值:30) |
search_adverse_events_by_product | 通过详细的病例分析和安全性见解搜索不良事件。 | product_name: str |
get_symptom_summary_for_product | 获取特定食品的详细症状分析、病例详情和安全见解。 | product_name: str |
🏛️ 建筑
该服务器采用简单的模块化架构构建,旨在提高清晰度和可扩展性。
graph TD
subgraph "SafetySearch MCP"
A[User] -- "Tool Call" --> B["server.py
(MCP Entrypoint)"];
B -- "Executes" --> C{"Food Tools
(safetyscore/tools/food.py)"};
C -- "HTTP Request" --> D["API Client
(safetyscore/api_client.py)"];
end
D -- "Calls" --> E["openFDA API
(api.fda.gov)"];
subgraph "Testing Framework"
F[Pytest] -- "Runs" --> G["Test Suite
(test_safetyscore/)"];
G -- "Tests" --> C;
endserver.py:MCP服务器的主要入口点。它初始化工具集并使其可用于MCP环境。safetyscore/:包含所有逻辑的核心Python包。
- tools/:此目录包含不同的工具模块。目前,它只包含 food.py. - food.py:实施8个食品安全工具,提供详细的分析和安全见解。 - api_client.py:用于与外部openFDA API交互的集中式异步HTTP客户端。它处理请求/响应逻辑、错误处理和API密钥管理。
test_safetyscore/:包含服务器的测试套件,确保工具的可靠性和正确性。
这种结构将关注点分开,便于将来维护和添加新的工具集。
📋 示例提示和工具调用
以下是一些用户提示及其触发的相应工具调用的示例。
食品安全工具
- 用户提示: “冰淇淋有召回吗?”
food.search_recalls_by_product_description(query="ice cream")- 用户提示: “给我看看最近烘焙产品的召回情况。”
food.search_recalls_by_product_type(product_type="Bakery")- 用户提示: “我买了一些‘Ben&Jerry巧克力软糖布朗尼’冰淇淋,安全吗?”
food.search_recalls_by_specific_product(product_name="Ben & Jerry's Chocolate Fudge Brownie")- 用户提示: “列出所有最严重的食品召回事件。”
food.search_recalls_by_classification(classification="Class I")- 用户提示: “我食品包装上的代码是‘222268’。有召回吗?”
food.search_recalls_by_code_info(code_info="222268")- 用户提示: “过去两周发生了哪些食品召回事件?”
food.search_recalls_by_date(days=14)- 用户提示: “我吃了麦圈后生病了。其他人报告过问题吗?”
food.search_adverse_events_by_product(product_name="Cheerios")- 用户提示: “人们吃了‘幸运咒’后报告的常见症状是什么?”
food.get_symptom_summary_for_product(product_name="Lucky Charms")🧪 运行测试
要验证所有工具是否按预期工作,您可以运行提供的测试套件:
先决条件
- 确保您已安装所有依赖项(请参阅上面的安装部分)
运行所有测试套件
从项目根目录运行:
# Test Food Tools
uv run python test_safetyscore/test_tools/test_food_tools.py📊 使用的API端点
食品安全
- 强制执行API:
https://api.fda.gov/food/enforcement.json - 不良事件API:
https://api.fda.gov/food/event.json
______________________________________________________________________
安全 -通过MCP的力量让每个人都能访问FDA的安全数据。
