mcpField
P
pubcrawl

pubcrawl

本地服务
github.com/nickjlamb健康医疗152 周前更新

关于 pubcrawl

PubCrawl 是面向临床人员、研究人员和医学文案人员的 MCP 服务,提供可核查的生物医学来源。它可搜索文献和临床试验、获取美国与英国药品标签,并对照对应章节。

主要功能

  1. 01搜索 PubMed 和 Europe PMC
  2. 02获取论文摘要及开放全文
  3. 03查找并查看临床试验
  4. 04获取美国和英国药品标签
  5. 05对比标签中的对应章节

适用场景

  1. 01查找某主题的近期论文或预印本
  2. 02比较药品在美英标签中的适应症
  3. 03按病症和阶段查找招募中的试验
  4. 04获取试验结局和入组标准

MCP 相关

它向 MCP 客户端提供生物医学文献、美国和英国药品标签及 ClinicalTrials.gov 工具。支持 stdio 和无状态 Streamable HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"nickjlamb-pubcrawl": {
"command": "npx",
"args": [
"-y",
"@pharmatools/pubcrawl"
],
"env": {
"NCBI_API_KEY": "<NCBI_API_KEY>"
}
}
}
}
启动命令npx -y @pharmatools/pubcrawl
需要配置的环境变量
NCBI_API_KEY密钥NCBI API key for higher rate limits (10 req/s vs 3 req/s). Optional — get one free at https://www.ncbi.nlm.nih.gov/account/

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@pharmatools/pubcrawl2.6.4

工具

14

收录的工具列表 · 更新于 2 周前

参数类型必填说明
sortenum否排序顺序relevance | date
querystring是PubMed 搜索查询
dateTostring否结束日期(YYYY/MM/DD)
dateFromstring否开始日期(YYYY/MM/DD)
maxResultsnumber否最大结果数
articleTypestring否文章类型筛选条件(例如:综述、临床试验)

详细介绍

PubCrawl — 为 AI 助手提供 PubMed、药品标签和临床试验

一个 MCP 服务,让 AI 助手访问 PubMed、Europe PMC、FDA 和 UK 药品标签,以及 ClinicalTrials.gov。

一场经过同行评审的文献酒吧巡游——从文献到标签,再到试验。

ci npm downloads node MCP Registry Glama MCP server Listed on mcpservers.org DOI License: MIT PRs welcome

快速开始 · 工具 · 示例 · 架构 · 路线图 · 参与贡献


✨ 什么是 PubCrawl?

PubCrawl 将你的 AI 助手(Claude Desktop、Cursor 或任何兼容 MCP 的客户端)直接连接到临床医生和研究人员实际使用的原始来源,让你可以用日常语言提问,并获得有 PubMed、Europe PMC、FDA/UK 药品标签和 ClinicalTrials.gov 作为依据的回答,其中包含可供验证的真实 PMID、NCT ID 和 DOI。

每个工具都是对官方 API 的轻量、确定性封装。内容绝不凭空捏造;每条结果都会注明来源。

其他 MCP 服务都做不到的事

询问 “比较 semaglutide 在美国和英国的标签”,PubCrawl 就会获取两份最新标签并映射对应章节——美国的 Indications and Usage ↔ 英国的 4.1 Therapeutic indications,依此类推——让差异清晰可见,而不是想当然:

请 MCP 客户端比较 semaglutide 在美国和英国的标签:PubCrawl 调用 compare_labels,从 openFDA/DailyMed 获取美国处方信息,并从 eMC 获取英国 SmPC,然后并列返回两份适应症列表——美国有三项适应症,包括降低心血管风险和肾脏风险;英国只有一项适应症,心血管和肾脏结局仅作为第 4.4、4.5 和 5.1 节的交叉引用出现。

美国处方信息英国 SmPC
适应症血糖控制 · 对已确诊 CVD 的 T2D 患者 降低 MACE 风险 · 对患有 CKD 的 T2D 患者 降低持续性 eGFR 下降、ESKD 和 CV 死亡风险仅用于血糖控制——CV 和肾脏结局仅作为 §4.4/4.5/5.1 的交叉引用出现,并非适应症
禁忌症个人或家族 MTC 或 MEN 2 病史 · 过敏反应仅过敏反应

在美国标签中获批的心血管声明,在英国却意味着一种未获批适应症。如果你为这两个市场撰写、审核或检查医疗文案,这一差异就是全部工作所在——而 compare_labels 是唯一能揭示这一点的 MCP 工具。

其他
  • 🔬 文献、药品说明书和临床试验领域共 14 个工具
  • 🧾 设计上可验证——结果链接回 DailyMed、eMC、PubMed 和 ClinicalTrials.gov
  • 📰 通过 Europe PMC 获取预印本——展示正式发表前的研究成果
  • 🆓 无需 API 密钥(可选的免费 NCBI 密钥可提高 PubMed 速率限制)
  • 🧪 完全类型化、经过测试并通过 CI 检查——每次发布时,文献检索均由 OpenGATE 验证,药品说明书和试验则由仓库内的 保真度基准测试 验证

