SuperAPI AI 工具集

medical-mcp

medical-mcp 是一个基于 MCP(模型上下文协议)的本地服务器,用于把权威医学数据接入 AI 工作流。它可查询 FDA、WHO、PubMed、RxNorm、Semantic Scholar、Google Scholar、ClinicalTrials.gov 等来源,提供药品信息、健康统计、医学文献、临床指南与儿科资料等查询能力。服务器完全在本地运行,无需 API 密钥即可使用,不记录日志、不上传数据;内置缓存、限流、熔断、重试与降级机制,并对文献结果附加研究类型与证据等级标签。适用于需要通过 AI 编程环境获取医学信息的场景,但不能替代专业医疗建议。

访问官网

工具介绍

用途

medical-mcp 是一个 MCP(Model Context Protocol,模型上下文协议)服务器,用于把权威医学信息带入 Cursor、Claude Desktop 等 AI 编程环境。它通过查询多个权威医学 API,让用户在 AI 工作流中直接获取药品信息、健康统计数据、医学文献、临床指南和儿科资料。项目强调本地运行:数据不离开本机,不跟踪、不写日志、不上传云端,无需 API 密钥,开箱即用。

主要能力

药品信息

  • search-drugs:检索 FDA、DailyMed、TGA(澳大利亚)、Health Canada、EMA,可按国家过滤(US、AU、CA、EU)。不支持的代码会被拒绝,而不是返回空的监管结果。
  • search-drug-nomenclature:通过 RxNorm 获取标准化药品名称(limit 默认 25)。
  • search-drug-safety:查询 FDA FAERS 不良事件(含报告 ID)、召回和短缺信息。

健康统计

  • get-health-statistics:查询 WHO 全球卫生观察站数据,如预期寿命、死亡率、疾病流行情况。

医学文献

  • search-medical-literature:检索 3000 万篇以上 PubMed 文章,并附带证据分级。可选 question 或 rerank 参数会对命中结果重新排序,使真正回答问题的论文排在仅共享关键词的论文之上。
  • rank-search-hits:对已有列表(标题 + 摘要)做同样的重新排序。仅用于检索排序,不构成诊断或建议。
  • get-article-details:按 PMID 获取文章详细信息。
  • search-google-scholar:设置 MONID_API_KEY 时通过 Monid TinyFish(research_paper)检索学术论文;否则使用 Semantic Scholar。
  • search-medical-journals:查询顶级期刊(NEJM、JAMA、Lancet、BMJ、Nature Medicine)。

临床工具

  • search-clinical-guidelines:查询医学组织的实践建议。
  • search-clinical-trials:查询 ClinicalTrials.gov。
  • list-sources:列出注册表适配器和专用工具来源(WHO、PubMed、RxNorm、Scholar、AAP)的完整目录,并说明每个来源由哪个 MCP 工具访问。

儿科来源

  • search-pediatric-guidelines:通过 PubMed 查询 AAP 政策/临床报告,以及 Bright Futures。会丢弃域外网页命中;标签来自页面本身。
  • search-pediatric-literature:查询主要儿科期刊的研究,支持类似医学文献的 question / rerank 参数。
  • search-pediatric-drugs:查询带儿科标签的药品,含 NDC、生产商和 DailyMed URL。

可靠性与监控

  • health-check:探测所有上游来源,报告延迟/状态、熔断器状态和缓存健康状况。
  • get-cache-stats:查看缓存统计(命中率、内存占用、条目数)。

使用方式

在 Cursor 中安装(推荐)

项目提供一键安装链接。

手动安装

要求:Node.js 18+ 与 npm。 将配置加入 claude_desktop_config.json: macOS:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%\Claude\claude_desktop_config.json 配置后重启 Claude Desktop。

容器运行

容器运行 HTTP 服务器,在容器内监听 3000 端口。使用 -p 3000:3000 将该端口发布到本机。可选 API 密钥在运行时传入,不会写入镜像。若本机 3000 端口已被占用,可发布其他主机端口并让客户端指向该端口,容器内进程仍使用 3000。 停止容器:docker stop 发送 SIGTERM,进程停止接受连接并退出。 将 MCP 客户端指向 http://127.0.0.1:3000/mcp。健康检查 URL 不是 MCP 会话;客户端需要发送 initialize,然后调用 tools/call。 可从 shell 传入可选密钥而不写入镜像。 当客户端掌管容器标准输入时,stdio 仍可用:保持 stdin 打开,不要分配终端。使用 -i 保持 stdin 打开以传递协议消息,不要加 -t。TTY 用于交互式终端,可能改变该协议使用的字节。日志保留在 stderr,避免混入 stdout。

示例操作

  • 搜索药品信息
  • 搜索医学文献(带证据分级),结果包含证据标签
  • 运行健康检查

适用场景

  • 在 Cursor、Claude Desktop 等 AI 编程环境中进行医学信息检索。
  • 查询药品监管、命名、安全(不良事件、召回、短缺)信息。
  • 获取 WHO 健康统计数据。
  • 检索并排序 PubMed 等医学文献,查看证据分级标签。
  • 查询临床指南与临床试验。
  • 查询儿科指南、文献和带儿科标签的药品。
  • 监控各数据来源可用性与缓存状态。

限制与注意事项

  • 证据分级标签是根据标题和摘要自动生成的标签,并非独立核验的等级。
  • 排序功能仅为检索排序,不构成诊断或建议。
  • 工具提供来自权威来源的信息,但不能替代专业医疗建议、诊断或治疗,医疗决策应咨询合格的医疗专业人员。
  • 上游 API 响应会通过 Zod schema 校验,若来源响应格式变化会记录警告但继续以原始数据运行,不会崩溃。
  • 限流与熔断策略:按来源令牌桶限制(PubMed 无密钥 3/秒、有密钥 10/秒;FDA 4/秒;Google Scholar 0.2/秒);连续 3 次失败后熔断 60 秒;瞬时失败(429、5xx、网络错误)指数退避重试最多 2 次。
  • 缓存响应返回时间 <10ms,API 调用约 800–1500ms,常见查询预期命中率 60%+。
  • 设置 MONID_API_KEY 时 Scholar/AAP 搜索和 PMC HTML 抓取走 Monid TinyFish;无密钥时 Scholar 回退到 Semantic Scholar API(免费、结构良好、100 请求/秒、无需 API 密钥)。
  • 可选 NCBI_API_KEY 环境变量可将 PubMed 从 3 请求/秒提升到 10 请求/秒。
  • 技术栈:Node.js、TypeScript、MCP SDK;依赖 @modelcontextprotocol/sdk、superagent、zod、express、cors;平台 macOS、Windows、Linux。
  • 安全与隐私:仅监听 localhost,服务器本地运行,无外部访问;不存储数据,所有查询实时进行,不写磁盘;进程隔离,医学数据留在本机;无需 API 密钥(NCBI 和 Monid 密钥可选)。
  • 许可证:MIT License,详见 LICENSE.md。