@cyanheads/pubmed-mcp-server

中文文档
2.12.0发布于 2026/11/03Apache-2.0TypeScriptES Module近 30 天下载 1.6万

搜索 PubMed/Europe PMC,取出文章和全文(PMC/EPMC/Unpaywall),引文,MeSH名词通过MCP. (原始内容存档于2012-10-12). STIO or Streamable HTTP.

中文使用文档
文档目录29 节
  1. 概览
  2. 工具
  3. 资源
  4. 提示
  5. 能力参考
  6. pubmed_search_articles 工具
  7. pubmed_fetch_articles 工具
  8. pubmed_fetch_fulltext 工具
  9. pubmed_europepmc_search 工具
  10. pubmed_europepmc_fetch 工具
  11. pubmed_fetch_citation_metrics 工具
  12. pubmed_format_citations 工具
  13. pubmed_find_related 工具
  14. pubmed_spell_check 工具
  15. pubmed_lookup_mesh 工具
  16. pubmed_lookup_citation 工具
  17. pubmed_convert_ids 工具
  18. pubmed://database/info 资源
  19. research_plan 提示
  20. 特征
  21. 开始
  22. 配置
  23. 运行服务器
  24. 地方发展
  25. 夹克
  26. 项目结构
  27. 发展指南
  28. 捐款
  29. 许可证

@ cyanheads/ pubmed- mcp- 服务器

搜索 PubMed/Europe PMC,取出文章和全文(PMC/EPMC/Unpaywall),引文,MeSH名词通过MCP. (原始内容存档于2012-10-12). STIO or Streamable HTTP.

12个工具 • 1个资源 • 1个快件

Version License Docker MCP SDK npm TypeScript Bun

Install in Claude Desktop Install in Cursor Install in VS Code

Framework


概览

PubMed、PubMed Central和欧洲PMC的生物医学文献。 搜索它,获取元数据和全文,解决识别符和部分引用,格式引用,以及 MeSH 词汇中的地面查询. 运行为 stdio 进程,本地可流的 HTTP 服务器,或上面的公共主机端点. 船舶 pubmed-guide 代理技能( e)skill://pubmed-guide/SKILL.md),MCP客户端读取了PubMed查询语法,PMC外的DOI-to-PMID路由,引用列表解析,引用计数,和全文缺失.

工具

工具说明
pubmed_search_articles搜索 PubMed 有完整的查询语法、结构化过滤器、日期范围以及可选摘要
pubmed_fetch_articles由 PMID 获取文章元数据: 抽象、 作者、 日记、 MeSH 条款、 数据库加入, 如审判登记 ID 、 赠款、 作者集体调查员 、 链接撤回和更正通知
pubmed_fetch_fulltext由 PMID 、 PMCID 或 DOI 获取全文, 从 PMC 返回欧洲 PMC 到 Unpaywall
pubmed_europepmc_search搜索欧洲PMC 预印,专利,阿格里可拉,和开放访问记录 PubMed 不携带
pubmed_europepmc_fetch获取完整的欧洲PMC记录,包括未整理的抽象, 如 records: [{ source, epmcId }]
pubmed_fetch_citation_metrics由 PMID 获取 NIH iCite 引用参数: 相对引用率、 NIH 百分位数、 引用数和率
pubmed_format_citations在APA 7th, MLA 9th, BibTeX, RIS, 或温哥华(ICMJE/NLM)中采用格式引用,并附带撤回和更正通知
pubmed_find_related为 PMID 查找类似文章、 引用文章或参考文献
pubmed_spell_check通过 NCBI ESpell 校正一个拼错的 PubMed 查询
pubmed_lookup_mesh查找带有树号、范围说明和条目名的 MeSH 标题
pubmed_lookup_citation通过 ECitMatch 解决部分引用 PMID 的问题,每次最多25次
pubmed_convert_ids通过 PMC ID 转换器在 DOI, PMID 和 PMCID 之间转换

资源

资源说明
pubmed://database/infoPubMed 数据库元数据通过 EInfo( 域列表, 记录计数, 最后更新)

提示

提示说明
research_plan制定一个结构化的四阶段生物医学研究计划

能力参考

