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
}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 138 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!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Public Hosted Server: https://pubmed.caseyjhand.com/mcp
11 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_europepmc_fetch |
Fetch complete Europe PMC records — including the untruncated abstract — by source + epmcId, the only identifier many preprint, patent, and Agricola records carry |
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 outputmaxCharacters caps body text per article (PMC sections and subsections, or the Unpaywall body), maxCharactersPerSection caps a single PMC section, and overflowMode picks between truncate (fill sections in document order) and outline (split the budget evenly so every heading survives with an excerpt). Budgets run after the semantic filters, and a truncation object reports per-article and per-section character counts whenever anything was shortenedpubmed_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-walkingabstractSnippet is capped at 400 characters to keep a page bounded; abstractTruncated says whether it was cut, and pubmed_europepmc_fetch returns the whole abstract for the records worth reading in fullEUROPEPMC_ENABLED=false; tool is not registered in that casepubmed_europepmc_fetchFetch complete Europe PMC records by source + epmcId, the detail counterpart to pubmed_europepmc_search.
source and epmcId of a search hit, the only identifier preprint (PPR), patent (PAT), and Agricola (AGR) records reliably carry — pubmed_fetch_articles needs a PMID and pubmed_fetch_fulltext needs a PMCID, PMID, or DOInotFound instead of failing the batchEUROPEPMC_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.