PubMed MCP(注:MCP可能代表某种特定的文献或数据库分类,但在此上下文中未给出具体含义,因此直接保留原样翻译)
PubMed MCP通过HTTP暴露PubMed E-Utilities搜索工作流,以便实现模型上下文协议(MCP)或任何其他支持REST集成的客户端可以使用。它提供了一个单一的查询端点,用于查询PubMed,并以一致的JSON格式返回经过整理的文章元数据。
特点/功能
- 🔎 通过单次HTTP请求搜索PubMed。
- 📄 获取文章摘要(标题、期刊、发表日期、作者、数字对象标识符(DOI)和规范URL)。
- 🛠️ 可通过环境变量进行配置,包括一个可选的NCBI API密钥以提高速率限制。
- 🧪 使用模拟响应进行测试,以确保能够稳健地解析PubMed的响应。
开始入门
1. 安装依赖项
创建并激活一个 Python 3.10+ 环境,然后安装依赖项:
pip install -e .
# For development and testing extras
pip install -e .[dev]2. (可选)配置API密钥
设置 PUBMED_API_KEY 或者 NCBI_API_KEY 使用您的NCBI E-Utilities API密钥以解锁更高的吞吐量。
export PUBMED_API_KEY="your-api-key"3. 启动HTTP服务器
使用 Uvicorn 运行 FastAPI 应用:
uvicorn pubmed_mcp.server:app --host 0.0.0.0 --port 8000
# or
python -m pubmed_mcp.main您现在可以查询该服务:
curl "http://localhost:8000/articles/search?q=heart+disease&limit=5"4. 运行测试套件
pytestAPI
GET /health– 退货{ "status": "ok" }进行准备就绪检查。GET /articles/search– 必需的查询参数q;可选limit(默认10,最大值50)。 返回一个包含原始查询、应用的限制以及文章摘要列表的JSON有效载荷。
开发说明
- 这个(或“该”)
PubMedClient处理eSearch和eSummary请求,并将它们合并成一个列表ArticleSummary\dataclasses\(数据类)。 - FastAPI 应用缓存了一个客户端实例,并在关闭时优雅地关闭它。
- 测试使用
respx为了模拟PubMed的响应,保持该套件的快速性和确定性。
