内容
# pubmed-mcp
[Polski](README.pl.md)
MCP 服务器暴露 NCBI PubMed/PMC APIs: E-utilities(搜索、摘要、完整记录、链接、数据库信息、拼写、引用匹配),BioC 完整文本,文献引用导出器和 PMC ID 转换器。
## 目录
- [工具列表](#工具列表)
- [环境变量](#环境变量)
- [连接](#连接)
- [本地运行](#本地运行)
## 工具列表
| 工具 | 参数 | 描述 |
|------|-----------|------|
| `search_pubmed` | `term: str, db: str = "pubmed", retmax: int = 20, retstart: int = 0, sort: Optional[str] = None, mindate: Optional[str] = None, maxdate: Optional[str] = None, datetype: Optional[str] = None` | ESearch — 匹配 UIDs 和总计数 |
| `get_summaries` | `db: str, ids: str, select: str = "*"` | ESummary — 文档元数据,用于 UID 列表 |
| `fetch_records` | `db: str, ids: str, rettype: str, retmode: "xml"\|"text" = "text", max_chars: int = 20000` | EFetch — 完整记录(摘要、FASTA、GenBank 等) |
| `find_related_links` | `ids: str, dbfrom: str = "pubmed", db: str = "pubmed", linkname: Optional[str] = None, cmd: str = "neighbor"` | ELink — 相关/交叉引用的记录 |
| `get_database_info` | `db: Optional[str] = None` | EInfo — Entrez 数据库列表,或一个数据库的字段/链接 |
| `global_query_counts` | `term: str` | EGQuery — 跨所有 Entrez 数据库的结果计数 |
| `spelling_suggestions` | `db: str, term: str` | ESpell — 拼写纠正的搜索词 |
| `match_citations` | `citations: str` | ECitMatch — 批量引用到 PMID 匹配 |
| `get_full_text` | `id: str, id_type: "pmid"\|"pmcid" = "pmid", encoding: "unicode"\|"ascii" = "unicode", max_chars: int = 20000` | BioC — PMC Open Access 文章的完整文本 |
| `export_citation` | `ids: str, db: "pubmed"\|"pmc" = "pubmed", format: "citation"\|"csl"\|"ris"\|"nbib" = "citation"` | 文献引用导出器 — 格式化引用 |
| `convert_ids` | `ids: str, idtype: Optional["pmcid"\|"pmid"\|"mid"\|"doi"] = None, versions: bool = False` | PMC ID 转换器 — 在 PMID/PMCID/MID/DOI 之间转换 |
| `raw_request` | `service: "eutils"\|"bioc"\|"citexport"\|"idconv", path: str, params: Dict[str, Any]` | 对四个底层 API 的原始 GET 请求 |
## 环境变量
| 变量 | 是否必需 | 描述 |
|---------|----------|------|
| `PUBMED_MCP_EMAIL` | 否 | 向 NCBI 报告的电子邮件(推荐使用他们的使用政策) |
| `PUBMED_MCP_API_KEY` | 否 | NCBI E-utilities API 密钥 — 将速率限制从 3 提高到 10 个请求/秒 |
## 连接
唯一要求:`uv`(https://docs.astral.sh/uv/)。无需安装其他内容。
### Claude Code
```
claude mcp add pubmed-mcp -- uvx --from git+https://github.com/dam2452/pubmed-mcp.git pubmed-mcp
```
使用可选的电子邮件/API 密钥:
```
claude mcp add pubmed-mcp -e PUBMED_MCP_EMAIL=<value> -e PUBMED_MCP_API_KEY=<value> -- uvx --from git+https://github.com/dam2452/pubmed-mcp.git pubmed-mcp
```
### Claude Desktop / 其他 MCP 客户端
```json
{
"mcpServers": {
"pubmed-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/dam2452/pubmed-mcp.git", "pubmed-mcp"],
"env": { "PUBMED_MCP_EMAIL": "<value>", "PUBMED_MCP_API_KEY": "<value>" }
}
}
}
```
推送新版本后:`uv cache clean` 并重启客户端。
## 本地运行
```
uv run --directory . pubmed-mcp
```
测试(手动):
```
uv run --directory . --with pytest pytest test/
```