Hosted MCP server · #25 most used on Smithery

pubmed-mcp-server

cyanheads/pubmed-mcp-server

Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms.

Uses
14k
Tools
10
Runs
Hosted
Prompts
1
Listed
7mo ago

Get started

Add it to your agent

npx -y @smithery/cli@latest install cyanheads/pubmed-mcp-server --client claude

Swap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.

What it can do

10 tools

pubmed_search_articles12 paramsSearch PubMed with full query syntax, filters, and date ranges. Returns PMIDs and optional brief summaries. Supports field-specific filte…

Search PubMed with full query syntax, filters, and date ranges. Returns PMIDs and optional brief summaries. Supports field-specific filters (author, journal, MeSH terms), common filters (language, species, free full text), and pagination via offset for paging through large result sets.

ParameterTypeDescription
sortstringSort order: relevance (default), pub_date (newest first), author, or journal
querystringPubMed search query (supports full NCBI syntax)
authorstringFilter by author name (e.g. "Smith J")
offsetintegerResult offset for pagination (0-based)
journalstringFilter by journal name
speciesstringFilter by species
languagestringFilter by language (e.g. "english")
dateRangeobjectFilter by date range. The filter is applied only when both `minDate` and `maxDate` are non-empty; either one empty disables the entire date range.
meshTermsarrayFilter by MeSH terms. Multiple terms are AND'd — all must match.
maxResultsintegerMaximum results to return
hasAbstractbooleanOnly include articles with abstracts
freeFullTextbooleanOnly include free full text articles
pubmed_fetch_articles3 paramsFetch full article metadata by PubMed IDs. Returns detailed article information including abstract, authors, journal, MeSH terms.
ParameterTypeDescription
pmidsarrayPubMed IDs to fetch
includeMeshbooleanInclude MeSH terms
includeGrantsbooleanInclude grant information
pubmed_fetch_fulltext6 paramsFetch full-text articles from PubMed Central with structured sections and references. When PMC misses, transparently falls back to Europe…

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

ParameterTypeDescription
doisarrayDOIs 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 artic
pmidsarrayPubMed 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 t
pmcidsarrayPMC IDs to fetch (e.g. ["PMC9575052"]). Provide exactly one of `pmcids`, `pmids`, or `dois`. PMC IDs with no retrievable full text fall through to Europe PMC, then to Unpaywall on the DOI the chain re
sectionsarrayFilter to specific sections by title, case-insensitive (e.g. ["Introduction", "Methods", "Results", "Discussion"]). Applies to `source=pmc` results only.
maxSectionsintegerMaximum top-level body sections. Applies to `source=pmc` results only.
includeReferencesbooleanInclude reference list. Applies to `source=pmc` results only.
pubmed_format_citations2 paramsGet formatted citations for PubMed articles in one or more formats (apa, mla, bibtex, ris, vancouver). Pass a single format as a string o…

Get formatted citations for PubMed articles in one or more formats (apa, mla, bibtex, ris, vancouver). Pass a single format as a string or multiple as an array.

