MCP server providing PubMed/PMC research capabilities with search, abstract retrieval, full-text access, citation counts, and PDF download functionality
The server implements 9 PubMed research tools with generally clear naming and reasonable descriptions. Tool names follow verb_noun conventions (search, fetch, download_pdfs). Most tools have descriptions in the 50-200 character range, meeting baseline standards. However, parameter schemas are inconsistently documented, and several tools lack output schema definitions. Error handling is minimal, most tools lack recovery guidance. The export_to_ris tool has a complex nested object parameter that could benefit from clearer constraint documentation. Overall, this is a solid community-grade server with functional definitions but gaps in schema completeness and error guidance that would prevent production recommendation.
Get result count for a query (for search optimization)
Download PDF files for multiple PMCIDs with automatic redirect handling
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
Get citation counts for PMIDs using NIH iCite API (up to 1000 PMIDs per request)
Output schemas not documented. Tools like search, fetch, get_full_text lack explicit response schema documentation, forcing LLMs to infer output structure and increasing hallucination risk when chaining tools.
Minimal error handling and recovery guidance. Tools do not provide actionable error messages (e.g., 'PMID not found. Try searching first with search() to verify the ID exists'). LLMs cannot self-correct on API failures.
export_to_ris parameter schema uses deeply nested object with 6 properties (papers array of objects with pmid, title, journal, year, authors array, doi). Constraint documentation is sparse, no guidance on required fields, valid formats, or handling of missing values.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Retrieve full-text content for PMCIDs (sections only)
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
count tool description is only 67 characters ('Get result count for a query (for search optimization)'). Missing context on when to use it vs search, should explain it's a lightweight way to estimate result set size without fetching full records.
download_pdfs is marked as WRITE risk but returns no success/failure per-item breakdown. If 5 of 10 PDFs fail, the LLM cannot determine which ones succeeded and which to retry, forces full re-download.
No pagination support documented in search or find_similar_articles. Search accepts max_results (1-200) but no offset/retstart parameter, making it impossible to retrieve results 201+. This limits discovery for broad queries.