Skip to main content
Glama
pubmed-mcp-server

pubmed-mcp-server

by cyanheads

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Use the pubmed_* tools to search PubMed and PubMed Central, fetch article metadata and full text, format citations, and find related articles via NCBI's E-utilities. Articles are keyed by PMID (integer); PMC full text by PMCID (PMC prefix); most also carry a DOI. Typical flow: pubmed_search_articles → pubmed_fetch_articles → pubmed_fetch_fulltext. When PubMed itself comes up empty (preprints, EPMC-only OA), broaden via pubmed_europepmc_search, then pubmed_europepmc_fetch with records: [{ source, epmcId }] copied from a hit for its complete abstract. Prefer deterministic resolvers when inputs are structured: pubmed_lookup_citation for partial references, pubmed_convert_ids to crosswalk IDs. Refine queries with pubmed_lookup_mesh and pubmed_spell_check. For an article's citation influence, pubmed_fetch_citation_metrics returns its Relative Citation Ratio, NIH percentile, and citation counts (Source: NIH iCite, https://icite.od.nih.gov/). The pubmed-guide skill (skill://pubmed-guide/SKILL.md) carries the gates for MeSH and query syntax, DOI-to-PMID routes outside PMC, resolving reference lists, citation counts, and full-text availability.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": true,
  "listChanged": true
}
extensions
{
  "io.modelcontextprotocol/skills": {
    "directoryRead": true
  }
}

Tools

Functions exposed to the LLM to take actions

NameDescription
pubmed_search_articlesA

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.

pubmed_fetch_articlesA

Fetch full article metadata by PubMed IDs. Returns detailed article information including abstract, authors, journal, MeSH terms, linked retraction, erratum, and comment notices, and databank accessions such as trial registration IDs; grants and the members of a collective author are opt-in (includeGrants, includeInvestigators). Set maxResponseCharacters to bound the whole response: articles past the ceiling are deferred whole and listed in deferred.ids for a follow-up call.

pubmed_fetch_fulltextA

Fetch full-text articles from PubMed Central as structured sections — the body, then back matter such as acknowledgments, declarations, and appendices — with tables and references. When PMC misses, transparently falls back to Europe PMC fullTextXML (structured JATS for its open-access subset, preprints included). Name articles by pmcids (PMC IDs directly), pmids (PubMed IDs, auto-resolved), dois (DOIs, auto-resolved to PMC via the ID Converter; open-access preprints recover via Europe PMC), or any mix of the three — up to 50 distinct identifiers; the first 10 are fetched per call, the rest returned in overLimit; an article several of them name is fetched and returned once. Two independent character controls: maxCharacters caps body text per article, maxResponseCharacters caps the whole response and defers articles past the ceiling whole, listing them in deferred.ids for a follow-up call.

pubmed_format_citationsA

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. Retractions, errata, and expressions of concern NCBI links to an article come back in notices; Vancouver and APA also cite a retraction in the reference itself.

pubmed_find_relatedA

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.

pubmed_spell_checkA

Spell-check a PubMed search query against NCBI ESpell and get the corrected query back. Use after a zero-hit or thin pubmed_search_articles result, or when a drug, gene, disease, or author name may be misspelled. Corrections are applied in place, so field tags, operators, spacing, and gene symbols stay as written (alzhiemer diseese treatmnt outcomse → alzheimer disease treatment outcomes). The value of an indexed field — MeSH, publication type, journal, author, language, subset, and the like (aged[mh], free full text[sb], zhang y[au]) — is kept as written, misspelled or not, since the ESpell dictionary is not the index that field searches; free-text fields such as [tiab], [ti], and [tw] are corrected. Words in all capitals, with digits or non-ASCII letters, or differing only in case are never changed, nor is a single letter swapped for another (q fever, the initial in smith q), words after a number or symbol ESpell skips are left as written, and hasSuggestion is false when no correction was applied. Re-run the search with corrected.

pubmed_lookup_meshA

Search and explore the MeSH (Medical Subject Headings) controlled vocabulary. Returns MeSH records of every type — descriptors, supplementary concepts, qualifiers, and pharmacological actions — each with its record type and the PubMed clause that searches it, plus tree numbers, scope notes, entry terms, year introduced, previous indexing, and the exact heading match's allowable subheadings, with pagination via offset for paging past the maxResults cap.

