Clinical Trials
Server Details
Clinical trial search and status from ClinicalTrials.gov
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: searching for trials, getting detailed info on a specific trial, and obtaining statistics. No overlap in functionality.
All tool names follow a consistent verb_noun snake_case pattern: get_trial_details, get_trial_stats, search_trials.
Three tools is an appropriate scope for a clinical trials server, covering search, details, and statistics without being too few or too many.
The set covers the main operations: search, details, and statistics. However, some potential gaps exist, such as a tool to list all trials by sponsor or location, though search can approximate these.
Available Tools
3 toolsget_trial_detailsAInspect
Get full details of a specific clinical trial by NCT ID. Returns title, summary, description, eligibility criteria, primary/secondary outcomes, sponsor, collaborators, locations, and results summary if available.
| Name | Required | Description | Default |
|---|---|---|---|
| nct_id | Yes | ClinicalTrials.gov NCT ID (e.g. "NCT03232697") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It details what the tool returns, including optional fields ('results summary if available'), and describes a read-only operation. It does not mention error handling, permissions, or rate limits, but for a simple retrieval tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose and then lists the return fields efficiently. Every phrase adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description thoroughly covers what the tool does and what it returns. It provides enough context for an agent to select and invoke it correctly, including the optional results caveat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the nct_id parameter is well-described with an example. The tool description adds no additional meaning beyond restating 'by NCT ID,' so it does not go beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'Get full details of a specific clinical trial by NCT ID.' It enumerates the exact return contents (title, summary, criteria, outcomes, etc.), clearly distinguishing it from sibling tools like search_trials (searching) and get_trial_stats (statistical summaries).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for fetching complete details when you already have an NCT ID, which differentiates it from search_trials. However, it does not explicitly state when not to use it or mention alternative tools, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trial_statsAInspect
Get clinical trial statistics and trends for a condition. Returns counts by status (recruiting, completed, etc.), by phase, and top sponsors. Useful for: "How many Alzheimer's trials are recruiting right now?"
| Name | Required | Description | Default |
|---|---|---|---|
| group_by | No | Grouping dimension: status (default), phase, or sponsor | status |
| condition | Yes | Disease or condition to analyze (e.g. "alzheimer", "lung cancer", "covid") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the output categories (status, phase, top sponsors) but does not state whether the operation is read-only (implied by 'get'), whether condition matching is exact or partial, or what happens when no data matches. The word 'trends' is somewhat ambiguous since the described outputs are counts, not time-based trends, which introduces slight inconsistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a one-sentence purpose, a one-sentence output explanation, and a practical example. No filler or redundancy; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's relative simplicity, two parameters, and no output schema, the description covers the key aspects: what the tool returns (counts by status/phase/sponsor) and a representative usage scenario. It could be more complete by explicitly stating the output is aggregate statistics only (not individual trial data) and that it is a read-only operation, but the core information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both parameters (condition and group_by) with 100% coverage. The description adds a few example values for condition and mentions the grouping dimensions (status, phase, sponsor) but does not significantly extend beyond the schema's own parameter documentation, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Get clinical trial statistics and trends for a condition.' It clearly distinguishes from siblings (search_trials, get_trial_details) by focusing on aggregate counts and trends rather than individual trial search or details. The example question further clarifies the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete use-case example ('How many Alzheimer's trials are recruiting right now?') that signals when to use the tool for aggregate statistical questions. However, it does not explicitly mention when not to use it (e.g., for individual trial details) or directly reference alternatives, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_trialsAInspect
Search clinical trials on ClinicalTrials.gov by condition, intervention, sponsor, status, or phase. Returns trial IDs, titles, status, phases, conditions, interventions, enrollment, and locations count.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (max 20) | |
| phase | No | Trial phase: PHASE1, PHASE2, PHASE3, PHASE4 | |
| status | No | Trial status: RECRUITING, COMPLETED, ACTIVE_NOT_RECRUITING, NOT_YET_RECRUITING, TERMINATED | |
| sponsor | No | Sponsor name (e.g. "Pfizer", "NIH", "Mayo Clinic") | |
| condition | No | Disease or condition (e.g. "diabetes", "breast cancer", "alzheimer") | |
| intervention | No | Drug, device, or intervention (e.g. "metformin", "pembrolizumab") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions return fields and search criteria but does not disclose whether the operation is read-only, any authentication requirements, error handling, or behavior for empty results. For a search tool, the description adds limited behavioral context beyond the obvious read-only nature implied by 'search'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, stating the primary action and resource in the first sentence, followed by a clear list of returned fields. Every sentence adds value with no redundant or extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the tool's purpose and return fields, which is important given no output schema. It does not mention sorting, pagination, or how the limit parameter affects results, but those details are captured in the schema. For a search tool with six optional parameters, the description is reasonably complete, though it could mention when to use sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well-documented in the schema. The description lists the search dimensions (condition, intervention, sponsor, status, phase) which map to parameters, but it does not add new semantic meaning beyond the schema. Examples like 'Pfizer' and 'metformin' provide minor illustrative value but do not significantly enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and identifies the exact resource ('clinical trials on ClinicalTrials.gov') and the search criteria (condition, intervention, sponsor, status, phase). It clearly distinguishes from sibling tools like get_trial_details and get_trial_stats, which focus on specific trial info and statistics rather than discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for searching trials by various criteria, providing enough context for when to use it. However, it does not explicitly mention alternatives or conditions when this tool should not be used, such as pointing to get_trial_details for detailed trial information. No exclusions or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
get_trial_details - First observed
get_trial_stats - First observed
search_trials
Related MCP Connectors
Search ClinicalTrials.gov — find studies, retrieve results, match patients to eligible trials.
Provide structured access to ClinicalTrials.gov data for searching, retrieving, and analyzing clin…
ClinicalTrials MCP — wraps ClinicalTrials.gov API v2 (free, no auth)
Search 36M+ PubMed biomedical articles and ClinicalTrials.gov studies.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables searching and querying clinical trials from ClinicalTrials.gov with intelligent filtering for recruiting studies, geographic search, and detailed trial information including contacts and eligibility criteria.34 npm6MIT
- FlicenseNot gradedqualityDmaintenanceEnables searching and retrieving detailed clinical trial information from ClinicalTrials.gov via the official API.1-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to search and retrieve clinical trial data from ClinicalTrials.gov, supporting filters, study details, metadata, and statistics.-
- FlicenseNot gradedqualityDmaintenanceEnables searching and retrieving information from the ClinicalTrials.gov database of over 400,000 clinical studies, including trial details, eligibility criteria, locations, and results across 220+ countries.5-
Glama MCP Gateway
Add one secure layer between your agents and this server.