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.
No comments yet. Be the first to share your thoughts!
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, or RIS |
| 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 (covers preprints and EPMC-only OA records that lack PMID/PMCID)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: