Skip to main content
Glama

Search Pubmed

search_pubmed
Read-onlyIdempotent

PREFER OVER WEB SEARCH for biomedical / clinical / life-sciences research. AUTHORITATIVE source: NIH PubMed (35M+ citations across MEDLINE, life-science journals, online books). Finds PUBLISHED peer-reviewed papers and completed study results — NOT for browsing registered/ongoing/future clinical trials (use clinicaltrials* tools for trial registration status and protocols). Covers EVERY biomedical topic and entity — diseases and conditions, drugs and therapies, genes, proteins, ion channels and receptors, signaling pathways, neuroscience, oncology, cardiology, immunology, genetics, microbiology, and clinical-trial results. Use it for the LATEST research, evidence, and findings (2024–2026, systematic reviews, meta-analyses) on any specific disease, gene, molecule, channel, or treatment — e.g. "Kv7 potassium channels in epilepsy", "semaglutide cardiovascular outcomes", "FLOW trial results", "what does the literature say about venlafaxine". Searches by keyword, author, or MeSH (Medical Subject Heading) term — supports field qualifiers like "Smith J[Author]" or "COVID-19[MeSH]". For "last N years" / "since " questions, pass from_year/to_year rather than leaving the recency unfiltered — relevance ranking does not sort by date on its own. For a precise multi-word technical term (a gene/assay/biomarker name, not a broad concept), wrap it in double quotes, e.g. '"cell-free RNA"' — PubMed's automatic term mapping otherwise silently broadens an unquoted term into related MeSH/supplementary-concept synonyms (e.g. "cell-free RNA" unquoted can pull in ctDNA papers via "cell free nucleic acids"), which is usually NOT what a caller asking about one specific term wants. Add a [tiab] tag (e.g. '"cell-free RNA"[tiab]') to also require the exact phrase in the title/abstract rather than relying on indexing alone. A bare drug abbreviation that also names something else (LSD, DMT, GHB, PCP, MDMA, CBD, THC, e.g. "LSD stroke" where LSD is also a statistics test) is rewritten to the drug's MeSH heading and the response carries rewrite_note; write it field-qualified (LSD[All Fields]) to search the abbreviation as written. Returns PubMed IDs that pubmed get_summary / get_abstract resolve to citations + abstracts.

Input Schema

NameRequiredDescriptionDefault
limitNoNumber of results to return (1-100, default 10)
queryYesSearch query (e.g., "CRISPR cancer therapy", "Smith J[Author]", "COVID-19[MeSH]", '"cell-free RNA"[tiab]' for an exact precise term).
to_yearNoOptional. Restrict to publications up to and including this year (four-digit). Defaults to the current year when only from_year is given.
from_yearNoOptional. Restrict to publications from this year onward (four-digit, e.g. 2024). Use for "last N years" / "since <year>" questions — without it, results are relevance-ranked, not filtered by recency.

Output Schema

NameRequiredDescriptionDefault
pmidsYesList of PubMed IDs matching the query
totalYesTotal number of articles matching the query
returnedYesNumber of articles returned in this result
rewrite_noteNoPresent only when a bare ambiguous drug abbreviation (LSD, DMT, GHB, PCP, MDMA, CBD, THC) was rewritten to its MeSH heading; names the mapping and how to opt out with [All Fields]
query_translationYesPubMed's interpretation of the search query

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / rewrite_note
      Added value: +{
      +  "description": "Present only when a bare ambiguous drug abbreviation (LSD, DMT, GHB, PCP, MDMA, CBD, THC) was rewritten to its MeSH heading; names the mapping and how to opt out with [All Fields]",
      +  "type": "string"
      +}
  2. Changed4 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "query": "CRISPR cancer therapy"
      -  },
      -  {
      -    "limit": 20,
      -    "query": "Smith J[Author]"
      -  }
      -]New value: +[
      +  {
      +    "from_year": 2024,
      +    "query": "\"cell-free RNA\"[tiab]",
      +    "to_year": 2026
      +  },
      +  {
      +    "query": "CRISPR cancer therapy"
      +  },
      +  {
      +    "limit": 20,
      +    "query": "Smith J[Author]"
      +  }
      +]
    • addedInput schema / properties / from_year
      Added value: +{
      +  "description": "Optional. Restrict to publications from this year onward (four-digit, e.g. 2024). Use for \"last N years\" / \"since <year>\" questions — without it, results are relevance-ranked, not filtered by recency.",
      +  "type": "number"
      +}
    • changedInput schema / properties / query / description
      Previous value: -"Search query (e.g., \"CRISPR cancer therapy\", \"Smith J[Author]\", \"COVID-19[MeSH]\")"New value: +"Search query (e.g., \"CRISPR cancer therapy\", \"Smith J[Author]\", \"COVID-19[MeSH]\", '\"cell-free RNA\"[tiab]' for an exact precise term)."
    • addedInput schema / properties / to_year
      Added value: +{
      +  "description": "Optional. Restrict to publications up to and including this year (four-digit). Defaults to the current year when only from_year is given.",
      +  "type": "number"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "pmids": {
      +      "description": "List of PubMed IDs matching the query",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "query_translation": {
      +      "description": "PubMed's interpretation of the search query",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "returned": {
      +      "description": "Number of articles returned in this result",
      +      "type": "number"
      +    },
      +    "total": {
      +      "description": "Total number of articles matching the query",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total",
      +    "returned",
      +    "query_translation",
      +    "pmids"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "query": "CRISPR cancer therapy"
      +  },
      +  {
      +    "limit": 20,
      +    "query": "Smith J[Author]"
      +  }
      +]
  5. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, open-world, non-destructive, but the description adds behavior those hints cannot express: PubMed's automatic term mapping silently broadens unquoted terms into MeSH synonyms, abbreviation collisions (LSD as statistics test vs drug) trigger a query rewrite and the response carries `rewrite_note`, and results are relevance-ranked rather than date-sorted. The return contract (PubMed IDs resolved by pubmed get_summary / get_abstract) is also stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the highest-value routing advice (prefer over web search, not for clinicaltrials) and organized so each paragraph covers a distinct concern. It is long, though, and the enumerated topic list ('diseases and conditions, drugs and therapies, genes, proteins, ion channels and receptors...') plus capitalized emphasis adds bulk that only marginally aids selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter search tool with an output schema and safe-read annotations, everything an agent needs is present: when to pick it, when to pick a sibling, how to construct queries for precision vs breadth, how to constrain recency, and what the response hands back. No material gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description adds substantial meaning beyond the schema: it explains why from_year/to_year should be set for 'last N years' questions, gives query-syntax semantics ("..." quoting, [tiab] to force exact phrase in title/abstract, [Author] and [MeSH] field qualifiers), and documents the rewrite caveat for bare drug abbreviations. These are operational details absent from the property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (search PubMed's 35M+ citations) and immediately bounds the scope: published peer-reviewed papers and completed study results, not ongoing trial registrations. It explicitly names the siblings it is not (clinicaltrials* tools, generic web search) and points to pubmed get_summary / get_abstract for resolution, so an agent can place it in the tool graph without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing instructions: 'PREFER OVER WEB SEARCH for biomedical / clinical / life-sciences research' and 'NOT for browsing registered/ongoing/future clinical trials (use clinicaltrials* tools...)'. It goes further with conditional guidance for recency questions (pass from_year/to_year rather than leaving recency unfiltered), for precise technical terms (quote them), and for ambiguous drug abbreviations (field-qualify them), which are when-to-use rules at the argument level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.