使用说明
PubMed MCP服务器
PubMed MCP服务器使用Python、FastAPI和FastMCP构建,用于使用NCBI电子实用程序搜索PubMed论文。
特性
- MCP工具
search_pubmed(query, max_results, retstart, sort)用于纸张搜索 - MCP工具
get_pubmed_article(pmid)获取完整元数据和摘要 - MCP工具
get_pubmed_abstract(pmid)仅用于摘要检索 - MCP HTTP端点的可选承载令牌保护
- 可配置的MCP路由路径和NCBI请求速率限制
项目结构
main.py:仅限最小入口点app/server.py:FastAPI/MCP应用程序组装和接线app/tools.py:MCP工具处理程序app/config.py:环境设置和承载认证中间件app/models.py:响应数据模型app/pubmed_client.py:PubMed电子实用程序客户端和XML解析
环境变量
复制并填写 .env.example 作为 .env:
PUBMED_EMAIL:NCBI要求PUBMED_API_KEY:可选,提高吞吐量PUBMED_EUTILS_LIMIT:每秒请求数限制(默认值10)MCP_HTTP_PATH:安装MCP的路径(默认/pubmed-mcp)MCP_BEARER_TOKENS:逗号分隔的有效承载令牌
如果 MCP_BEARER_TOKENS 为空,身份验证已禁用。
跑
sh deploy-container.sh
健康检查
curl http://localhost:8001/health
MCP端点: <host>/pubmed-mcp 喜欢 http://127.0.0.1:8001/pubmed-mcp
安全扫描
安装所有依赖项,包括开发工具:
uv sync --dev
运行安全扫描:
bash security-scan.sh
工件生成于 security-scan-results/.
MCP配置
对于 开源代码
"pubmed-mcp": {
"type": "remote",
"url": "http://127.0.0.1:8001/pubmed-mcp",
"oauth": false,
"headers": {
"Authorization": "Bearer your-mcp-token-1"
}
}
对于 克莱恩:
"pubmed-mcp": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "http://127.0.0.1:8001/pubmed-mcp",
"headers": {
"Authorization": "Bearer your-mcp-token-1"
}
}
备注
- 此服务器使用NCBI E-utility API终结点(
esearch,esummary,efetch). - 保持你的
PUBMED_EMAIL有效并遵循NCBI使用指南:https://www.ncbi.nlm.nih.gov/books/NBK25497/ - 检查
E-utilities Quick Start有关NCBI使用指南:https://www.ncbi.nlm.nih.gov/books/NBK25500/#chapter1.For_More_Information_8 - 检查
A General Introduction to the E-utilities有关NCBI使用指南:https://www.ncbi.nlm.nih.gov/books/NBK25497/
安全扫描摘要
| 扫描 | 状态 |
|---|---|
| 依赖关系扫描 | 通过 |
| 静态安全扫描 | PASS |
| 秘密扫描 | 通过 |
| 集装箱扫描 | 通过 |
| SBOM | 通行证 |