内容
# PubMed 增强搜索 MCP 服务器
[](https://smithery.ai/server/@leescot/pubmed-mcp-smithery)
一个模型内容协议(MCP)服务器,提供增强工具来搜索和检索 PubMed 数据库中的学术论文,具有额外的功能,如 MeSH 术语查找、出版物数量统计和基于 PICO 的证据搜索。
## 功能
- 通过关键词搜索 PubMed,可选期刊过滤
- 支持按相关性或日期(最新/最早)排序结果
- 获取与搜索词相关的 MeSH(医学主题词)术语
- 获取多个搜索词的出版物数量(有助于比较流行度)
- 检索详细的论文信息,包括摘要、DOI、作者和关键词
- 执行基于 PICO 的结构化搜索,支持同义词和组合查询
## 安装
### 先决条件
- Python 3.6+
- pip
### 安装
1. 克隆此仓库:
```bash
git clone https://github.com/leescot/pubmed-mcp-smithery
cd pubmed-mcp-smithery
```
2. 安装依赖项:
```bash
pip install fastmcp requests
```
## 使用
### 在本地运行
启动服务器:
```bash
python pubmed_enhanced_mcp_server.py
```
在开发模式下自动重新加载:
```bash
mcp dev pubmed_enhanced_mcp_server.py
```
### 添加到 Claude Desktop
编辑您的 Claude Desktop 配置文件(_CLAUDE_DIRECTORY/claude_desktop_config.json_)以添加服务器:
```json
"pubmed-enhanced": {
"command": "python",
"args": [
"/path/pubmed-mcp-smithery/pubmed_enhanced_mcp_server.py"
]
}
```
## MCP 函数
服务器提供以下主要功能:
1. `search_pubmed` - 搜索 PubMed 中与关键词匹配的文章,可选期刊过滤
```python
# 示例
results = await search_pubmed(
keywords=["糖尿病", "胰岛素抵抗"],
journal="Nature Medicine",
num_results=5,
sort_by="date_desc"
)
```
2. `get_mesh_terms` - 查找与医学概念相关的 MeSH 术语
```python
# 示例
mesh_terms = await get_mesh_terms("糖尿病")
```
3. `get_pubmed_count` - 获取多个搜索词的出版物数量
```python
# 示例
counts = await get_pubmed_count(["糖尿病", "肥胖", "高血压"])
```
4. `format_paper_details` - 获取特定论文的详细信息,通过 PMID
```python
# 示例
paper_details = await format_paper_details(["12345678", "87654321"])
```
5. `pico_search` - 执行基于 PICO(人群、干预、比较、结果)的结构化搜索,带有同义词
```python
# 示例
pico_results = await pico_search(
p_terms=["糖尿病", "2型糖尿病", "T2DM"],
i_terms=["二甲双胍", "格列美脲"],
c_terms=["磺酰脲", "格列吡嗪"],
o_terms=["HbA1c 降低", "血糖控制"]
)
```
## PICO 搜索功能
PICO 搜索工具帮助研究人员进行基于证据的文献搜索:
1. 允许每个 PICO 元素使用多个同义词术语
2. 在每个元素内使用 OR 运算符组合术语
3. 在元素之间执行 AND 组合(P AND I, P AND I AND C 等)
4. 返回每个组合的搜索查询和出版物数量
这种方法有助于细化研究问题并识别最相关的文献。
## 速率限制
服务器实施自动重试机制,并带有回退延迟,以处理 NCBI 的 E-utilities 服务的潜在速率限制。
## 许可证
该项目根据 BSD 3-Clause 许可证授权 - 有关详细信息,请参见 LICENSE 文件。