pubmed_search_articles 工具

  • 完整 PubMed 查询语法加过滤器(作者、期刊、 MeSH、 出版类型、语言、物种、抽象、免费全文)和出版/修改/Entrez日期范围
  • query 是可选的:使用作者、日记、 MeSH 或 出版物类型的过滤器,过滤器单独进行搜索(例如,日记在日期范围内的输出)
  • 每页最多1 000个结果,抵消最多9 998个结果,或 maxResults: 0 单凭比赛数; summaryCount 增加最多50个点击的简介。 在封顶处会提供更大的页码,并注明要继续何处的提示
  • 报告 totalCount,则 effectiveQuery 普布迈德跑,和 appliedFilters
  • 拒绝在 PubMed 调用前的空白过滤值、 无法使用的日期和倒置的日期范围

pubmed_fetch_articles 工具

  • 每通电话最多200个PMID;失事情况列于 unavailablePmids
  • 摘要、作者、期刊、DOI、出版物类型、链接撤回/erratum/评论通知和链接; MeSH默认条件,通过 includeGrants,以及集体作者的成员(其 InvestigatorList数以千计的一些联合体审判) includeInvestigators
  • 撤回、更正或被质询的文章以与 pubmed_format_citations,直接在其标题下
  • dataBanks (c) 逐字列出记录的审判登记和数据储存(Clinical Curritics.gov NCT ID、GenBank和PDB加入、Dryad DOIs) pubmed_search_articles 页:1 <accession>[si] 找到其他记录
  • recordType 从 Bookshelf 章节和书籍中分离出期刊文章; 选入 maxResponseCharacters 推迟至 deferred.ids

pubmed_fetch_fulltext 工具

  • pmcids, (中文(简体) ), pmids,以及 dois 每次通话最多50个不同的识别码:前10个被取出,其余被运回 overLimit 后续电话。 每一个都是针对PMC,然后是欧洲PMC,然后是Unpaywall(需要) UNPAYWALL_EMAIL),其中多篇文章被取出并退回一次 viaSource 命名响应的分级
  • source: "pmc" 返回部分(正文,然后是背面事项,如承认、声明和附录)、表格和数字; source: "unpaywall" 返回最佳 HTML 或 PDF 文本正文
  • 获取欧洲PMC全文,以便记录欧洲PMC标记打开,包括预印;文章载有 licenses 他们的PMCJATS状态
  • 密斯带有一个类型 reason 财务报告和审定财务报表 triedTiers· ; sections, (中文(简体) ), maxSections, (中文(简体) ), maxCharacters, (中文(简体) ), overflowMode,以及 maxResponseCharacters 约束反应, truncation 报告被切断的东西 sectionCap 名称 maxSections 切换

