内容
# PharmaGuard MCP
## 项目概述
PharmaGuard MCP 是一个基于 NitroStack 构建的先进模型上下文协议(MCP)服务器。它为 AI 代理(如 Claude Desktop 或 Cursor IDE)提供直接访问官方 FDA 开放数据的能力。服务器使 AI 能够查找药物详细信息、检索不良事件报告(FAERS)、检查活跃的 FDA 强制召回,并比较药物安全配置文件。
## 功能
- **NDC 查找:** 检索通用和品牌药物详细的国家药物代码(NDC)信息。
- **不良事件搜索:** 分析与特定药物相关的顶级不良反应(FAERS)。
- **FDA 标签交叉引用:** 自动将报告的不良反应与官方 FDA 药物标签进行比较,以确定反应是否为已知警告或潜在未列出的警告。
- **历史趋势和严重性:** 可视化不良事件报告的时间线,并提供临床严重性分析(死亡、住院等)。
- **强制召回:** 检查 FDA 强制数据库中与药物相关的活跃、正在进行的召回。
- **药物比较:** 并排比较两种药物的不良事件配置文件和召回状态。
- **动态小部件:** 在支持的 MCP 客户端(如 NitroStudio)中直接渲染交互式、高可视化的 React 小部件,具有 Recharts 数据可视化。
## 管道图
<img width="1155" height="772" alt="image" src="https://github.com/user-attachments/assets/75f70fc6-d43a-4625-8cc1-4cfc2a2fc947" />
## 安装
1. **克隆仓库:**
```bash
git clone <your-repo-url>
cd pharmaguard-mcp
```
2. **安装依赖:**
```bash
npm install
```
## 环境变量
复制提供的 `.env.example` 文件以创建您自己的 `.env`:
```bash
cp .env.example .env
```
确保在您的 `.env` 文件中设置以下变量:
- `OPENFDA_API_KEY`:您的 openFDA API 密钥。在 [https://open.fda.gov/apis/authentication/](https://open.fda.gov/apis/authentication/) 获取一个,以将您的速率限制从 240/分钟提高到 240,000/天。
- `PORT`:服务器将运行的端口(默认为 3000)。
*注意:不要将您的 `.env` 文件提交到版本控制中。*
## 构建命令
要构建 MCP 服务器并编译用于生产的 React 小部件:
```bash
npm run build
```
*(此命令将 TypeScript 代码编译到 `dist/` 并将小部件打包到 `src/widgets/out/`)*
对于具有热重载的开发:
```bash
npm run dev
```
运行烟雾测试以验证工具是否正常运行:
```bash
npm run test:smoke
```
## 部署说明
### 运行服务器
您可以使用以下命令启动生产服务器:
```bash
npm start
```
### 与 MCP 客户端集成
**对于 NitroStudio:**
1. 打开 NitroStudio。
2. 选择“添加项目”并将其指向 `pharmaguard-mcp` 目录。
3. 服务器将自动启动并渲染自定义 React 小部件。
**对于 Claude Desktop:**
更新您的 `claude_desktop_config.json` 以包含以下配置:
```json
{
"mcpServers": {
"pharmaguard": {
"command": "node",
"args": ["/absolute/path/to/pharmaguard-mcp/dist/index.js"],
"env": {
"OPENFDA_API_KEY": "your_api_key_here"
}
}
}
}
```
**对于 Cursor IDE:**
1. 导航到设置 -> MCP 设置。
2. 添加新的 MCP 服务器。
3. 选择“命令”并使用:`node /absolute/path/to/pharmaguard-mcp/dist/index.js`。
4. 如有必要,在 Cursor 环境中配置您的环境变量。