由 PharmaTools.AI 构建。


🚀 快速开始(60 秒)

1. 将 PubCrawl 添加到客户端配置中——无需安装,首次运行时由 npx 获取。

对于 Claude Desktop,编辑 claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "pubcrawl": {
      "command": "npx",
      "args": ["-y", "@pharmatools/pubcrawl"]
    }
  }
}

2. 重启客户端。 PubCrawl 会出现在 + → 连接器 下。

3. 开始提问:

“比较阿托伐他汀在美国和英国的药品说明书,并查找近期针对该药物的 III 期试验。”

就是这么简单。→ 更多示例 · API 密钥及其他选项


🧰 工具

📚 文献
工具功能
search_pubmed按日期范围、文章类型和排序方式筛选并搜索 PubMed。返回 PMID、标题、作者、期刊和 DOI。
search_europepmc搜索 Europe PMC——其收录范围比 PubMed 更广,也索引预印本(bioRxiv、medRxiv)和专利。每条结果都包含摘要片段、引用次数、开放获取状态和预印本标记。可筛选仅显示预印本或开放获取内容。
get_abstract获取文章的完整结构化摘要——按带标签的章节(背景、方法、结果、结论)拆分,并附有关键词和 MeSH 主题词。
get_full_text从 PubMed Central 获取开放获取文章的全文,包括解析后的章节、图表标题和参考文献计数。
find_related使用 PubMed 的邻近算法查找相似文章,并按相关性得分排序。
format_citation生成 APA、Vancouver、Harvard 或 BibTeX 格式的引文。
trending_papers查找某个主题的近期论文,可选筛选 Nature、Science、Cell、NEJM、Lancet、JAMA 等高影响力期刊。
💊 药品说明书
工具功能
resolve_drug_name将商品名转换为通用名(或将通用名转换为美国商品名),并提供药物类别和常见适应症。通过 RxNorm/openFDA 确定性地处理,不使用 AI。
get_uspi通过 openFDA 获取美国处方信息(引用来源为 DailyMed)中的章节——适应症、用法用量、警告、禁忌症等。
get_smpc从 eMC 获取英国药品特性概要——相当于美国处方信息的英国版本,包含编号的 SmPC 章节。
compare_labels并列比较同一药物在美国(USPI)和英国(SmPC)的药品说明书,并配对对应章节(美国适应症 ↔ 英国 4.1)。缺失的部分总会说明原因,被截断的章节会标记为 truncated,us_drug / uk_drug 可指定各市场使用的不同名称(Farxiga / Forxiga)。
search_by_indication查找获批用于某种疾病的药物。通过 openFDA 搜索 FDA 药品说明书,然后交叉核对 eMC 上的英国可用情况。
🧫 临床试验
工具功能
search_trials搜索 ClinicalTrials.gov 上的临床试验。可按疾病、干预措施、招募状态和试验分期筛选。返回 NCT ID、申办方、受试者人数和链接。
get_trial根据 NCT ID 获取临床试验的完整详情——入选标准、研究设计、试验组、主要/次要结局、地点及关联的 PubMed ID。

💬 示例

连接后,只需自然地提问:

文献

  • “在 PubMed 中搜索近期关于 semaglutide 的临床试验。”
  • “在 Europe PMC 中搜索关于 GLP-1 受体激动剂的预印本,并按引用次数从高到低排序。”
  • “获取 PMID 38127654 的摘要,然后查找相关论文,并用 Vancouver 格式引用所有论文。”
  • “本月 CRISPR 基因疗法领域有哪些热门论文?仅限高影响力期刊。”
  • “提取那篇 PMC 文章的全文,并总结方法部分。”

药品标签

  • “获取 metformin 的 FDA 处方信息——只要适应症和警告。”
  • “提取 atorvastatin 的英国 SmPC。”
  • “比较 lisinopril 在美国和英国的标签,并突出差异。”
  • “Ozempic 的通用名和药物类别是什么?”
  • “哪些药物同时获准在美国和英国用于治疗 2 型糖尿病?”

临床试验

  • “查找正在招募的 pembrolizumab 乳腺癌 3 期试验。”
  • “获取 NCT03086486 的入选标准和主要结局。”

跨来源(PubCrawl 的优势所在)

  • “针对 semaglutide:总结美国标签中的心血管适应症,然后查找关键性试验及其 NEJM 论文。”

🏗 架构

分为三层——工具负责注册 MCP 接口,lib 客户端负责调用各个外部 API,共享的缓存和解析器则确保响应快速且一致。

