生物医学文献检索服务

PubMed MCP服务器提供对NCBI生物医学文献数据库的访问,包括超过3600万条来自MEDLINE、生命科学期刊和在线书籍的引用,支持搜索、检索和分析功能。

  • by Augmented-Nature
  • TypeScript
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 Augmented-Nature/PubMed-MCP-Server

使用说明

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进行全文访问

安装

先决条件

基本配置(无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的使用策略。

故障排除

  1. 服务器连接问题:

    # Test server manually
    cd pubmed-server
    node build/index.js
    # Should show: "PubMed MCP Server running on stdio"
    
  2. 无效的PMID错误:

    • 确保PMID是数字字符串
    • 示例:“12345678”✓,“PMID12345678”✗
  3. 未返回任何结果:

    • 检查搜索查询语法
    • 尝试更广泛的搜索词
    • 验证字段标签是否正确
  4. 速率限制错误:

    • 考虑获取NCBI API密钥
    • 降低请求频率
    • 尽可能使用批处理操作
  5. 全文不可用:

    • 并非所有文章在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