Skip to main content
Glama

Ct Recent Updates

ct_recent_updates
Read-onlyIdempotent

Track recent ClinicalTrials.gov activity by a specific event class within a verifiable date window. Three DISTINCT recency events, chosen via date_type: "last_update" (any edit to a study, ~5k/week — the default), "first_posted" (a study newly REGISTERED, ~1.3k/week), or "results_posted" (RESULTS first posted, ~140/week). Pass since (and optional until, YYYY-MM-DD) to bound a window — e.g. the last 7 days — and the returned total_count is the exact number of studies in that window so you can verify a weekly count from the output. Every study returns all THREE dates separately (first_posted_date, last_update_post_date, results_first_post_date) plus the design fields a screen needs (study_type, primary_purpose, phase, status, enrollment, conditions, interventions, sponsor). Sorted by the chosen event date, newest first. Use for "new trials registered this week", "trials that posted results in the last month", "recently updated diabetes studies".

Input Schema

NameRequiredDescriptionDefault
limitNoNumber of results per page (1-100, default 20). total_count reports the full window size regardless of limit.
queryNoOptional search term (condition/drug/keyword) to narrow results.
sinceNoWindow start (inclusive), YYYY-MM-DD. e.g. for a weekly review pass 7 days ago. Applies to the chosen date_type.
untilNoOptional window end (inclusive), YYYY-MM-DD. Omit for open-ended (up to today).
statusNoOptional overall-status filter (validated; e.g. RECRUITING, or a comma-union like "RECRUITING,COMPLETED").
sponsorNoOptional company name (e.g. "Regeneron", "Eli Lilly"). Returns only studies whose registered LEAD sponsor is that company (see sponsor_match), inside the since/until window. Use for a single-company digest.
date_typeNoWhich recency event to track/sort/window by: "last_update" (any edit, default), "first_posted" (new registration), "results_posted" (results first posted). These are different event classes with very different volumes — pick deliberately.
sponsor_matchNoWhich sponsor role the name must fill. "lead" (the default) returns only trials whose registered LEAD sponsor is that company. "lead_or_collaborator" also returns trials led by someone else that list the company as a collaborator — typically academic trials of the company's drug. Every returned study carries sponsor_match_field naming which one matched.

Output Schema

NameRequiredDescriptionDefault
studiesYesList of formatted trial summaries
total_countYesTotal recently updated trials

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / sponsor
      Added value: +{
      +  "description": "Optional company name (e.g. \"Regeneron\", \"Eli Lilly\"). Returns only studies whose registered LEAD sponsor is that company (see sponsor_match), inside the since/until window. Use for a single-company digest.",
      +  "type": "string"
      +}
    • addedInput schema / properties / sponsor_match
      Added value: +{
      +  "description": "Which sponsor role the name must fill. \"lead\" (the default) returns only trials whose registered LEAD sponsor is that company. \"lead_or_collaborator\" also returns trials led by someone else that list the company as a collaborator — typically academic trials of the company's drug. Every returned study carries sponsor_match_field naming which one matched.",
      +  "enum": [
      +    "lead",
      +    "lead_or_collaborator"
      +  ],
      +  "type": "string"
      +}
  2. Changed6 schema fields changed
    • addedInput schema / properties / date_type
      Added value: +{
      +  "description": "Which recency event to track/sort/window by: \"last_update\" (any edit, default), \"first_posted\" (new registration), \"results_posted\" (results first posted). These are different event classes with very different volumes — pick deliberately.",
      +  "enum": [
      +    "last_update",
      +    "first_posted",
      +    "results_posted"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / limit / description
      Previous value: -"Number of results (1-100, default 20)"New value: +"Number of results per page (1-100, default 20). total_count reports the full window size regardless of limit."
    • changedInput schema / properties / query / description
      Previous value: -"Optional search term to narrow results"New value: +"Optional search term (condition/drug/keyword) to narrow results."
    • addedInput schema / properties / since
      Added value: +{
      +  "description": "Window start (inclusive), YYYY-MM-DD. e.g. for a weekly review pass 7 days ago. Applies to the chosen date_type.",
      +  "type": "string"
      +}
    • addedInput schema / properties / status
      Added value: +{
      +  "description": "Optional overall-status filter (validated; e.g. RECRUITING, or a comma-union like \"RECRUITING,COMPLETED\").",
      +  "type": "string"
      +}
    • addedInput schema / properties / until
      Added value: +{
      +  "description": "Optional window end (inclusive), YYYY-MM-DD. Omit for open-ended (up to today).",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "studies": {
      +      "description": "List of formatted trial summaries",
      +      "items": {
      +        "properties": {
      +          "collaborators": {
      +            "description": "List of collaborator names",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "completion_date": {
      +            "description": "Final completion date",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "conditions": {
      +            "description": "List of trial conditions",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "enrollment": {
      +            "description": "Target enrollment count",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "enrollment_type": {
      +            "description": "Enrollment type",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "interventions": {
      +            "description": "List of interventions",
      +            "items": {
      +              "properties": {
      +                "description": {
      +                  "description": "Intervention description",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "name": {
      +                  "description": "Intervention name",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "type": {
      +                  "description": "Intervention type",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "nct_id": {
      +            "description": "NCT identifier",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "official_title": {
      +            "description": "Official trial title",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "phase": {
      +            "description": "Trial phase(s) comma-separated",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "primary_completion_date": {
      +            "description": "Primary completion date",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "sponsor": {
      +            "description": "Lead sponsor name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "sponsor_class": {
      +            "description": "Sponsor class",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "start_date": {
      +            "description": "Trial start date",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "status": {
      +            "description": "Overall trial status",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "title": {
      +            "description": "Brief trial title",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total_count": {
      +      "description": "Total recently updated trials",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total_count",
      +    "studies"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "limit": 20,
      +    "query": "oncology"
      +  },
      +  {
      +    "limit": 30
      +  }
      +]
  5. First observed

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds meaningful context: total_count is the exact window size for verification, results are sorted by the chosen event date newest-first, and every study carries all three dates plus sponsor_match_field. That is genuine added value, though pagination/rate behavior is left implicit.

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

Conciseness4/5

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

Front-loaded with the core verb and the three-way date_type choice, then the verification and return-shape details. It is dense but every clause carries information; the only cost is length, which is justified by an 8-parameter tool.

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?

Covers windowing, event-class selection, sponsor filtering, sorting, verification via total_count, and the returned field set — everything an agent needs to invoke correctly, and it does so without needing to restate the output schema.

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 coverage is 100% so the baseline is 3, but the description goes beyond the schema by explaining why date_type matters (three event classes with ~5k/~1.3k/~140 weekly volumes) and by tying `since` to the chosen date_type. sponsor_match is clarified with the academic-trial collaborator case and the sponsor_match_field output marker.

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?

States a specific verb+resource (track ClinicalTrials.gov activity by event class within a date window) and enumerates the three distinct event classes with their own volumes. An agent can distinguish this from ct_search or ct_sponsor_trials purely from the description.

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?

Explicitly names the concrete user intents that select each date_type ("new trials registered this week", "trials that posted results in the last month"), including the "pick deliberately" warning backed by volume figures. It also explains the sponsor/sponsor_match pairing and when to omit `until`.

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.