Skip to main content
Glama

get_trial_coverage

Read-only

USE BEFORE STATING ANY WORLDWIDE COUNT. Answers: how many DISTINCT trials exist for this query across every registry in the index, how many are the same trial registered more than once, which trials are exclusive to each registry, and exactly how much you would have overcounted by querying each registry separately and adding the results (inflation). This is the tool that stops you turning separate registry totals into one wrong number. Accepts the same filter vocabulary as search_world_trials so a coverage figure always describes the population you actually searched. NEXT: search_world_trials for the records themselves, get_trial_landscape for their structure.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_trial_coverage"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNoFree-text condition/intervention query, e.g. "type 1 diabetes islet". Tokens are ANDed.
phaseNoComma-separated phases: 1-4, I-IV, early_phase1, or 1/2. Phase is missing for much of the corpus.
topicNoCure Protocol topic id (get_trial_stats lists them).
statusNorecruiting | active_not_recruiting | not_yet_recruiting | completed | halted | terminated | withdrawn | not_authorised | unknown, or "active" for any open status (recruiting + active_not_recruiting + not_yet_recruiting). Case-insensitive; unknown values return 400.
countryNoRecruiting/site country: full English name or ISO code (US, USA, UK, DE, ...).
sponsorNoFree-text sponsor name match.
registryNoclinicaltrials_gov | isrctn. OMIT for full-index scope, restricting to one registry makes the answer single-registry evidence.
conditionNoExact registry condition term. Prefer q unless you know the exact string.
studyTypeNointerventional | observational | expanded_access | other.
interventionNoFree-text intervention match: the way to separate MODALITIES within one disease.
startedAfterNoISO date: study start on/after.
updatedSinceNoISO date: only records updated on/after this date.
crossRegistryNotrue = only trials registered in more than one registry.
maxEnrollmentNoMaximum normalized enrollment.
minEnrollmentNoMinimum normalized enrollment.
startedBeforeNoISO date: study start on/before.
completionAfterNoISO date: completion on/after.
completionBeforeNoISO date: completion on/before.
resultsAvailableNoRestrict to trials with/without posted results.

Output Schema

