关于 MedixHub Model Context Protocol (MCP) Server
MedixHub Model Context Protocol (MCP) Server 为使用 MCP 的应用提供医疗健康 API 函数,包括 Open Targets、FDA 药品标签和 Monarch 生物医学数据工具。它支持参数验证和身份认证。
主要功能
- 01查询 Open Targets GraphQL
- 02搜索 FDA 药品标签
- 03映射通用名与品牌名
- 04搜索 Monarch 生物医学实体
- 05验证函数参数
- 06支持 API 密钥和 JWT 认证
适用场景
- 01查询药品标签和不良反应
- 02探索疾病与靶点关系
- 03查找与表型相关的疾病
- 04搜索基因和生物医学实体
MCP 相关
向 MCP 客户端提供带标准元数据且经过参数验证的医疗健康函数,包括 Open Targets、FDA 药品信息和 Monarch 搜索。客户端可通过发现端点获取函数元数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MedixHub 模型上下文协议(MCP)服务
一个通过 MedixHub 集成医疗和健康 API 访问能力的模型上下文协议(MCP)服务。
功能特性
- 纯 JavaScript 实现
- 使用标准化的 MCP 元数据公开函数
- 通过参数验证执行函数
- 与 Ollama 等大模型无缝集成
- 提供带身份验证的安全 API 端点
- 支持流式响应
已实现的函数
该服务包含以下函数的 JavaScript 实现:
- executeOpenTargetQuery - 对 OpenTarget API 执行 GraphQL 查询
- FDADrugLabelSearch - 从 FDA 数据库获取药物信息
- get_drug_generic_name - 在通用药名和品牌药名之间进行映射
- MonarchSearch - 在 Monarch 数据库中搜索基因、疾病或表型
- MonarchDiseasesForMultiplePhenotypes - 查找与多个表型匹配的疾病
OpenTarget 函数
- 疾病信息查询
- 药物详情及关联信息
- 靶点(基因/蛋白质)信息
- 疾病与靶点的关联
- 药物与疾病之间的关系
FDA 药品标签函数
- 药物信息搜索
- 通用药名与品牌药名映射
- 不良反应查询
- 药物相互作用搜索
Monarch 数据库函数
- 生物医学实体搜索
- 疾病与表型的关联
- 基因与表型之间的关系
- 多表型疾病查找器
快速开始
前提条件
- Node.js 14 或更高版本
- npm 或 yarn
安装
- 克隆代码仓库
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
}
}
}
直接调用 MedixHub API
使用 /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:环境(development或production)OLLAMA_API_URL:Ollama API 的 URLAPI_KEYS:以逗号分隔的有效 API 密钥列表FDA_API_KEY:FDA 药物数据库的 API 密钥
所有可用选项请参阅 .env.example。
性能注意事项
- 服务对所有 API 调用进行异步处理
- 启用速率限制以防止滥用
- 超时处理可防止请求挂起
- 通过高效处理流来优化内存使用
许可证
本项目采用 MIT License 许可,详情请参阅 LICENSE 文件。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。