MedixHub模型上下文协议(MCP)服务器
模型上下文协议(MCP)服务器,可通过MedixHub访问集成医疗和保健API。
特性
- 纯JavaScript实现
- 使用标准化的MCP元数据公开功能
- 执行带有参数验证的函数
- 与Ollama等LLM无缝集成
- 通过身份验证确保API端点安全
- 支持流式响应
已实现的功能
服务器包括这些函数的JavaScript实现:
- 执行OpenTargetQuery -针对OpenTarget API执行GraphQL查询
- FDADrugLabelSearch -从FDA数据库检索药物信息
- get_drug_generic_name -仿制药和品牌药品名称之间的映射
- 君主搜索 -在Monarch数据库中搜索基因、疾病或表型
- 多种表型的君主病 -发现与多种表型相匹配的疾病
OpenTarget函数
- 疾病信息查询
- 药物详细信息和关联
- 靶标(基因/蛋白质)信息
- 疾病靶点关联
- 药物与疾病的关系
FDA药品标签功能
- 药品信息检索
- 通用和品牌名称映射
- 不良反应查找
- 药物相互作用搜索
Monarch数据库函数
- 生物医学实体搜索
- 疾病表型关联
- 基因表型关系
- 多表型疾病发现者
入门指南
先决条件
- Node.js 14或更高版本
- npm或纱线
安装
- 克隆存储库
git clone https://github.com/yourusername/medixhub-mcp-server.git
cd medixhub-mcp-server- 安装依赖项
npm install- 配置环境变量
cp .env.example .env
# Edit .env with your settings- 启动服务器
npm start对于自动重新加载的开发:
npm run dev用法
执行API
使用 /execute 运行任何已注册MedixHub功能的端点:
POST /execute
Content-Type: application/json
{
"name": "queryFDADrugLabel",
"parameters": {
"searchFields": {
"drug_name": ["openfda.brand_name", "openfda.generic_name"]
},
"returnFields": ["openfda.generic_name", "warnings"],
"arguments": {
"drug_name": "ibuprofen",
"limit": 1
}
}
}API直接MedixHub
使用 /medixhub API直接访问的端点:
/medixhub/opentargets/medixhub/opentargets-genetics/medixhub/drug-by-name/medixhub/fda-drug-label/medixhub/drug-generic-name/medixhub/monarch/medixhub/diseases-for-phenotypes
函数元数据
获取有关可用功能的信息:
/functions-所有可用功能/functions/medixhub-MedixHub特定功能/functions/category/:category-按类别划分的功能
API文档
API完整文档可在 /functions/medixhub
发展
项目结构
medixhub-mcp-server/
├── server.js # Main server file
├── src/
│ ├── medixhub/ # MedixHub integration
│ ├── middleware/ # Middleware
│ ├── routes/ # Route handlers
│ └── services/ # Services
├── examples/ # Usage examples
└── tests/ # Test suite添加新功能
要向注册表添加新功能,请执行以下操作:
const { registerFunction } = require('./src/services/functionRegistry');
registerFunction('myNewFunction', {
name: 'myNewFunction',
description: 'Description of what this function does',
parameters: {
// Parameter schema
},
function: async (params) => {
// Implementation
return result;
}
});运行测试
npm test认证
服务器支持两种身份验证方法:
- API密钥:简单的基于密钥的身份验证
- JWT代币:更精细的访问控制
在生产模式下,除函数发现外,所有端点都需要身份验证。
环境变量
通过以下环境变量配置服务器:
PORT:服务器端口(默认值:3000)NODE_ENV:环境(“开发”或“生产”)OLLAMA_API_URL:Ollama API的URLAPI_KEYS:以逗号分隔的有效API密钥列表FDA_API_KEY:FDA药物数据库的API密钥
看 .env.example 所有可用选项。
性能注意事项
- 服务器对所有API调用使用异步处理
- 启用速率限制以防止滥用
- 超时处理可防止挂起请求
- 通过高效处理流来优化内存使用
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

