MCP server for clinical research — PubMed papers, clinical trials, medical concepts. No API key needed.
Server has 8 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (search_*, get_*, api_status). However, descriptions embed example values (e.g., 'CGRP migraine treatment', 'NCT06123456') which LLMs tend to reuse literally. Output schemas are not documented, responses are free-text markdown strings rather than structured objects. No error handling guidance (e.g., 'If search fails, try...'), no pagination support for list results, and no tool annotations (readOnlyHint, etc.). Parameter descriptions are adequate but lack format constraints (e.g., 'pmid must be numeric'). Overall: functional but below production baseline.
Check which APIs are available.
Get detailed info about a specific arXiv paper. - arxiv_id: arXiv identifier (e.g. '2603.12345')
Look up a medical/scientific concept on Wikipedia. - term: Medical term (e.g. 'CGRP', 'monoclonal antibody', 'randomized controlled trial') - lang: Language code ('en', 'ko', 'ja', etc.) Default: en
Get detailed info about a PubMed paper and find related articles. - pmid: PubMed ID (e.g. '39876543')
Search arXiv for biomedical/bioinformatics papers. - query: Search keywords (e.g. 'single-cell RNA sequencing', 'protein folding') - count: Number of results (default: 5) - sort: 'relevance', 'submittedDate', or 'lastUpdatedDate' (default: relevance)
Search PubMed for medical/scientific papers. - query: Search keywords (e.g. 'CGRP migraine treatment') - count: Number of results (default: 5) - sort: 'relevance' or 'date' (default: relevance)
Output schemas not documented. All tools return free-text markdown strings instead of structured JSON objects. LLMs cannot reliably extract fields for downstream tool calls or data extraction.
Descriptions embed example values (e.g., 'CGRP migraine treatment', 'NCT06123456', 'Alzheimer's disease immunotherapy'). LLMs reuse these literally in real calls, causing failures when examples don't match actual data.
No error handling guidance. Tools return generic error strings like '[Error] PubMed search failed: {e}' without actionable recovery steps. LLMs cannot determine if errors are retryable or require user intervention.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Search ClinicalTrials.gov for clinical trials. - query: Search keywords (e.g. 'Alzheimer's disease immunotherapy') - count: Number of results (default: 5) - status: Filter by status (optional). Values: RECRUITING, COMPLETED, ACTIVE_NOT_RECRUITING, NOT_YET_RECRUITING
Get detailed info about a specific clinical trial. - nct_id: ClinicalTrials.gov NCT ID (e.g. 'NCT06123456')
No pagination support. search_pubmed, search_trials, and search_arxiv accept 'count' but do not return total_count, next_cursor, or offset. Large result sets cannot be paginated, risking context window exhaustion.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint metadata. Agents cannot determine which tools are safe to retry or have side effects.