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 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
| Name | Type | Required | Description |
|---|---|---|---|
query | string | yes | Search query (e.g., “CRISPR cancer therapy”, “Smith J[Author]”, “COVID-19[MeSH]”, ‘“cell-free RNA”[tiab]’ for an exact precise term). |
limit | number | no | Number of results to return (1-100, default 10) |
from_year | number | no | Optional. Restrict to publications from this year onward (four-digit, e.g. 2024). Use for “last N years” / “since |
to_year | number | no | Optional. 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
| Field | Type | Description |
|---|---|---|
total | number | Total number of articles matching the query |
returned | number | Number of articles returned in this result |
query_translation | string | null | PubMed’s interpretation of the search query |
rewrite_note | string | 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 | array | List 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.