NameRequiredDescriptionDefault
dataNoThe answer. Shape depends on the tool; describe_tool documents it.
_metaNosource, generatedAt, sources (per-source lastSyncedAt and ageHours), rateLimit, disclaimer.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "_meta": {
      +      "additionalProperties": {},
      +      "description": "source, generatedAt, sources (per-source lastSyncedAt and ageHours), rateLimit, disclaimer.",
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "data": {
      +      "description": "The answer. Shape depends on the tool; describe_tool documents it."
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed16 schema fields changed
    • addedInput schema / properties / completionAfter / maxLength
      Added value: +20000
    • addedInput schema / properties / completionBefore / maxLength
      Added value: +20000
    • addedInput schema / properties / condition / maxLength
      Added value: +20000
    • addedInput schema / properties / country / maxLength
      Added value: +20000
    • addedInput schema / properties / intervention / maxLength
      Added value: +20000
    • addedInput schema / properties / phase / anyOf
      Added value: +[
      +  {
      +    "maxLength": 2000,
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "maxLength": 200,
      +      "type": "string"
      +    },
      +    "maxItems": 100,
      +    "minItems": 1,
      +    "type": "array"
      +  }
      +]
    • removedInput schema / properties / phase / type
      Removed value: -"string"
    • addedInput schema / properties / q / maxLength
      Added value: +500
    • addedInput schema / properties / registry / maxLength
      Added value: +20000
    • addedInput schema / properties / sponsor / maxLength
      Added value: +20000
    • addedInput schema / properties / startedAfter / maxLength
      Added value: +20000
    • addedInput schema / properties / startedBefore / maxLength
      Added value: +20000
    • addedInput schema / properties / status / maxLength
      Added value: +20000
    • addedInput schema / properties / studyType / maxLength
      Added value: +20000
    • addedInput schema / properties / topic / maxLength
      Added value: +20000
    • addedInput schema / properties / updatedSince / maxLength
      Added value: +20000
  3. Changed3 schema fields changed
    • changedInput schema / properties / country / description
      Previous value: -"Recruiting/site country."New value: +"Recruiting/site country: full English name or ISO code (US, USA, UK, DE, ...)."
    • changedInput schema / properties / phase / description
      Previous value: -"Comma-separated phases, e.g. \"1,2\". Phase is missing for much of the corpus."New value: +"Comma-separated phases: 1-4, I-IV, early_phase1, or 1/2. Phase is missing for much of the corpus."
    • changedInput schema / properties / status / description
      Previous value: -"Recruitment status, or \"active\" for recruiting + active + not_yet_recruiting."New value: +"recruiting | active_not_recruiting | not_yet_recruiting | completed | halted | terminated | withdrawn | not_authorised | unknown, or \"active\" for any open status (recruiting + active_not_recruiting + not_yet_recruiting). Case-insensitive; unknown values return 400."
  4. Changed7 schema fields changed
    • changedInput schema / properties / completionAfter / description
      Previous value: -"ISO date — completion on/after."New value: +"ISO date: completion on/after."
    • changedInput schema / properties / completionBefore / description
      Previous value: -"ISO date — completion on/before."New value: +"ISO date: completion on/before."
    • changedInput schema / properties / intervention / description
      Previous value: -"Free-text intervention match — the way to separate MODALITIES within one disease."New value: +"Free-text intervention match: the way to separate MODALITIES within one disease."
    • changedInput schema / properties / registry / description
      Previous value: -"clinicaltrials_gov | isrctn. OMIT for full-index scope — restricting to one registry makes the answer single-registry evidence."New value: +"clinicaltrials_gov | isrctn. OMIT for full-index scope, restricting to one registry makes the answer single-registry evidence."
    • changedInput schema / properties / startedAfter / description
      Previous value: -"ISO date — study start on/after."New value: +"ISO date: study start on/after."
    • changedInput schema / properties / startedBefore / description
      Previous value: -"ISO date — study start on/before."New value: +"ISO date: study start on/before."
    • changedInput schema / properties / updatedSince / description
      Previous value: -"ISO date — only records updated on/after this date."New value: +"ISO date: only records updated on/after this date."
  5. First observed

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already establish read-only and closed-world behavior, and the description adds substantial behavioral context beyond that: it computes distinct-trial counts across registries, identifies duplicate registrations, reports registry exclusivity, and calculates the inflation from naively summing registry totals. That directly explains what the tool does differently from a simple count tool and why it prevents overcounting.

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?

The description is front-loaded with the critical instruction and then explains the computed outputs in one dense sentence. The remaining sentences add usage context and next-step routing without wasting space.

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

Completeness5/5

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

Given the 19-parameter schema with full description coverage, an output schema, and read-only annotations, the description provides everything an agent needs to select and invoke this tool correctly. It explains the analytical purpose, the filter compatibility, and the correct neighboring tools.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already carries the parameter semantics and the baseline is 3. The description adds a useful cross-reference that it accepts the same filter vocabulary as `search_world_trials`, but it does not add per-parameter meaning beyond the schema.

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?

The description states a precise analytical purpose: it answers how many DISTINCT trials exist, how many are duplicate registrations, which trials are registry-exclusive, and what the `inflation` overcount would be. It clearly distinguishes this coverage/deduplication role from sibling tools such as `search_world_trials` for records and `get_trial_landscape` for structure.

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

Usage Guidelines5/5

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

It gives an explicit trigger: 'USE BEFORE STATING ANY WORLDWIDE COUNT.' It also names the alternatives and when to use them: `search_world_trials` for the records themselves and `get_trial_landscape` for their structure.

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.

Resources