PubMed数据检索服务

该服务为Docker化的MCP(Model Context Protocol)服务,提供对PubMed(美国国家医学图书馆,NIH)的只读数据访问,允许LLM客户端检索摘要和出版物元数据,确保数据来源的权威性和可追溯性。

  • by Mostafao4
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Mostafao4/PubMed-MCP

使用说明

模块化MCP(pubmed MCP)

此存储库包含一个打包在Docker中运行的小型MCP(模型上下文协议)服务。

快速笔记

  • 该服务希望您在运行之前提供MCP客户端API密钥(请参阅 API密钥 部分)。
  • 主服务器入口点是 server.py.

这个MCP做什么

问题: 大型语言模型在推理生物医学研究时会产生幻觉,从业者在LLM工作流程中缺乏值得信赖的权威来源。

解决方案: 此MCP将PubMed(美国国家医学图书馆,NIH)暴露为只读、有界的数据源。LLM客户端可以从权威的NIH电子工具中检索逐字摘要和出版物元数据,然后以完全透明和可追溯的方式对这些数据进行推理。

范围和限制:

  • 数据来源: 通过NIH电子工具从PubMed检索逐字摘要、引文和元数据。
  • 它的作用: 按关键字搜索最近的出版物;通过PMID(PubMed ID)获取完整摘要。
  • 它没有做什么: 总结、综合、分析、选择或排名出版物;提出医疗建议;支持培训或微调。
  • 关注点分离: MCP处理权威 数据检索 只有。客户LLM负责 推理 和 解释.
  • 护栏: 强制只读访问;限制搜索最近的出版物(≤30天);为结果集设置上限(每个查询≤50)。

所有信息均直接来源于美国国立卫生研究院。MCP是一个薄而透明的包装;它没有添加任何解释。

API密钥

  • 通过环境变量提供MCP客户端API密钥 MCP_API_KEY.
  • 你可以通过以下方式将其传递给Docker -e MCP_API_KEY=your_key_here,使用Docker密钥,或将其存储在本地 .env 文件并加载它。

Docker:构建并运行

  1. 构建映像(从存储库根运行):
docker build -t pubmed-mcp:latest .
  1. 运行容器(例如,暴露端口8080):
docker run --rm -p 8080:8080 -e MCP_API_KEY="your_api_key_here" pubmed-mcp:latest

替换 8080 如果服务使用的端口不同。

本地(非Docker)运行

  1. 安装依赖项:
pip install -r requirements.txt
  1. 使用设置的环境变量启动服务器:
set MCP_API_KEY=your_api_key_here   # PowerShell/CMD on Windows
python server.py

安全

  • 对待 MCP_API_KEY 敏感。不要将其提交给源代码管理或公开共享。

感兴趣的文件

  • server.py --服务入口点
  • Dockerfile --图像构建说明
  • requirements.txt --Python依赖关系

如果你愿意,我也可以添加一个 .env.example 并更新 Dockerfile 阅读a .env 或者Docker的秘密\