PubCrawl 架构:MCP 客户端通过 stdio 或 streamable HTTP 连接到 PubCrawl 服务,其 14 个工具分为文献、药品标签和临床试验三类。每类工具都直接调用官方 API——NCBI E-utilities、Europe PMC、openFDA 和 DailyMed、英国 eMC 以及 ClinicalTrials.gov——并由共享的 LRU 缓存、XML/JATS/SPL 解析器和速率限制机制提供支持。每个结果都会附带自身标识符:PMID、NCT 或 DOI。此流程中没有模型参与;不会编造任何内容。

每个工具文件都会导出一个 register*Tool(server) 函数,其中包含 zod schema 和异步处理程序。所有网络调用都会受到速率限制、缓存,并设有时间限制。完整的架构说明请参阅 CLAUDE.md,添加工具请参阅 CONTRIBUTING.md。


🔧 配置

安装选项
# Zero-install (recommended): npx fetches it on demand — see Quick start above.

# Or install globally:
npm install -g @pharmatools/pubcrawl

# Config for a global install:
#   { "mcpServers": { "pubcrawl": { "command": "pubcrawl" } } }
NCBI API 密钥(可选)

没有密钥时,PubMed 请求限制为每秒 3 次。免费密钥可将上限提高至每秒 10 次。

  1. 在 https://www.ncbi.nlm.nih.gov/account/ 创建免费 NCBI 账户
  2. 依次进入 Account Settings → API Key Management → 创建密钥
  3. 将密钥添加到配置中:
{
  "mcpServers": {
    "pubcrawl": {
      "command": "npx",
      "args": ["-y", "@pharmatools/pubcrawl"],
      "env": { "NCBI_API_KEY": "your_key_here" }
    }
  }
}
HTTP 传输

PubCrawl 还提供无状态 Streamable HTTP 传输,供基于浏览器的客户端和托管客户端使用:

npm run start:http   # serves POST /mcp and GET /health on PORT (default 3000)

🗺 路线图

以下是计划内容的概要——完整列表请参阅 ROADMAP.md。

  • get_europepmc_fulltext — 阅读由 search_europepmc 检索到的预印本和开放获取文章
  • get_adverse_events — 使用 openFDA 查询 FAERS 不良事件
  • 增加 EMA / EPAR 标签,以完善美国和英国的 compare_labels
  • MeSH 查询辅助工具,让 PubMed 搜索更加精准
  • 为常见综述工作流提供 MCP 资源和提示词

欢迎提出想法——提交问题。


🛠 开发

git clone https://github.com/nickjlamb/pubcrawl.git
cd pubcrawl
npm install

npm run dev      # TypeScript watch mode
npm run build    # compile to dist/
npm start        # run the stdio server
npm test         # Vitest unit suite
npm run lint     # ESLint

单元测试位于 tests/,使用固定数据负载测试解析、缓存、引用、格式化和标签配对逻辑(不发起网络调用)。CI 会在每次推送和拉取请求时依次运行 lint → test → build。初次接触此代码库?请从 CONTRIBUTING.md 开始。

测量保真度
npm run bench            # labelling + trials fidelity benchmark against the live sources
npm run bench -- --ci    # what the release gate runs: exit 1 if a verified case fails

每次发布和每周都会运行两道质量关卡。OpenGATE 的检索评分器会将 PubMed 和 Europe PMC 记录与人工核验的锚点进行比对。仓库内的保真度基准测试也会对药品标签和临床试验进行同样的比对:compare_labels 会与美国和英国锚点的金标准集合进行比对(某个短语必须出现在一方,而不能出现在另一方,这样才能揭示真实差异,而不是将其平滑处理),此外还会进行逐字核验,重新获取原始 openFDA 记录和 eMC 页面,并确认每个返回的句子都是源内容的子字符串。这两道关卡都不会使用 LLM 裁判。


📦 发布与更新日志

版本遵循语义化版本。完整历史请参阅更新日志,说明和资源请参阅发布版本。

🤝 参与贡献

欢迎并感谢贡献,包括错误报告、新数据源和新工具。请先阅读贡献指南以了解如何开始,然后提交问题或拉取请求。

📚 引用

如果 PubCrawl 为您发表的工作提供了支持,请引用它——参阅 CITATION.cff,或:

@software{lamb_pubcrawl,
  author    = {Lamb, Nick},
  title     = {PubCrawl: verifiable biomedical literature, drug labelling and clinical trials for AI assistants},
  year      = {2026},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.22101559},
  url       = {https://doi.org/10.5281/zenodo.22101559}
}

📄 许可证

MIT © PharmaTools.AI

数据来自 NCBI E-utilities、Europe PMC、openFDA、DailyMed、英国 eMC 和 ClinicalTrials.gov。PubCrawl 与这些提供方均无关联。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。