内容
临床副驾驶 MCP 服务器
一款基于 **模型上下文协议()**,使用 **NitroStack SDK**、**MongoDB Atlas**、**Supabase 存储**、inecone 矢量、**谷歌 Gemini 2.5 Flash** 和 **Groq Llama 3.3 70B** 构建的 AI 医疗。
临床副驾驶服务器为医疗专业人员和 AI 助手化的文档 OCR、结构化患者信息提取、时间线排序、试验匹配和自动专家转诊 PDF 生成。
---
## 🌟 主要功能与能力
- 📄 **医疗文档处理与 OCR**:双阶段引擎,使用 `pdf-parse` 并带有 zlib 流自动解压缩回落,以无故障处理复杂的临床报告。
- 🧬 **LLM 信息提取**:使用 **谷歌 Gemini 2.5 Flash**(主要)并自动回落到 **Groq Llama 3.3 70B**,提取患者资料、诊断、活跃药物、实验室值摘要。
- 📅 **时间线排序**:自动将化的临床出院总结转换为结构化、时间戳记的医疗。
- 🎯 **临床试验匹配**:与 **ClinicalTrials2** 的实时集成,结合 LLM 驱动的患者资格评分和纳入/排除分析。
- 📋 **专家转诊 PDF 生成**:自动将试验转诊理由综合成可下载的 PDF 文档, **Supabase 存储**中。
- 🔍 **矢量搜索AG**:将临床文本嵌入到 **Pinecone 矢**中,以进行语义搜索和临床检索。
---
## 工具概览
服务器暴露了 6 种主要的模型MCP)工具:
| MCP 工具名称 | 关键参数 |
| :--- | :--- | :--- |
| `authenticate_user` | 验证用户(`register` / `login`)并返回 令牌。 | `action`,`account`,`,`role` |
| `upload_medical_report` | 解码 base64 医疗文件/PDF,上传到 Supabase 存储,并在 中注册元数据。 | `patientId`,`report`file`,`mimeType` |
| `extract_patient | 对上传的报告运行 OCR,并使用 LLM 从 MongoDB 和 Pinecone 中提取结构化的患者数据。 | `patientId`,`reportId` |
| `update_medical_timeline` | 从处理的患者报告中综合时间顺序的医疗时间线事件。 | `patientId` |
| `search_clinical_trials` | 将患者资料与 ClinicalTrials.gov 进行匹配,并使用 LLM 资格评分。 | `patient,`disease`,`location` |
| `generateral_letter` | 生成临床转诊理由和存储在 Supabase。 | `patientId`,`trialId` |
---
## 🏗️ 架构与技术栈
- **框架**:[NitroStack SDK](https://nitrostack.ai/)(TypeScript + Zod 验证)
- **数据库**:MongoDB Atlas(`users`,`patients`,`reports`,`timelines`,`referrals`,`trials`)
- **文件存储**:Supabase 存储(`medical-reports` 存储桶)
- **矢量搜索**:Pinecone 索引(`clinical-copilot`)
- **主要 LLM**:谷歌 Gemini 2.5`gemini-2.5-flash`)
- ** LLM**:Groq Llama 3.3 70B(`llama-3.3-70b-versatile`)
- **PDF 引擎**:`pdf-parse` + 自定义 PDFKit 文档生成器
---
## 🚀 快速启动与安装
### 前提条件
- **Node.js**:v18.0.0 或更高版本
- **npm**:v9.0.0 或更高版本
- MongoDB Atlas 集群 URI
- Supabase 项目 URL 和密钥
- 谷歌 Gemini API 密钥 / Groq API 密钥
### 1. 克隆与安装依赖项
```bash
git clone https://github.com/your-username/Clinical_Copliot_MCP.git
cd Clinical_Copliot_MCP
npm install
```
### 2. 配置环境变量
在根目录中通过复制模板创建 `.env` 文件:
```bash
cp .env.example .env
```
在 `.env` 中填写您的 API 凭证:
```env
# 数据库配置(MongoDB Atlas)
MONGODB_URI="mongodb+srv://<username>:<password>@cluster.mongodb.net/"
DATABASE_NAME=clinical_copilot
# Supabase 存储与身份验证配置
SUPABASE_URL="https://your-project.supabase.co"
SUPABASE_KEY="your-supabase-anon-key"
SUPABASE_SERVICE_ROLE_KEY="your-supabase-service-role-key"
SUPABASE_STORAGE_BUCKET=medical-reports
# LLM 提供商配置
GEMINI_API_KEY="your-gemini-api-key"
GROK_API_KEY="gsk_your_groq_api_key"
# 矢量数据库(Pinecone)
PINECONE_API_KEY="your-pinecone-api-key"
PINECONE_INDEX=clinical-copilot
```
### 3. 运行开发服务器
```bash
npm run dev
```
### 4. 运行自动化端到端工具套件
执行综合测试套件,验证所有 6 个 MCP 工具针对测试 PDF 报告(`04_Discharge_Summary.pdf`):
```bash
npm run test:tools
```
### 5. 清除 / 清空数据库数据
清除 MongoDB Atlas 中的所有集合并删除 Supabase 存储中的上传文件:
```bash
npm run clean:data
```
---
## ⚙️ MCP 客户端配置
将临床副驾驶 MCP 服务器添加到您首选的 MCP 客户端(Claude Desktop,Cursor 或 Windsurf):
### Claude Desktop (`claude_desktop_config.json`)
```json
{
"mcpServers": {
"clinical-copilot": {
"command": "node",
"args": [
"C:/path/to/Clinical_Copliot_MCP/dist/index.js"
],
"env": {
"MONGODB_URI": "mongodb+srv://...",
"DATABASE_NAME": "clinical_copilot",
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_SERVICE_ROLE_KEY": "your-key",
"GEMINI_API_KEY": "your-key",
"GROK_API_KEY": "your-key"
}
}
}
}
```
---
## 📜 许可证
在 MIT 许可证下分发。有关详细信息,请LICENSE](LICENSE)。