pubmed_lookup_citationA

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 a four-digit year (ECitMatch primary-keys on journal+volume+page; author-only or volume-only inputs guarantee no match); more fields = better match accuracy.

pubmed_convert_idsA

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.

pubmed_fetch_citation_metricsA

Fetch NIH iCite citation metrics for PubMed articles: the Relative Citation Ratio (RCR), NIH percentile, citation count, citations per year, expected and field citation rates, the Approximate Potential to Translate (APT), the human, animal, and molecular/cellular shares of each article's MeSH terms, and how many clinical articles cite it. RCR is a field- and year-normalized citation rate benchmarked to NIH-funded papers, whose median RCR is 1.0; iCite computes none for the most recent papers and marks recent ones provisional. iCite does not flag retractions — a retracted article keeps its metrics — so check pubmed_fetch_articles for retraction notices before relying on a record. Up to 1000 PMIDs per call; the first 200 distinct PMIDs are fetched and the rest returned in overLimit. PMIDs iCite has no record for are listed in unavailablePmids.

pubmed_europepmc_searchA

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. Abstracts arrive as a bounded abstractSnippet with abstractTruncated marking the cut ones — pass a hit to pubmed_europepmc_fetch as records: [{ source, epmcId }] for the complete abstract.

pubmed_europepmc_fetchA

Fetch complete Europe PMC records — including the full, untruncated abstract — addressed as records: [{ source, epmcId }], an array even for one record. Pairs with pubmed_europepmc_search, which returns bounded abstractSnippet values and flags cut ones with abstractTruncated: true; copy each hit's source and epmcId into records here to read the whole abstract. This is the retrieval path for preprint (PPR), patent (PAT), and Agricola (AGR) records, which frequently carry no PMID and no DOI, so pubmed_fetch_articles and pubmed_fetch_fulltext cannot address them. Up to 25 records per call. Set maxResponseCharacters to bound the whole response: records past the ceiling are deferred whole and listed in deferred.records for a follow-up call.

Prompts

Interactive templates invoked by user choice

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

Resources

Contextual data attached and managed by the client

NameDescription
database-infoPubMed database metadata including field list, last update date, and record count.
pubmed-guidePubMed query syntax, identifier crosswalks, and gates for the pubmed_* tools over PubMed, PubMed Central, Europe PMC, and NIH iCite. Use when building a MeSH-based or systematic search, resolving a reference list or DOIs to PMIDs, judging how cited an article is, getting full text, or finding preprints and records PubMed lacks.

TDQS

A4.1/5.0

Scored across 12 tools

Disambiguation4/5

Each tool targets a distinct capability: keyword search, metadata fetch, full-text fetch, citation formatting, related-article discovery, MeSH lookup, citation-based ID lookup, ID conversion, spell check, and citation metrics. The main soft spots are pubmed_search_articles vs pubmed_europepmc_search and pubmed_fetch_articles vs pubmed_europepmc_fetch, but the descriptions explicitly carve out the corpus differences (preprints/patents, records with no PMID) so an agent can choose correctly.

Naming Consistency4/5

Nearly everything follows the pubmed_verb_noun pattern (pubmed_search_articles, pubmed_fetch_articles, pubmed_fetch_fulltext, pubmed_lookup_mesh, pubmed_format_citations, pubmed_convert_ids). The two Europe PMC tools invert the order (pubmed_europepmc_fetch, pubmed_europepmc_search), placing the noun before the verb, which is a minor but real deviation.

Tool Count5/5

12 tools is squarely in the well-scoped range for a biomedical literature server, and each one maps to a distinct research workflow step (discover, retrieve, enrich, cite, convert). No filler tools and no obviously missing companion operation.

Completeness5/5

The surface covers the full literature lifecycle: search (PubMed and Europe PMC), metadata and full-text retrieval, citation formatting, related-work traversal, MeSH vocabulary, citation-based ID resolution, ID conversion, spell correction, and iCite metrics. Edge cases like non-PMID preprint/patent records are explicitly handled via the Europe PMC path.

Maintenance

ActivityActive
ResponsivenessUsually handled