search_pubmed

Pack: pubmed · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/search_pubmed for the schema, then POST the same URL with its arguments for the data.

Published biomedical and life-sciences papers from NIH PubMed’s 35M+ citations.

Tool description as the model sees it

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.

Parameters

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

Example call

Arguments

{
  "query": "\"cell-free RNA\"[tiab]",
  "from_year": 2024,
  "to_year": 2026
}

curl

curl -X POST https://gateway.pipeworx.io/pubmed/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_pubmed","arguments":{"query":"\"cell-free RNA\"[tiab]","from_year":2024,"to_year":2026}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('search_pubmed', {
  "query": "\"cell-free RNA\"[tiab]",
  "from_year": 2024,
  "to_year": 2026
});

More examples

{
  "query": "CRISPR cancer therapy"
}
{
  "query": "Smith J[Author]",
  "limit": 20
}

Response shape

Always returns: total, returned, query_translation, pmids

FieldTypeDescription
totalnumberTotal number of articles matching the query
returnednumberNumber of articles returned in this result
query_translationstring | nullPubMed’s interpretation of the search query
rewrite_notestringPresent 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]
pmidsarrayList of PubMed IDs matching the query
Full JSON Schema
{
  "type": "object",
  "properties": {
    "total": {
      "type": "number",
      "description": "Total number of articles matching the query"
    },
    "returned": {
      "type": "number",
      "description": "Number of articles returned in this result"
    },
    "query_translation": {
      "type": [
        "string",
        "null"
      ],
      "description": "PubMed's interpretation of the search query"
    },
    "rewrite_note": {
      "type": "string",
      "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]"
    },
    "pmids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of PubMed IDs matching the query"
    }
  },
  "required": [
    "total",
    "returned",
    "query_translation",
    "pmids"
  ]
}

Connect

Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://pipeworx.io/mcp"
    }
  }
}
Connect to just the pubmed pack
{
  "mcpServers": {
    "pubmed": {
      "url": "https://gateway.pipeworx.io/pubmed/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build October 30, 2026