MCP server providing PubMed/PMC research capabilities with search, abstract retrieval, full-text access, and citation export functionality
PubMed MCP server has 7 tools with clear, action-verb names (search, fetch, fetch_batch, get_full_text, count, find_similar_articles, export_to_ris). All tools have descriptions ranging 40 - 180 chars, placing them in the serviceable range but below the 50 - 200 char optimum for LLM-facing descriptions. Input schemas are visible in the source code with JSON Schema format and typed parameters. However, significant gaps exist: output schemas are not documented (critical for LLM planning); parameter descriptions are terse and omit range/constraint details; no error recovery guidance is provided; and no validation of mutually exclusive or dependent parameters. Tool names follow verb_noun convention well, but several tools (fetch_batch, export_to_ris) lack clarity on when to choose them over alternatives.
Get result count for a query (for search optimization)
Export articles to RIS format for citation managers (EndNote/Zotero/Mendeley)
Retrieve abstract for a single PMID (OpenAI MCP compliant)
Retrieve abstracts for multiple PMIDs in one request
Find similar articles using PubMed's recommendation algorithm
Retrieve full-text content for PMCIDs (sections only)
Output schemas completely undocumented for all 7 tools. Agents cannot predict return structure, field names, or types, forcing trial-and-error or extra discovery calls.
Parameter descriptions lack constraint details (ranges, enums, formats). E.g., 'retmax' lacks range hint (1 - 200). Agents cannot self-correct invalid inputs.
No error recovery guidance. Tools lack descriptions of failure modes and next steps. E.g., if PMID not found, what should agent try? Search again with different query?
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
PubMed queries with MeSH support, returning configurable number of paper titles (1-200, default: 50) with PMCID detection. Supports Best Match (relevance) and Most Recent (pub_date) sorting
Critical distinction between PMID and PMCID not highlighted in tool descriptions. get_full_text requires PMCID (open-access only), but agents may conflate it with PMID from search results.
Array element types not specified (e.g., fetch_batch.pmids is array, but are elements strings or integers? export_to_ris.articles is array, but what object structure?)
Tool selection ambiguity: fetch_batch vs repeated fetch calls; count vs search (both return counts). No guidance on when to choose one over the other.
No pagination support for search results. Description says 'configurable 1 - 200', but no guidance on how agents should handle >200 results or iterate through result pages.
Rate limiting (10 req/s with API key) is implemented in code but not documented in any tool description. Agents unaware of rate limits may plan inefficiently.