MCP server providing access to ClinicalTrials.gov API with tools for searching, retrieving, and analyzing clinical trial data
This MCP server provides 10 tools for querying ClinicalTrials.gov. While tool names follow verb_noun conventions and the schema structures are present, there are significant gaps in parameter descriptions, output documentation, and error handling guidance. Most tools lack comprehensive descriptions of their return values and error scenarios. Parameter descriptions are minimal or absent in several tools. The server implements basic middleware (logging, rate limiting) but does not guide LLMs on recovery strategies or actionable error messages.
Get API and data version information
Get enumeration types and values for filtering
Get metadata information for study data model fields
Get statistical information about field values in studies
Get size statistics for list fields in studies
Get available search area definitions
Retrieve detailed information for a single clinical trial by NCT ID
Get statistical information about study sizes
Missing or minimal parameter descriptions for discovery tools (get_search_areas, get_field_metadata, get_enum_values, get_list_field_sizes). Parameters lack contextual hints about when/why to call these tools or what data structures they reveal.
No documented output schemas or return field descriptions visible for any tool. LLMs cannot infer downstream field availability for chaining calls or extract required IDs. E.g., search_clinical_trials must return NCT_ID for use in get_study_details, but this is not documented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 58 | - | v1 |
Health check endpoint for monitoring
Search clinical trials with various filters and query parameters
No error handling guidance or recovery instructions visible in tool descriptions. No mention of what happens if an NCT_ID is invalid, if API rate limits are hit, or how to retry. LLM has no actionable path forward on failure.
Parameter 'fields' appears in search_clinical_trials and get_study_details without format/constraint documentation. Is it a list of strings? What are valid field names? Should agents call get_field_metadata first to discover valid fields? This dependency is undocumented.
Page-based pagination (page_size, page_token) in search_clinical_trials lacks documentation of: max page_size, what page_token contains, how to detect end of results, whether results are stable across pages. Without this, agents cannot reliably paginate large result sets.
No indication of result limits or truncation. If search_clinical_trials returns thousands of studies by default, context window will be exhausted. Baseline rubric requires documentation of result caps and pagination guidance.