美国食品药品监督管理局药品审批MCP服务器
模型上下文协议(MCP)服务器,通过openFDA API提供对FDA药物安全数据的访问。该服务器使AI助手能够搜索不良事件报告、药物标签信息和召回数据,以支持药物安全分析和研究。
特性
🔧 工具
- search_drug_events:查询特定药物的FDA不良事件报告(FAERS数据库)
- get_drug_label_info:检索官方药品标签信息,包括适应症、警告和剂量
- search_drug_calls:在美国食品药品监督管理局的执法报告中搜索药品召回和安全警报
📊 资源
- 近期药物不良事件:美国食品药品监督管理局的最新不良事件报告
- 流行药品标签:常用搜索药物的标签信息
- 近期药品召回:当前的药品召回和执法行动
💬 提示
- 药物安全分析:为特定药物生成全面的安全性分析
- 药物比较:比较多种药物的安全性
安装
先决条件
- Python 3.8+
- 所需软件包:
httpx,mcp
设置
- 克隆存储库:
git clone https://github.com/yourusername/drug-approval-mcp.git
cd drug-approval-mcp- 安装依赖项:
pip install httpx mcp- 运行服务器:
python fda_mcp_server.py用法
作为MCP服务器
该服务器实现了模型上下文协议,可以与MCP兼容的AI助手集成。配置您的MCP客户端以连接到此服务器进行FDA数据访问。
直接测试
运行测试脚本以验证功能:
python test_fda_mcp_server.py工具示例
搜索药物事件
# Search for adverse events related to aspirin
{
"tool": "search_drug_events",
"arguments": {
"drug_name": "aspirin",
"limit": 10,
"date_range": "20240101_to_20241231"
}
}获取药品标签信息
# Retrieve labeling information for metformin
{
"tool": "get_drug_label_info",
"arguments": {
"drug_name": "metformin",
"limit": 5
}
}搜索药品召回
# Find Class I recalls for a specific drug
{
"tool": "search_drug_recalls",
"arguments": {
"drug_name": "lisinopril",
"classification": "Class I",
"limit": 10
}
}使用的API端点
此服务器与以下FDA openFDA API端点接口:
- 药物不良事件:
https://api.fda.gov/drug/event.json - 药品标签:
https://api.fda.gov/drug/label.json - 缉毒报告:
https://api.fda.gov/drug/enforcement.json
数据源
所有数据均来源于FDA的openFDA API,该API提供访问:
- FAERS(美国食品药品监督管理局不良事件报告系统)上市后药品安全监测
- SPL(结构化产品标签):官方药品标签信息
- 召回企业系统(RES):美国食品药品监督管理局的执法和召回行动
响应格式
药物事件响应
{
"total_results": 150,
"events": [
{
"report_id": "12345678",
"receive_date": "20241015",
"serious": "1",
"patient_age": "65",
"patient_sex": "F",
"reactions": ["Nausea", "Dizziness"],
"drugs": [
{
"name": "ASPIRIN",
"indication": "Pain relief"
}
]
}
]
}药品标签响应
{
"total_results": 5,
"labels": [
{
"brand_names": ["Tylenol"],
"generic_names": ["acetaminophen"],
"manufacturer": ["Johnson & Johnson"],
"indications_and_usage": ["Pain relief and fever reduction"],
"warnings": ["Liver damage warning"],
"adverse_reactions": ["Nausea", "Rash"]
}
]
}回忆应答
{
"total_results": 3,
"recalls": [
{
"recall_number": "D-1234-2024",
"product_description": "Drug name and strength",
"reason_for_recall": "Contamination",
"classification": "Class II",
"status": "Ongoing",
"recall_initiation_date": "20241001",
"firm_name": "Manufacturer Name"
}
]
}配置
日志记录
使用命令行参数设置日志级别:
python fda_mcp_server.py --log-level DEBUG速率限制
FDA API有使用限制。服务器通过以下方式尊重这些:
- 将结果集限制在合理的大小
- 对速率限制响应实施适当的错误处理
- 使用async/await实现高效的请求处理
错误处理
该服务器包括全面的错误处理功能,用于:
- 药物名称或搜索参数无效
- FDA API速率限制和停机时间
- 网络连接问题
- API响应格式不正确
发展
项目结构
drug-approval-mcp/
├── fda_mcp_server.py # Main MCP server implementation
├── test_fda_mcp_server.py # Test script for validation
├── README.md # This documentation
├── LICENSE # MIT License
└── .gitignore # Git ignore file贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 进行更改并添加测试
- 提交拉取请求
测试
运行测试套件:
python test_fda_mcp_server.py法律与合规
数据使用
- 所有数据可通过FDA的openFDA API公开获取
- 数据应用于信息和研究目的
- 并非旨在替代专业医疗建议
免责声明
- 美国食品药品监督管理局的不良事件报告未经医学或科学准确性验证
- 报告的存在并不能确定药物和不良事件之间的因果关系
- 始终咨询医疗保健专业人员以做出医疗决定
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
支持
对于问题和疑问:
- 检查 美国食品药品监督管理局公开文件
- 查看错误日志以获取调试信息
- 通过存储库的问题跟踪器提交问题
更新日志
v1.0.0
- 具有核心MCP服务器功能的初始版本
- 支持不良事件、药品标签和召回
- 全面的错误处理和记录
- 常见分析任务的预构建提示
TO-DO注意:其他数据源将来自:https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm
