MCP server for PubMed search and literature summarization
This server provides 5 READ-ONLY tools for PubMed literature search and summarization. Naming is action-verb-based and generally clear (search_pubmed, get_abstract, get_citations, find_reviews, summarize_findings). All tools have brief descriptions present in docstrings. However, schemas lack critical structure: input parameters are inferred from function signatures rather than explicitly registered with JSON Schema, output formats are not formally documented, and error handling is absent. The summarize_findings tool is particularly weak, it truncates abstracts arbitrarily ('abstract[:1000]...') without explaining the PICO methodology in the description. No parameter validation, no enum constraints for citation styles (AMA, APA, Vancouver), and no guidance on what happens when a PMID is invalid or external services fail. Composition is reasonable (tools are single-responsibility), but the lack of structured schemas and error guidance limits agent reliability.
Search PubMed for systematic reviews and meta-analyses only.
Retrieve full abstract for a given PubMed ID (PMID).
Return a formatted citation for a PMID. Styles: AMA, APA, Vancouver.
Search PubMed by keyword, MeSH term, or author. Returns PMIDs and titles.
Generate a plain-language PICO summary of a PubMed abstract.
Output schemas not documented. Tools return strings or structured data without formal JSON Schema definitions. LLMs cannot infer field names, types, or structure for downstream processing.
No input validation or error handling. If a PMID is invalid, citation style is not one of {AMA, APA, Vancouver}, or PubMed API fails, no guidance is provided to the LLM. Raw HTTP errors or exceptions are likely returned.
Citation style parameter (get_citations) should be an enum, not a free-form string. No validation ensures LLMs do not pass invalid styles like 'MLA' or 'Chicago'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
search_pubmed and find_reviews return lists but lack pagination. No total count, cursor, or next_offset. Large result sets (max_results up to default 10) are returned as plain newline-separated strings, not structured JSON. If agents loop calling these tools, context bloat is likely.
summarize_findings truncates abstracts with '...' without documenting PICO extraction logic. Description claims 'Generate a plain-language PICO summary' but implementation just returns first 1000 chars of abstract. This misleads LLMs into expecting structured PICO (Population, Intervention, Comparison, Outcome) extraction.
Parameter descriptions are minimal. 'query' in search_pubmed and find_reviews lacks guidance on valid syntax (keywords, MeSH terms, boolean operators). 'max_results' has no range constraint (1-1000? 1-100?). LLMs must guess valid bounds.
No timeout or rate-limit handling. If PubMed API is slow or the tool makes multiple sequential HTTP calls, no guidance on retries, backoff, or timeout behavior.