pubmed_search_articles
ActiveTool of io.github.cyanheads/pubmed-mcp-server
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.
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"sort": {
"enum": [
"relevance",
"pub_date",
"author",
"journal"
],
"type": "string",
"default": "relevance",
"description": "Sort order: relevance (default), pub_date (newest first), author, or journal"
},
"query": {
"type": "string",
"minLength": 1,
"description": "PubMed search query (supports full NCBI syntax)"
},
"author": {
"type": "string",
"description": "Filter by author name (e.g. \"Smith J\")"
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Result offset for pagination (0-based)"
},
"journal": {
"type": "string",
"description": "Filter by journal name"
},
"species": {
"enum": [
"humans",
"animals"
],
"type": "string",
"description": "Filter by species"
},
"language": {
"type": "string",
"description": "Filter by language (e.g. \"english\")"
},
"dateRange": {
"type": "object",
"required": [
"minDate",
"maxDate"
],
"properties": {
"maxDate": {
"type": "string",
"pattern": "^$|^\\d{4}([/\\-.]\\d{1,2}([/\\-.]\\d{1,2})?)?$",
"description": "End date (YYYY/MM/DD, YYYY/MM, or YYYY); empty string disables this bound"
},
"minDate": {
"type": "string",
"pattern": "^$|^\\d{4}([/\\-.]\\d{1,2}([/\\-.]\\d{1,2})?)?$",
"description": "Start date (YYYY/MM/DD, YYYY/MM, or YYYY); empty string disables this bound"
},
"dateType": {
"enum": [
"pdat",
"mdat",
"edat"
],
"type": "string",
"default": "pdat",
"description": "Date type: pdat (publication), mdat (modification), edat (entrez)"
}
},
"description": "Filter by date range. The filter is applied only when both `minDate` and `maxDate` are non-empty; either one empty disables the entire date range."
},
"meshTerms": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by MeSH terms. Multiple terms are AND'd — all must match."
},
"maxResults": {
"type": "integer",
"default": 20,
"maximum": 1000,
"minimum": 1,
"description": "Maximum results to return"
},
"hasAbstract": {
"type": "boolean",
"description": "Only include articles with abstracts"
},
"freeFullText": {
"type": "boolean",
"description": "Only include free full text articles"
},
"summaryCount": {
"type": "integer",
"default": 0,
"maximum": 50,
"minimum": 0,
"description": "Fetch brief summaries for top N results (0 = PMIDs only)"
},
"publicationTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by publication type (e.g. \"Review\", \"Clinical Trial\", \"Meta-Analysis\"). Multiple values are OR'd — any match qualifies."
}
}
}Parent server
io.github.cyanheads/pubmed-mcp-server
https://github.com/cyanheads/pubmed-mcp-server
2/7 registries