Medical MCP 服务器集合(生物医药 API 集成与统一工具端点)

使用说明(Markdown 格式)

  • 项目简介

    • 本仓库实现基于 MCP(Model Context Protocol)的后端服务器,聚合多家生物医药数据库的工具和资源,提供统一与分 API 的访问入口,以及对工具的注册、执行和上下文渲染能力,面向将 AI/LLM 客户端接入的场景。
  • 主要功能点

    • 资源托管与数据访问:整合各类生物医学数据库工具,提供统一的数据获取入口。
    • 工具注册与执行:为每个 API 提供大量工具,且支持集中化的统一端口以及独立端口访问,工具通过 JSON-RPC 调用。
    • Prompt 模板与交互:提供可渲染的提示模板,支持 LLM 与外部工具的协作。
    • 传输与会话:基于 MCP 的 Streamable HTTP/SSE/WebSocket 等传输,具备会话管理和能力声明能力。
    • 安全与扩展:Sentry 集成、可选 API-key 参数、无状态代理模式,支持新增 API 的快速接入。
  • 安装步骤

    • 克隆仓库并创建虚拟环境。
    • 安装依赖(如 Python 包)并准备运行环境。
    • 直接运行:将启动脚本暴露的 FastAPI/Starlette 应用挂载到 HTTP 服务端,默认端口 8000。
    • 生产化部署:可使用 Docker/Docker Compose 或常用的 Python WSGI/ASGI 部署方式,结合 uvicorn 启动。
  • 服务器配置(MCP 客户端连接信息,JSON 格式,示例说明)

    • MCP 客户端需要连接的统一端点通常为统一的 MCP 服务器 URL,示例配置如下(JSON,仅用于说明,不作为代码块呈现): { "server_name": "medical-apis-unified", "command": "uvicorn", "args": ["medical_mcps.http_server:app", "--host", "0.0.0.0", "--port": "8000"] }
    • 连接地址(示例,实际部署请按运行环境填写):
      • 统一入口: http://<host>:8000/tools/unified/mcp
      • 单独 API 入口示例: http://<host>:8000/tools/reactome/mcp、http://<host>:8000/tools/kegg/mcp 等
    • 如果需要使用生产环境中的各 API 子服务,请按照需要启动单独端口或统一端口进行部署,确保端口不冲突。
  • 基本使用方法

    • 连接方式:MCP 客户端通过 HTTP 请求对 MCP 服务器的 /mcp 端点进行 JSON-RPC 调用,传入 method 为 tools/call,params 中包含 tool 的名称及参数。
    • 常见调用示例(JSON-RPC 格式,直接照抄发送即可):
      • 调用某个工具(示例:查询 UniProt 基因信息) { "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "uniprot_get_protein", "arguments": { "accession": "P00520" } }, "id": 1 }
    • 响应:服务器返回标准 MCP 结构的 JSON-RPC 响应,工具输出通常包含 "data"、"metadata" 等字段,以及在数据层面的具体结果。
  • 其他要点

    • 本仓库实现了统一 FastMCP hub 与各 API 的单独服务器,支持多种传输与会话管理,具备安全性与可扩展性设计。
    • 对 OMIM、NCI 等需要 API Key 的接口在客户端传入参数中携带安全鉴权信息,MCP 服务器本身不持久化密钥。
  • 运行与监控

    • 服务器日志包含请求、响应与错误信息,可结合 Sentry 进行错误追踪与性能监控。
    • 通过环境变量可开启/关闭缓存、Sentry、以及 API Key 等安全相关设置。
  • 参考端点

    • 统一端点:https://<域名>/tools/unified/mcp
    • Reactome 端点:https://<域名>/tools/reactome/mcp
    • KEGG 端点:https://<域名>/tools/kegg/mcp
    • UniProt 端点:https://<域名>/tools/uniprot/mcp
    • 以及其他 API 的对应端点(OpenTargets、PubMed、OpenFDA、MyVariant、NCI、NodeNorm、EveryCure KG 等)

服务器信息