pubmed_europepmc_search 工具

  • 添加预印( I)PPR专利(PAT)和阿格里科拉(AGR改为: MED 财务报告和审定财务报表 PMC; 默认为 MED, (中文(简体) ), PMC, (中文(简体) ), PPR
  • 通过光标 cursorMark 编号 : nextCursorMark,每页最多100个;封顶处提供更大的页码,并注明要继续何处。 摘要以 400 个字符片段来取
  • 可选 sort 逗号分隔 <field> asc|desc 键; relevance 是默认的顺序, 而一个不能使用的欧洲 PMC 类 europepmc_invalid_input
  • 击打携带 license 财务报告和审定财务报表 hasFullTextXml
  • 未注册时间 EUROPEPMC_ENABLED=false

pubmed_europepmc_fetch 工具

  • 最多25个记录 records: [{ source, epmcId }],每对复制 从搜索点击, 与完整的抽象, license,以及 hasFullTextXml; 未解决的编号在 notFound; 选入 maxResponseCharacters 推迟至 deferred.records
  • 未注册时间 EUROPEPMC_ENABLED=false

pubmed_fetch_citation_metrics 工具

  • 每拨电话最多可达1 000个PMID;前200个识别器被取出,其余返回 overLimitPMIDs NIH iCite没有记录 unavailablePmids
  • 相对引用比率(带有临时旗帜)、NIH百分位数、引用数和比率、翻译潜力、MeSH类股份和临床引用
  • iCite 不标出撤销; 请检查 pubmed_fetch_articles 通知时
  • 资料来源: NIH iCite (英语)

pubmed_format_citations 工具

  • 每个电话最多50个PMID,任何组合 apa, (中文(简体) ), mla, (中文(简体) ), bibtex, (中文(简体) ), ris,以及 vancouver
  • 书本记录作为已编辑的书籍引用,每一章按其上次修订或提交日期注明;无法获取的PMID报告为无法获取
  • 温哥华用缩放的引用医学形式写出页面范围(1637-1645 → 1637-45页:1 issn 国际空间研究所 SN 携带日记连接ISSSN和RIS TI 减少后继期
  • NCBI与一篇文章的链接 notices (b) 温哥华添加了以下内容: Retraction in: 编号 : Erratum in: 注和APA 缩出括号

pubmed_find_related 工具

  • similar, (中文(简体) ), cited_by,或 references,每页最多可有50个相抵平面。 在封顶处会提供更大的页码,并注明要继续何处的提示
  • 回溯到欧洲PMC,然后是OpenAlex, 并指定响应的提供者; 失败为 all_providers_failed 如果没有人可以

pubmed_spell_check 工具

  • 回返 original, (中文(简体) ), corrected,以及 hasSuggestion; 校正已就地, 因此字段标记、 运算符、 间隔和基因符号保持为正文, 而像作者首字母这样的单个字母永远不会被换为另一个
  • 索引字段标记的值( Q)aged[mh], (中文(简体) ), zhang y[au], (中文(简体) ), free full text[sb])保留为书面;自由文本字段([tiab], (中文(简体) ), [ti], (中文(简体) ), [tw])仍在更正
  • 在零重击或薄搜索后运行, 然后重试 pubmed_search_articles 与 corrected

pubmed_lookup_mesh 工具

  • 按名称或自由文字术语排列的描述符,准确的标题匹配先被标注(描述符,用于药物类标题);每页最多50个,通过 nextOffset。在封顶处提供更大的页码,并注明要继续何处的通知
  • 记录携带他们的 MeSH 独有的ID(meshId,比如说. D000072657在Entrez UID旁; includeDetails (默认)添加树号、范围说明和条目词

pubmed_lookup_citation 工具

  • 每通电话最多25个部分引文;需要一份日记或四位数年份,以及第一页的音量,作者应使匹配更清晰
  • 每个都独立匹配,然后回来 matched, (中文(简体) ), not_found,或 ambiguous,带有回收细节

pubmed_convert_ids 工具

  • 每通电话最多50个身份证,全部申报 idType (单位:千美元)doi, (中文(简体) ), pmid, (中文(简体) ), pmcid);只有 PMC 索引文章解决
  • 每个ID一个成功或出错行,按顺序排列,所以部分批次永远不会失败

pubmed://database/info 资源

  • 现场信息呼叫 pubmed 数据库,返回为 application/json
  • count, (中文(简体) ), lastUpdate,以及 fields[],其名称为搜索标记 pubmed_search_articles 接受

research_plan 提示

  • 参数 : title, (中文(简体) ), goal,以及 keywords 需要; organism 财务报告和审定财务报表 includeAgentPrompts 选项
  • 返回四阶段研究计划; includeAgentPrompts: "true" 在其9个分步骤中每个分步骤下增加一个代理指导区块,其中2个在工具上:文献审查名称 pubmed_search_articles 财务报告和审定财务报表 pubmed_lookup_mesh,以及解释步骤名称 pubmed_search_articles

特征

建造在 @cyanheads/mcp-ts-core: stdio和可流式的 HTTP 传输器,可插接式(none 编号 : jwt 编号 : oauth),可互换存储(in-memory, (中文(简体) ), filesystem, (中文(简体) ), Supabase, (中文(简体) ), Cloudflare KV/R2/D1),结构化记录,可选择的OpenTeleometry tracking.

PubMed 特性 :

  • NCBI E-用途(ESearch, EFetch, ESummary, ELink, ESpell, EInfo, ECitMatch)和PMC ID转换器,欧洲PMC, OpenAlex和Unpaywall填补了漏洞
  • 共享 NCBI 请求队列: 启动节奏请求, 封顶货币, 冷却器在 NCBI 429 之后将每个呼叫者保存, 以及一个覆盖队列等待和重试的最后期限
  • 为 PubMed 不一致的记录构建的 XML 解析: 结构化摘要、 缺失字段、 不同日期格式
  • 豁免标识符:一个零加法的PMID解决,因为它在每个工具中拼写一个; pubmed_fetch_fulltext 并且不区分大小写和 PMC ID 的匹配 PMC 前缀
  • 手卷引文格式化(APA, MLA, BibTeX, RIS, 温哥华),无依赖性

方便代理输出 :

  • 答复中的证据:源标签、全文的许可字段和欧洲PMC结果、Unpaywall结果的最佳警告、搜索时的有效平息回声,因此特工可以判断信任什么
  • Graceful 部分失败:批量工具返回每个项目的成功/错误行,而不是请求失败,并带有结构化状态代码和可操作的下一步文本
  • 歧视性产出合同: source: "pmc" | "unpaywall"键入 unavailable 理由, viaSource 财务报告和审定财务报表 triedTiers 字段,因此调用数据分支,而不是字符串解析

开始

连接到主机实例, 没有安装 :

claude mcp add --transport http pubmed-mcp-server https://pubmed.caseyjhand.com/mcp

或者在当地运行它:

claude mcp add pubmed-mcp-server -- npx -y @cyanheads/pubmed-mcp-server

对于其他客户端,请将此添加到 MCP 配置文件中 :

{
  "mcpServers": {
    "pubmed-mcp-server": {
      "command": "npx",
      "args": ["-y", "@cyanheads/pubmed-mcp-server"]
    }
  }
}

一个 NCBI API 密钥 内 NCBI_API_KEY 将标准限制从每秒3个请求提高到10个请求(-e NCBI_API_KEY=your-key,或一个 env ) (中文(简体) ). 对于 Docker 或源构建,请参见 运行服务器。 。 。 .

配置

变量说明默认
NCBI_API_KEYNCBI API密钥;将速率限制从 3 req/s提高到 10 req/s. NCBI 计算每个密钥的限值(每个IP地址不包含一个),因此进程共享密钥或地址共享.无
NCBI_ADMIN_EMAIL按照NCBI的建议,与 NCBI 请求发送的电子邮件联系.无
NCBI_REQUEST_DELAY_MSNCBI请求之间的最小间隔开始,以毫秒计.400 (单位:千美元)120 带有密钥)
NCBI_MAX_CONCURRENT最大同时飞行 NCBI请求.8
NCBI_MAX_RETRIES重试失败 NCBI 请求的尝试 .6
NCBI_TIMEOUT_MS每个请求HTTP超时,以毫秒计.30000
NCBI_TOTAL_DEADLINE_MSNCBI呼叫超过队列等待、重复和后退的最后期限,以毫秒计。 一个不能及时开始的电话立刻被拒绝.60000
UNPAYWALL_EMAIL为 Unpaywall 联系电子邮件 。 设置它使Unpaywall级 pubmed_fetch_fulltext 用于非PMC DOI.无
UNPAYWALL_TIMEOUT_MS按请求超时获取 Unpaywall 检索和内容, 以毫秒计 .20000
EUROPEPMC_ENABLED设定 false 禁用每个欧洲PMC呼叫: 两个欧洲PMC工具都没有注册, pubmed_fetch_fulltext 跳过这层,和 pubmed_find_related 跳过后退.true
EUROPEPMC_EMAIL与欧洲 PMC 请求发送的可选联系电子邮件 .无
EUROPEPMC_REQUEST_DELAY_MS欧洲PMC请求之间的最小差距开始,以毫秒计.200
EUROPEPMC_MAX_RETRIES重试尝试失败的欧洲 PMC 请求 .3
EUROPEPMC_TIMEOUT_MS每个欧洲PMC电话请求超时,以ms计.20000
MCP_TRANSPORT_TYPE运输: stdio 或者说 http。 。 。 .stdio
MCP_HTTP_PORTHTTP 服务器端口.3010
MCP_SESSION_MODEHTTP 会话模式 : stateless, (中文(简体) ), stateful,或 auto。 。 。 .stateless
MCP_AUTH_MODE认证 : none, (中文(简体) ), jwt,或 oauth。 。 。 .none
MCP_LOG_LEVEL日志级别 (debug, (中文(简体) ), info, (中文(简体) ), warning, (中文(简体) ), error(见a/c.5/49/70,附件).info
LOGS_DIR日志文件目录(只有Node.js).<app-root>/logs
STORAGE_PROVIDER_TYPE存储后端 : in-memory, (中文(简体) ), filesystem, (中文(简体) ), supabase, (中文(简体) ), cloudflare-kv/r2/d1。 。 。 .in-memory
OTEL_ENABLED启用 打开几何。 。 。 .false

见 .env.example 用于每个服务器设置和通用框架覆盖.

运行服务器

地方发展

要求数 Bun v1.4.0 (英语) 或更高(或Node.js v24+).

  • 克隆并安装数字 :

    git clone https://github.com/cyanheads/pubmed-mcp-server.git
    cd pubmed-mcp-server && bun install
    cp .env.example .env   # set NCBI_API_KEY, NCBI_ADMIN_EMAIL, and UNPAYWALL_EMAIL as needed
    
  • 构建和运行制作版本数字 :

    # One-time build
    bun run rebuild
    
    # Run the built server
    bun run start:http
    # or
    bun run start:stdio
    
  • 运行检查和测试数字 :

    bun run devcheck  # Lints, formats, type-checks, and more
    bun run test      # Runs the test suite
    

夹克

docker run --rm -p 3010:3010 ghcr.io/cyanheads/pubmed-mcp-server:latest

图像默认为 HTTP 传输、 无国籍会话模式和日志到 /var/log/pubmed-mcp-server运行到一个 MCP 客户端的 stdio,使用 "command": "docker" 与 "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/pubmed-mcp-server:latest"]为了在当地建设, docker build -t pubmed-mcp-server .; OpenTeleometry 端点依赖性默认安装——用 --build-arg OTEL_ENABLED=false 以略去它们.

