pubmed_fetch_fulltext
ActiveTool of io.github.cyanheads/pubmed-mcp-server
Fetch full-text articles from PubMed Central with structured sections and references. When PMC misses, transparently falls back to Europe PMC `fullTextXML` (structured JATS for records with a PMC counterpart), then to Unpaywall — publisher-hosted or institutional open-access copies as HTML-as-Markdown or PDF-as-text. Provide exactly one of `pmcids` (PMC IDs directly), `pmids` (PubMed IDs, auto-resolved), or `dois` (DOIs, auto-resolved to PMC via the ID Converter; preprints and EPMC-only OA fall through to the Europe PMC and Unpaywall layers).
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"dois": {
"type": "array",
"items": {
"type": "string",
"minLength": 3
},
"maxItems": 10,
"minItems": 1,
"description": "DOIs to resolve (e.g. [\"10.21203/rs.3.rs-9010375/v1\"]). Provide exactly one of `pmcids`, `pmids`, or `dois`. Resolved to a PMCID via the PMC ID Converter and returned as structured JATS when the article is in PMC; DOIs with no PMC counterpart (preprints, EPMC-only OA) fall through to Europe PMC, then Unpaywall, when those layers are enabled."
},
"pmids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d+$"
},
"maxItems": 10,
"minItems": 1,
"description": "PubMed IDs. Provide exactly one of `pmcids`, `pmids`, or `dois`. Articles in PMC are returned as structured JATS; articles not in PMC fall through to Europe PMC (when EPMC has a `fullTextXML`), then to Unpaywall when `UNPAYWALL_EMAIL` is set and a DOI is available."
},
"pmcids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(?:PMC)?\\d+$"
},
"maxItems": 10,
"minItems": 1,
"description": "PMC IDs to fetch (e.g. [\"PMC9575052\"]). Provide exactly one of `pmcids`, `pmids`, or `dois`."
},
"sections": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter to specific sections by title, case-insensitive (e.g. [\"Introduction\", \"Methods\", \"Results\", \"Discussion\"]). Applies to `source=pmc` results only."
},
"maxSections": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Maximum top-level body sections. Applies to `source=pmc` results only."
},
"includeReferences": {
"type": "boolean",
"default": false,
"description": "Include reference list. Applies to `source=pmc` results only."
}
}
}Parent server
io.github.cyanheads/pubmed-mcp-server
https://github.com/cyanheads/pubmed-mcp-server
2/7 registries