使用说明
PubMed增强搜索MCP服务器
一个模型内容协议服务器,提供增强工具以从PubMed数据库中搜索和检索学术论文,并具备额外功能,如MeSH术语查询、发表数量统计以及基于PICO的证据搜索。
特点/特性
- 使用关键词在PubMed中搜索,并可选择性应用期刊过滤器
- 支持按相关性或日期排序结果(最新/最早优先)
- 获取与搜索词相关的医学主题词表(MeSH)术语
- 获取多个搜索词的出版物数量(有助于比较流行度)
- 检索详细的论文信息,包括摘要、DOI、作者和关键词
- 执行基于PICO结构的有组织搜索,支持同义词和组合查询
安装
先决条件
- Python 3.6及以上版本
- pip
安装
-
克隆此仓库:
git clone https://github.com/leescot/pubmed-mcp-smithery cd pubmed-mcp-smithery -
安装依赖项:
pip install fastmcp requests
使用方法
在本地运行
启动服务器:
python pubmed_enhanced_mcp_server.py
对于带有自动重载功能的开发模式:
mcp dev pubmed_enhanced_mcp_server.py
添加到Claude Desktop
编辑您的Claude桌面配置文件_CLAUDE_DIRECTORY/claude_desktop_config.json 翻译为中文是:CLAUDE目录/claude桌面配置文件.json_) 要添加服务器:
"pubmed-enhanced": {
"command": "python",
"args": [
"/path/pubmed-mcp-smithery/pubmed_enhanced_mcp_server.py"
]
}
MCP功能
服务器提供以下主要功能:
-
search_pubmed- 在PubMed中搜索与关键词匹配的文章,并可选择性地过滤期刊# Example results = await search_pubmed( keywords=["diabetes", "insulin resistance"], journal="Nature Medicine", num_results=5, sort_by="date_desc" ) -
get_mesh_terms- 查找与医学概念相关的MeSH术语# Example mesh_terms = await get_mesh_terms("diabetes") -
get_pubmed_count- 获取多个搜索词的出版物数量# Example counts = await get_pubmed_count(["diabetes", "obesity", "hypertension"]) -
format_paper_details- 通过PMID获取特定论文的详细信息# Example paper_details = await format_paper_details(["12345678", "87654321"]) -
pico_search- 使用同义词进行结构化的PICO(人群、干预措施、对照、结果)搜索# Example pico_results = await pico_search( p_terms=["diabetes", "type 2 diabetes", "T2DM"], i_terms=["metformin", "glucophage"], c_terms=["sulfonylurea", "glipizide"], o_terms=["HbA1c reduction", "glycemic control"] )
PICO搜索功能
PICO搜索工具通过以下方式帮助研究人员进行循证文献检索:
- 允许每个PICO元素有多个同义词
- 在每个元素内使用“或”运算符组合术语
- 对元素进行AND组合(P AND I,P AND I AND C等)
- 返回每个组合的搜索查询结果和出版物数量
这种方法有助于细化研究问题并确定最相关的文献。
速率限制
服务器实现了带有退避延迟的自动重试机制,以应对NCBI的E-utilities服务可能实施的速率限制。
许可证
此项目采用BSD 3-Clause许可证授权 - 详情请参见LICENSE文件。