Skip to main content
Glama

Clinicaltrials Get Study Results

clinicaltrials_get_study_results
Read-onlyIdempotent

Fetch clinical trial results data from ClinicalTrials.gov for completed studies — outcome measures with statistics, adverse events, participant flow, baseline characteristics, and results metadata (limitations & caveats, certain-agreement disclosure restrictions, results point of contact). Only available for studies where hasResults is true. Use clinicaltrials_search_studies first to find studies with results. A results-rich record can exceed 500KB per study in full mode — bound it with summary=true, narrower sections, or the outcomeLimit / adverseEventLimit caps, whose trims are reported per study in filtersApplied.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nctIdsYesOne or more NCT IDs (max 20) — an empty list is rejected. E.g., "NCT12345678" or ["NCT12345678", "NCT87654321"]. Use summary=true for large batches to avoid large payloads.
summaryNoReturn condensed summaries instead of full data. Full mode renders every row and field on both output channels, so a large results set can exceed 500KB per study; summary mode reduces that to ~5KB. Summaries include outcome titles, types, timeframes, group counts, and top-level stats — omitting individual measurements, analyses, and per-group data. For a middle ground, keep full mode and cap the two lists that carry the bulk with outcomeLimit / adverseEventLimit.
sectionsNoFilter which sections to return. Values: outcomes, adverseEvents, participantFlow, baseline, moreInfo. Omit for all sections — an empty list is rejected, not treated as omission.
outcomeLimitNoOptional cap on the number of outcome measures returned per study, taken in the order ClinicalTrials.gov publishes them. Omit for no cap (every measure). Applies to full mode only — summary mode is already condensed. Each surviving measure keeps its complete groups/classes/measurements/analyses tree. Upstream total preserved in filtersApplied.totalOutcomes only when the cap trims the list.
adverseEventLimitNoOptional cap on the number of serious and other adverse events returned per study, applied to each list separately in upstream order. Omit for no cap (every event). Applies to full mode only — summary mode already ranks the top 20 by participants affected. Event groups are never capped. Upstream totals preserved in filtersApplied.totalSeriousEvents / totalOtherEvents only when the cap trims a list.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
resultsNoResults per study.
truncatedNoTrue when a cap trimmed a list on at least one study; absent when nothing was trimmed, matching filtersApplied one level down. Which study and which list is named in that study’s filtersApplied.
fetchErrorsNoStudies that could not be fetched.
studiesWithoutResultsNoNCT IDs that do not have results data.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark this read-only, open-world, and idempotent. The description adds valuable behavioral context: the hasResults prerequisite, the dramatic size range (5KB summary vs 500KB+ full), and the caps' behavior (order, trimming, filtersApplied reporting). This goes beyond the annotation flags, so 4 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, dense paragraph front-loads the key constraint (hasResults) before size warnings and caps. Every clause adds operational value; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers prerequisite (hasResults), sibling workflow (search first), size/performance behavior, and parameter interplay (summary vs full mode, limits). Output schema presumably conveys return shape, so missing description of return fields is acceptable. Minor gaps: no mention of authentication or pagination, but annotations don't signal those either.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions already cover all 5 parameters (100% coverage), so baseline is 3. The description adds practical semantics: how nctIds and summary interact, that sections lists are filters with no empty-list default, and the trimming behavior of outcomeLimit/adverseEventLimit with counters in filtersApplied. These nuances go beyond schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly identifies a specific resource:

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use: only for studies with hasResults true, and directs to use clinicaltrials_search_studies first to find such studies. It also advises on mode vs sections for large payloads. It does not explicitly mention when NOT to use (e.g., when you need the main study record), but the guidance provided is concrete and helpful, warranting a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool targets a distinct action: finding eligible trials, resolving field names, discovering field values, counting studies, fetching full records, fetching results, and searching. Even the count tool is clearly separated from search by its lightweight, no-data purpose. No two tools have ambiguous boundaries.

Naming Consistency5/5

All tools follow a strict 'clinicaltrials_' prefix followed by a descriptive verb_noun pattern (find_eligible, get_study_record, search_studies). The naming is uniform in snake_case and clearly indicates the operation and object. This consistency makes the tool set predictable.

Tool Count5/5

Seven tools is well within the ideal range for a focused MCP server. Each tool covers a necessary aspect of the ClinicalTrials.gov API (search, retrieval, counting, field exploration, results, eligibility matching) without bloat or redundancy. The scope feels complete for a read-only clinical trials interface.

Completeness5/5

The tool set covers the full read-only lifecycle: discovering the data model, searching, counting, fetching protocol records, fetching results, and matching patients to trials. There are no obvious gaps like missing location details or result statistics (both handled via parameters). The server fulfills its stated purpose without dead ends.