项目结构

目录目的
src/mcp-server/tools工具定义*.tool.ts) (中文(简体) ). PubMed、PMC、欧洲PMC和NIH iCite共有12个工具.
src/mcp-server/resources资源定义。 数据库信息资源.
src/mcp-server/prompts快速定义。 研究计划迅速.
src/services/ncbiNCBI E-用量服务层——API客户端,队列,解析器,用于事由.
src/services/europe-pmc欧洲PMC服务——搜索+ fullTextXML JATS检索. 重用 NCBI JATS 解析器 .
src/services/unpaywallUnpaywall service — DOI — OA位置分辨率和内容获取 (HTML/PDF).
src/services/openalexOpenAlex 服务——最后的提供者 pubmed_find_related。 。 。 .
src/config服务器特定环境变量与Zod解析并验证.
tests/单位和综合测试,反映 src/ 结构.
skills/发表 pubmed-guide 代理技能,通过MCP服务,并在包件中发运 .mcpb 捆绑,和多克的图像.

发展指南

见 CLAUDE.md 发展准则和建筑规则。 简本:

  • 搬运工投掷,框架渔获量——否 try/catch 在工具逻辑中
  • 使用 ctx.log 用于伐木, ctx.state 用于存储
  • 登记册中的新工具和资源 createApp() 数组在 src/index.ts
  • 环绕外部 API 调用: 验证 生 → 规范到域类型 → 返回输出计划; 永远不要编织缺失的字段

