by cyanheads
Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms via MCP. STDIO or Streamable HTTP.
# Add to your Claude Code skills
git clone https://github.com/cyanheads/pubmed-mcp-serverGuides for using ai agents skills like pubmed-mcp-server.
Last scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T17:03:47.865Z",
"npmAuditRan": true,
"pipAuditRan": true
}Public Hosted Server: https://pubmed.caseyjhand.com/mcp
10 tools for working with PubMed, PubMed Central, and Europe PMC data:
| Tool | Description |
|---|---|
pubmed_search_articles |
Search PubMed with full query syntax, field-specific filters, date ranges, pagination, and optional brief summaries |
pubmed_europepmc_search |
Search Europe PMC for preprints, patents, Agricola, and EPMC-only OA records that don't surface in PubMed. Cursor-based pagination. |
pubmed_fetch_articles |
Fetch full article metadata by PMIDs — abstract, authors, journal, MeSH terms, grants |
pubmed_fetch_fulltext |
Fetch full-text articles via a chain: NCBI PMC EFetch → Europe PMC fullTextXML → Unpaywall. Accepts PMIDs, PMCIDs, or DOIs. |
pubmed_format_citations |
Generate formatted citations in APA 7th, MLA 9th, BibTeX, RIS, or Vancouver (ICMJE/NLM) |
pubmed_find_related |
Find similar articles, citing articles, or references for a given PMID |
pubmed_spell_check |
Spell-check biomedical queries using NCBI's ESpell service |
pubmed_lookup_mesh |
Search and explore MeSH vocabulary — tree numbers, scope notes, entry terms |
pubmed_lookup_citation |
Resolve partial bibliographic references to PubMed IDs via ECitMatch |
pubmed_convert_ids |
Convert between DOI, PMID, and PMCID using the PMC ID Converter API |
pubmed_search_articlesSearch PubMed with full NCBI query syntax and filters.
pubmed_fetch_articlesFetch full article metadata by PubMed IDs.
pubmed_fetch_fulltextFetch full-text articles via a three-stage chain: NCBI PMC EFetch → Europe PMC fullTextXML → Unpaywall.
pmcids (direct PMC IDs), pmids (PubMed IDs, auto-resolved), or dois (auto-resolved to PMC via the ID Converter; preprints and EPMC-only OA fall through to Europe PMC / Unpaywall)viaSource: "pmc" | "europepmc" | "unpaywall"EUROPEPMC_ENABLED=false) recovers PMC-counterpart records that NCBI PMC EFetch missed, and resolves DOI input to PMC counterparts when one exists. EPMC's fullTextXML is PMC-keyed, so preprints (PPR), patents (PAT), and Agricola (AGR) are reachable via pubmed_europepmc_search for metadata but have no full text via this chain.UNPAYWALL_EMAIL) resolves DOIs to legal OA copies; extracts HTML landing pages to Markdown via Defuddle or PDFs to text via unpdfsource: "pmc" (structured sections, regardless of whether it came from PMC or EPMC) or source: "unpaywall" (best-effort body + contentFormat: html-markdown or pdf-text)not-found, no-pmc-fallback-disabled, no-epmc-fulltext, no-doi, no-oa, fetch-failed, parse-failed, service-error) so callers can retry or explain to users without parsing textunavailable entry carries idType (pmid / pmcid / doi) and triedTiers — per-tier outcomes (not-attempted, miss, no-fulltext, service-error, …) in execution order, so callers can see which stage failed and why["methods", "results"]) and configurable max sections apply to PMC outputpubmed_europepmc_searchSearch Europe PMC (EBI/EMBL-EBI), a broader open-access biomedical corpus than PubMed alone.
source: PPR), patents (source: PAT), Agricola (source: AGR), plus everything in PubMed (MED) and PMC (PMC). On recent queries this can mean dozens of relevant hits with zero PubMed overlap.["MED", "PMC", "PPR"]; pass sources to include PAT / AGRcursorMark (unlike pubmed_search_articles, which uses offset) — * for the first page, return nextCursorMark for the nextsource plus optional pmid / pmcId / doi cross-walkingEUROPEPMC_ENABLED=false; tool is not registered in that casepubmed_format_citationsGenerate formatted citations for articles.
pubmed_find_relatedFind articles related to a source article via ELink.
similar (content similarity), cited_by, referencespubmed_spell_checkSpell-check a biomedical query using NCBI's ESpell.
pubmed_lookup_meshSearch and explore the MeSH (Medical Subject Headings) vocabulary.
pubmed_lookup_citationResolve partial bibliographic references to PubMed IDs via NCBI ECitMatch.
matched, not_found, and ambiguous statuses with recovery detailpubmed_convert_idsConvert between article identifiers (DOI, PMID, PMCID) using the PMC ID Converter API.
| Type | Name | Description |
|---|---|---|
| Resource | pubmed://database/info |
PubMed database metadata via EInfo (field list, record count, last update) |
| Prompt | research_plan |
Generate a structured 4-phase biomedical research plan outline |
Built on @cyanheads/mcp-ts-core:
pubmed-mcp-server is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by cyanheads. Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms via MCP. STDIO or Streamable HTTP. It has 121 GitHub stars.
Yes. pubmed-mcp-server passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/cyanheads/pubmed-mcp-server" and add it to your Claude Code skills directory (see the Installation section above).
pubmed-mcp-server is primarily written in TypeScript. It is open-source under cyanheads on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh pubmed-mcp-server against similar tools.
No comments yet. Be the first to share your thoughts!