ParameterTypeDescription
pmidsarrayPubMed IDs to cite
formatCitation format(s) to generate — single style as a string or multiple as an array. Allowed values: apa, mla, bibtex, ris, vancouver.
pubmed_find_related4 paramsFind articles related to a source article — similar content (similar), articles citing this one (cited_by), or articles this one cites (r…

Find articles related to a source article — similar content (similar), articles citing this one (cited_by), or articles this one cites (references). Uses NCBI ELink as the primary source; falls back to Europe PMC then OpenAlex when NCBI is unavailable.

ParameterTypeDescription
pmidstringSource PubMed ID
offsetintegerResult offset for pagination (0-based); page through results by incrementing by maxResults
maxResultsintegerMaximum related articles
relationshipstringRelationship type: similar (content-based), cited_by (articles citing this one), references (articles this one cites)
pubmed_spell_check1 paramSpell-check a query and get NCBI's suggested correction. Useful for refining search queries.
ParameterTypeDescription
querystringPubMed search query to spell-check
pubmed_lookup_mesh4 paramsSearch and explore the MeSH (Medical Subject Headings) controlled vocabulary. Returns descriptor records with tree numbers, scope notes, …

Search and explore the MeSH (Medical Subject Headings) controlled vocabulary. Returns descriptor records with tree numbers, scope notes, and entry terms, plus pagination via offset for paging past the maxResults cap.

ParameterTypeDescription
querystringMeSH descriptor name or free-text term to look up
offsetintegerResult offset for pagination (0-based). Pass the `nextOffset` from the previous response to get the following page; the exact-descriptor match is pinned to the first page only.
maxResultsintegerMaximum results
includeDetailsbooleanFetch full MeSH records (scope notes, tree numbers, entry terms)
pubmed_lookup_citation1 paramLook up PubMed IDs from partial bibliographic citations. Useful when you have a reference (journal, year, volume, page, author) and need …

Look up PubMed IDs from partial bibliographic citations. Useful when you have a reference (journal, year, volume, page, author) and need the PMID — deterministic citation matching, more reliable than free-text search for structured references. Each citation must include at least journal or year (ECitMatch primary-keys on journal+volume+page; author-only or volume-only inputs guarantee no match); more fields = better match accuracy.

ParameterTypeDescription
citationsarrayCitations to look up. More fields = better match accuracy.
pubmed_convert_ids2 paramsConvert between article identifiers (DOI, PMID, PMCID). Accepts up to 50 IDs of a single type per request. Only resolves articles indexed…

Convert between article identifiers (DOI, PMID, PMCID). Accepts up to 50 IDs of a single type per request. Only resolves articles indexed in PubMed Central — for articles not in PMC, use pubmed_search_articles instead.

ParameterTypeDescription
idsarrayArticle identifiers to convert. All IDs must be the same type. DOIs: "10.1093/nar/gks1195", PMIDs: "23193287", PMCIDs: "PMC3531190" (the "PMC" prefix is optional — bare digits like "3531190" are also
idTypestringThe type of IDs being submitted. Required so the API can unambiguously resolve them.
pubmed_europepmc_search6 paramsSearch Europe PMC, a broad open-access biomedical corpus. Surfaces preprints (`source: PPR`), patents (`source: PAT`), Agricola (`source:…

Search Europe PMC, a broad open-access biomedical corpus. Surfaces preprints (`source: PPR`), patents (`source: PAT`), Agricola (`source: AGR`), plus everything in PubMed (`MED`) and PMC. Use when additional coverage is needed — preprints and EPMC-only OA records are the typical recovery. Paginate via `cursorMark`. Defaults to `MED`, `PMC`, and `PPR`; pass `sources` to include `PAT` / `AGR`.

ParameterTypeDescription
sortstringOptional EPMC sort: `<field> asc|desc`. Documented sortable fields: `P_PDATE_D` (publication date), `CITED` (citation count), `AUTH_FIRST` (first author surname), `PUB_YEAR` (publication year). Exampl
querystringEurope PMC search query. Supports field tokens like `AUTH:"<name>"`, `JOURNAL:"<title>"`, `TITLE:"<words>"`, `PUB_YEAR:[2020 TO 2024]`, `DOI:"..."`, `EXT_ID:<pmid> AND SRC:MED`, `PMCID:PMC<digits>`. I
sourcesarrayFilter to specific EPMC sources. Defaults to MED, PMC, PPR when omitted. Pass an explicit array including PAT or AGR to broaden coverage. Allowed values: MED, PMC, PPR, PAT, AGR.
pageSizeintegerResults per page. Max 100 per EPMC API.
cursorMarkstringPagination cursor. Use `*` (default) for the first page; pass the previous response's `nextCursorMark` for subsequent pages.
resultTypestring`core` returns abstract, IDs, dates, license; `lite` is a smaller payload with IDs and titles only.

Ready-made

Prompts

  • research_planGenerate a structured research plan outline for a biomedical research project.

Readable data

Resources

  • database-infoPubMed database metadata including field list, last update date, and record count.