使用说明
PubMed MCP服务器
一个全面的模型上下文协议(MCP)服务器,提供对PubMed的访问,PubMed是NCBI的生物医学文献数据库,从MEDLINE、生命科学期刊和在线书籍中引用了3600多万次。
由开发 增强自然
概述
PubMed MCP服务器通过16个专门的MCP工具公开完整的NCBI电子实用程序和PubMed中央API,允许您直接从启用MCP的环境中搜索、检索和分析生物医学文献。
特性
搜索和发现工具
- 搜索_文章 -按关键字、作者、期刊、日期或带页码的MeSH术语搜索PubMed
- 高级搜索 -具有特定字段搜索和布尔运算符(and/OR)的复杂查询
- 搜索_作者 -使用可选的从属关系筛选按特定作者查找文章
- search_by_journal -使用日期范围过滤在特定期刊中搜索
- search_by_mesh_terms -使用带有主要主题过滤的医学主题标题(MeSH)进行搜索
- 获取_渲染_文章 -获取特定领域最近发表的文章(过去30-365天)
文章检索工具
- 获取文章详细信息 -获取特定PMID的全面元数据和摘要
- 获取_摘要 -使用基本元数据通过PMID检索文章摘要
- get_full_text -在可用时从PubMed Central(PMC)检索全文
- 批次_物品_预订 -高效检索多篇文章(最多200个PMID)
引用和参考工具
- get_sited_by -查找引用特定PMID的文章
- 获取引用 -获取文章的参考文献列表
- get_similar_articles -根据内容相似性查找相关文章
- 出口创汇 -以各种格式导出引文(APA、MLA、芝加哥、BibTeX、RIS)
实用工具
- validate_pmid -验证PubMed ID格式并检查文章是否存在
- 转换器标识符 -在PMID、DOI和PMC ID之间转换
数据质量特征
- 实时访问3600多万篇生物医学引文
- 自动速率限制(3个请求/秒,无API键,10个请求/s,有键)
- 具有重试逻辑的全面错误处理
- 支持所有PubMed搜索字段和运算符
- 用于精确医疗查询的MeSH术语集成
- 如果可用,可通过PubMed Central进行全文访问
安装
先决条件
- Node.js 16+(从以下位置安装 nodejs.org)
- 可选:NCBI API键用于更高的速率限制(从 NCBI帐户设置)
基本配置(无API密钥)
{
"mcpServers": {
"pubmed-server": {
"command": "node",
"args": ["path/to/pubmed-server/build/index.js"],
"autoApprove": [
"search_articles",
"get_article_details",
"get_abstract",
"validate_pmid"
]
}
}
}
使用API密钥(建议用于更高的速率限制)
{
"mcpServers": {
"pubmed-server": {
"command": "node",
"args": ["path/to/pubmed-server/build/index.js"],
"env": {
"NCBI_API_KEY": "your_api_key_here",
"NCBI_EMAIL": "your_email@example.com"
},
"autoApprove": [
"search_articles",
"get_article_details",
"get_abstract",
"validate_pmid",
"search_by_author",
"search_by_journal"
]
}
}
}
使用示例
搜索最近的CRISPR研究
{
"query": "CRISPR gene editing",
"max_results": 10,
"sort": "pub_date"
}
获取文章详细信息
{
"pmid": "41138228"
}
具有多个条件的高级搜索
{
"title": "machine learning",
"author": "Smith J",
"mesh_terms": ["Artificial Intelligence", "Diagnosis"],
"boolean_operator": "AND",
"max_results": 50
}
按所属作者搜索
{
"author_name": "Smith J",
"affiliation": "Harvard Medical School",
"max_results": 50
}
在特定期刊内搜索
{
"journal_name": "Nature",
"keywords": "cancer immunotherapy",
"date_from": "2024/01/01",
"date_to": "2025/12/31",
"max_results": 25
}
按MeSH术语搜索
{
"mesh_terms": ["COVID-19", "Vaccines"],
"major_topic_only": true,
"max_results": 50
}
获取热门文章
{
"field": "artificial intelligence in medicine",
"days": 30,
"max_results": 20
}
从PMC获取全文
{
"pmcid": "PMC1234567"
}
批量文章查找
{
"pmids": ["41138228", "41137959", "41137488"]
}
BibTeX中的导出引文
{
"pmid": "41138228",
"format": "bibtex"
}
查找引用文章
{
"pmid": "12345678",
"max_results": 100
}
标识符之间的转换
{
"identifier": "10.1080/15476286.2025.2577449",
"identifier_type": "doi"
}
API 参考
搜索参数
常用参数:
query-搜索查询(关键字、短语、字段标签)max_results-结果数(1-1000,默认值:20)start-分页起始位置(默认值:0)sort-排序顺序:相关性、发布日期、作者、期刊
日期参数:
date_from-开始日期(YYYY/MM/DD格式)date_to-结束日期(YYYY/MM/DD格式)
字段标签:
[Title]-文章标题[Author]-作者姓名[Journal]-期刊名称[MeSH Terms]-医学主题标题[Abstract]-摘要文本[Affiliation]-作者隶属关系[Publication Type]-出版物类型[DOI]-数字对象标识符
例子: "Smith J[Author] AND cancer[Title]"
MeSH 主题词
医学主题词表(MeSH)是NLM控制的词汇词库,用于对文章进行索引。使用MeSH术语可以提供比关键字搜索更精确的搜索结果。
常见的MeSH类别:
- 疾病
- 化学品和药品
- 分析、诊断和治疗技术
- 解剖学
- 生物体
- 精神病学与心理学
- 现象和过程
引文格式
服务器支持多种引用格式:
- 美国心理学会 -美国心理学会
- 现代语言协会 -现代语言协会
- 芝加哥 -芝加哥风格手册
- BibTeX -LaTeX书目格式
- RIS -研究信息系统格式
响应格式
所有工具都返回结构化JSON数据,包括:
- 文章元数据(PMID、标题、作者、期刊、发表日期)
- 摘要文本(如有)
- MeSH术语和关键字
- DOI和其他标识符
- 引文信息
- 全文可用性状态
PMID格式
所有PMID必须是数字字符串(例如“12345678”)
错误处理
该服务器包括全面的错误处理功能,用于:
- 网络问题:使用指数回退自动重试
- 速率限制:自动调节以符合NCBI政策
- 无效参数:清除验证失败的错误消息
- API错误:正确的HTTP状态码处理
- 缺失数据:巧妙处理不可用字段
常见的错误响应包括:
{
"error": "Invalid PMID format: abc123",
"isError": true
}
发展
从源头构建
# Install dependencies
npm install
# Build TypeScript to JavaScript
npm run build
# Development with watch mode
npm run watch
关键依赖关系
@modelcontextprotocol/sdk-MCP服务器框架axios-API请求的HTTP客户端xml2js-PubMed响应的XML解析- TypeScript用于类型安全和开发
数据源
电子实用程序API: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/ PubMed Central API: https://www.ncbi.nlm.nih.gov/pmc/tools/developers/ 覆盖:来自MEDLINE、生命科学期刊和在线书籍的3600多万次引用 数据更新:实时获取最新出版物
速率限制
- 没有API密钥:每秒3个请求
- 带API键:每秒10个请求
服务器会自动处理速率限制,以符合NCBI的使用策略。
故障排除
-
服务器连接问题:
# Test server manually cd pubmed-server node build/index.js # Should show: "PubMed MCP Server running on stdio" -
无效的PMID错误:
- 确保PMID是数字字符串
- 示例:“12345678”✓,“PMID12345678”✗
-
未返回任何结果:
- 检查搜索查询语法
- 尝试更广泛的搜索词
- 验证字段标签是否正确
-
速率限制错误:
- 考虑获取NCBI API密钥
- 降低请求频率
- 尽可能使用批处理操作
-
全文不可用:
- 并非所有文章在PMC中都有全文
- 检查物品是否有PMC ID
- 有些文章可能在付费墙后面
研究用例
- 文献综述:全面检索生物医学文献
- 引文分析:跟踪研究影响的引用和参考文献
- 系统评价:批量检索和分析多篇文章
- Meta分析:高效地从多项研究中收集数据
- 研究趋势:确定热门话题和最新出版物
- 作者研究:查找特定研究人员的所有出版物
- 期刊分析:分析特定期刊的出版模式
- 基于MeSH的发现:精确的医学主题搜索
合规与道德
该服务器提供对PubMed公开生物医学文献的访问。用户应:
- 遵循研究和出版的机构政策
- 尊重全文文章的版权和许可条款
- 在出版物中适当引用来源
- 将数据用于合法的研究和教育目的
- 遵守NCBI的使用政策和费率限制
许可证
MIT许可证-有关详细信息,请参阅许可证文件
数据源:PubMed/NCBI(https://pubmed.ncbi.nlm.nih.gov) API文档: https://www.ncbi.nlm.nih.gov/books/NBK25501/ 服务器版本: 1.0.0