捐款

问题值得欢迎。 提交前进行检查和测试:

bun run devcheck
bun run test

许可证

这个项目根据Apache 2.0许可证获得许可. 见 自由主义 详细文件.

版本与发布记录

@cyanheads/pubmed-mcp-server 共发布 121 个版本,首次发布于 2025/05/24;过去 12 个月发布了 100 个版本。

版本发布日期距今
2.12.0latest2026/11/037 天前
2.11.12026/10/2616 天前
2.11.02026/10/2516 天前
2.10.232026/10/2318 天前
2.10.222026/10/1329 天前
2.10.212026/10/101 个月前

关于 @cyanheads/pubmed-mcp-server 的常见问题

@cyanheads/pubmed-mcp-server 是什么?

搜索 PubMed/Europe PMC,取出文章和全文(PMC/EPMC/Unpaywall),引文,MeSH名词通过MCP. (原始内容存档于2012-10-12). STIO or Streamable HTTP.

如何安装 @cyanheads/pubmed-mcp-server?

在项目目录运行 npm install @cyanheads/pubmed-mcp-server,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 pubmed-mcp-server,可以用 npx pubmed-mcp-server 直接运行。

@cyanheads/pubmed-mcp-server 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cyanheads/pubmed-mcp-server 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cyanheads/pubmed-mcp-server 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cyanheads/pubmed-mcp-server 可以商用吗?

@cyanheads/pubmed-mcp-server 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cyanheads/pubmed-mcp-server 的下载量有多少?

根据 npm 官方下载统计,@cyanheads/pubmed-mcp-server 在 2026/10/11 – 2026/11/09 这 30 天内被下载 15,646 次,日均约 522 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cyanheads/pubmed-mcp-server 还在维护吗?

最新版本 2.12.0 发布于 2026/11/03(7 天前);至今共发布 121 个版本,其中过去 12 个月发布了 100 个;首次发布于 2025/05/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。