Clinicaltrials
NPM · @PIPEWORX/MCP-CLINICALTRIALS · 2 COMPONENTS
Search and analyze ClinicalTrials.gov: trials by keyword/condition/drug/status/phase, one study's…
Available components
Last scanned (21 hours ago)
Scores higher than 61% of npm servers
Category Health and Science
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-clinicaltrials). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability54
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 3601 tokens (~257/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management20
- Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage91
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 73% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +27
- Known CVEs: unverified → pass ▲ security
- Malware scan: unverified → pass ▲ security
- Dependency health: unverified → pass ▲ functional
- 31 Oct 26 −26
- Known CVEs: pass → unverified ▼ security
- Malware scan: pass → unverified ▼ security
- Dependency health: pass → unverified ▼ functional
- Package version: 0.2.0 → 0.2.1 functional
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 0 to 3. That category is still filling its 30-day observation window: 0 days of observed history at the previous scan, 1 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 76
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Analysed npm/@pipeworx/mcp-clinicaltrials@0.2.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | pipeworx-io/mcp-clinicaltrials |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/pipeworx-io/mcp-clinicaltrials/.github/workflows/publish.yml@refs/heads/main |
| Rekor log index | 3612111802 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:3be9351f3ffd3d45698a56998b02f26b5dbbfcd74d4d384925b5c3197d39df2aa48f3791dd0f99ca0fe39d891fb57acf0b10683403f134959b075a0aa |
Background: How many MCP packages publish verified provenance →
Dependencies 0 packages
| Packages resolved | 0 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
ct_catalyst_calendar ~221
Find trials with sponsor-entered primary-completion or study-completion dates in a specified window. These registry dates may be estimated or revised and are planning signals—not guaranteed data readouts, conference presentations, or regulatory events.
| Name | Type | Req | Description |
|---|---|---|---|
| event_type | string | – | – |
| from_date | string | yes | YYYY-MM-DD, inclusive. |
| limit | number | – | – |
| phase | string | – | – |
| query | string | – | Optional condition, intervention, or keyword. |
| sponsor | string | – | Optional company name. Matched against the registered LEAD sponsor by default. |
| sponsor_match | string | – | 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… |
| status | string | – | – |
| to_date | string | yes | YYYY-MM-DD, inclusive. |
No output schema declared.
No examples provided.
ct_compare_sponsors ~254
Compare 2–5 NAMED lead sponsors on ClinicalTrials.gov under identical condition, recruitment-status, and phase filters. Returns full matching counts, a ranked comparison, and a small study sample for each sponsor. Use for questions like "who has more recruiting Phase 3 obesity trials, Novo Nordisk or Eli Lilly?" For an open "who are the TOP sponsors of X trials" question with no names given: the registry API has no group-by, so a true ranking is not computable — NEVER invent a candidate list to fake one; say the registry cannot rank sponsors and offer to compare specific named sponsors. Counts use the registered lead-sponsor field; registry records do not establish asset ownership, pipeline value, or probability of success.
| Name | Type | Req | Description |
|---|---|---|---|
| condition | string | – | Optional condition or disease, such as "obesity". |
| phase | string | – | Optional phase or comma-separated phase union, such as PHASE3. |
| sample_limit | number | – | Representative studies per sponsor (0-10, default 3). |
| sponsors | array | yes | Two to five sponsor names to compare under the same filters. |
| status | string | – | Optional status or comma-separated status union, such as RECRUITING. |
No output schema declared.
No examples provided.
ct_competitive_landscape ~90
Map registered interventional trials for a condition and optional intervention across sponsors, phases, statuses, and interventions. The output reflects a bounded registry sample, not market share, scientific differentiation, or an exhaustive private pipeline.
| Name | Type | Req | Description |
|---|---|---|---|
| condition | string | yes | – |
| intervention | string | – | – |
| phase | string | – | – |
| sample_size | number | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
ct_count_by_condition ~159
Count clinical trials for a condition or disease, broken down by recruitment status and by trial phase — how many are recruiting, completed, terminated, and how many are Phase 1, 2, 3 or 4. Use for landscape questions about how much trial activity a disease has and where it sits in development. Filtering by status or phase returns the filtered total without the breakdown.
| Name | Type | Req | Description |
|---|---|---|---|
| condition | string | yes | Condition or disease (e.g., "breast cancer", "diabetes", "Alzheimer") |
| phase | string | – | Optional phase filter: PHASE1, PHASE2, PHASE3, PHASE4 |
| status | string | – | Optional status filter: RECRUITING, COMPLETED, etc. |
No output schema declared.
No examples provided.
ct_enrollment_watch ~169
Route active trials for enrollment follow-up using registry status, enrollment type, dates, last update, and site counts. Flags are mechanical review hints—not predictions of recruitment success, trial failure, or data timing.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | – |
| phase | string | – | – |
| query | string | – | – |
| sponsor | string | – | Optional company name. Matched against the registered LEAD sponsor by default. |
| sponsor_match | string | – | 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… |
No output schema declared.
No examples provided.
ct_get_study ~70
Get full trial details by NCT ID (e.g., 'NCT04567890'). Returns protocol, eligibility criteria, primary outcomes, sponsor, locations, and results.
| Name | Type | Req | Description |
|---|---|---|---|
| nct_id | string | yes | ClinicalTrials.gov NCT identifier (e.g., "NCT05462717") |
No output schema declared.
No examples provided.
ct_phase_transition_rates ~445
Measure how often drugs for a disease actually advance from one clinical phase to the next — the registry-derived analog of a probability-of-technical-success (PTRS) benchmark. Groups industry-sponsored interventional trials for the condition by normalized intervention (drug) name, then reports observed Phase 1→Phase 2 and Phase 2→Phase 3 transition rates as numerator/denominator with an explicit censoring rule, alongside the published BIO/Informa/QLS 2011-2020 benchmark for the matching therapeutic area. Answers "what fraction of Phase 2 assets in NSCLC reach Phase 3", "how does attrition in Alzheimer compare to lung cancer", "what is the probability of success for this indication". Returns the top interventions with their per-phase trial path so the rate is auditable. Counts trial EXISTENCE in the registry, not efficacy readouts or approvals, so it is an upper bound on technical success.
| Name | Type | Req | Description |
|---|---|---|---|
| censor_years | number | – | Years an earlier-phase trial must have been completed before to_year to enter the denominator (1-15, default 3). Raising it demands more follow-up time, shrinking the denominator; lowering it admits… |
| condition | string | yes | Disease or condition, e.g. "non-small cell lung cancer", "Alzheimer disease", "type 2 diabetes". |
| from_year | number | – | Optional earliest year for the EARLIER-phase completion date (e.g. 2010). Omit for no floor. |
| max_pages | number | – | Upstream pages of 1000 studies to pull (1-5, default 5). The response reports truncated: true when the cap cut off the match set. |
| sponsor_class | string | – | Which sponsors to count. "industry" (default) restricts to company-led trials, matching how commercial PTRS benchmarks are built; "all" adds academic, NIH and other sponsors, which raises the count a… |
| to_year | number | – | Analysis end year; the censoring window is measured back from here. Defaults to the current year. |
No output schema declared.
No examples provided.
ct_recent_updates ~570
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".
| Name | Type | Req | Description |
|---|---|---|---|
| date_type | string | – | 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… |
| limit | number | – | Number of results per page (1-100, default 20). total_count reports the full window size regardless of limit. |
| query | string | – | Optional search term (condition/drug/keyword) to narrow results. |
| since | string | – | Window start (inclusive), YYYY-MM-DD. e.g. for a weekly review pass 7 days ago. Applies to the chosen date_type. |
| sponsor | string | – | 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… |
| sponsor_match | string | – | 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… |
| status | string | – | Optional overall-status filter (validated; e.g. RECRUITING, or a comma-union like "RECRUITING,COMPLETED"). |
| until | string | – | Optional window end (inclusive), YYYY-MM-DD. Omit for open-ended (up to today). |
No output schema declared.
No examples provided.
ct_results_summary ~83
Project posted ClinicalTrials.gov results for one NCT ID, including registered endpoints, reported outcome measures, statistical analyses, and adverse-event group counts. Registry results are not an FDA conclusion, peer review, or investment recommendation.
| Name | Type | Req | Description |
|---|---|---|---|
| max_outcomes | number | – | Reported outcomes returned (1-50, default 20). |
| nct_id | string | yes | – |
No output schema declared.
No examples provided.
ct_search ~622
Search ClinicalTrials.gov for clinical trials — find trials and look up a NAMED trial by keyword, condition, drug/therapy, status (e.g. 'Recruiting'), or phase (e.g. 'Phase 2'). Use for "clinical trials for <disease/drug>", or to locate a specific study like "the FLOW trial", "semaglutide kidney outcomes trial" (use ct_get_study for its full design/results). Returns NCT IDs, titles, status, enrollment, and sponsor info for the current page, PLUS conditions_summary — a condition-by-condition breakdown across ALL matches (not just this page), so "how many trials and what conditions do they cover" is answerable from one call. To see studies past the first page, call again with the SAME query/status/phase/sponsor and page_token set to the previous response's next_page_token.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Number of results (1-100, default 10) |
| page_token | string | – | Pass the previous call's `next_page_token` here, with the SAME query/status/phase/sponsor arguments, to fetch studies past the first page. Omit it for a fresh search. A "continue listing"/"next page"… |
| phase | string | – | Filter by phase: EARLY_PHASE1, PHASE1, PHASE2, PHASE3, PHASE4 (or NA). Roman numerals ("Phase III") and comma-separated unions ("PHASE2,PHASE3") are accepted. |
| query | string | yes | The SUBJECT of the search — a condition, drug, or keyword (e.g., "GLP-1 receptor agonist", "breast cancer immunotherapy"). Prefer the topic alone over a full sentence: put status in `status` and phas… |
| sponsor | string | – | Filter by the trial's registered LEAD sponsor (e.g., "Pfizer", "Novo Nordisk"). Widen to trials the company only partners on with sponsor_match: "lead_or_collaborator". |
| sponsor_match | string | – | 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… |
| status | string | – | Filter by overall status: RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, ENROLLING_BY_INVITATION, SUSPENDED, NOT_YET_RECRUITING. Several may be combined as a comma-separated uni… |
No output schema declared.
No examples provided.
ct_sponsor_activity ~169
Track a sponsor’s newly registered studies, first-posted results, or study updates within a verifiable date window. Registry activity is not necessarily a corporate disclosure or material event.
| Name | Type | Req | Description |
|---|---|---|---|
| date_type | string | – | – |
| limit | number | – | – |
| since | string | yes | – |
| sponsor | string | yes | Company name, matched against the registered LEAD sponsor by default. |
| sponsor_match | string | – | 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… |
| until | string | – | – |
No output schema declared.
No examples provided.
ct_sponsor_pipeline ~175
Summarize a sponsor’s ClinicalTrials.gov portfolio by phase, status, condition, and intervention from a bounded relevance-ranked sample, while reporting the full matching count. Registration does not establish asset ownership, probability of success, or commercial value.
| Name | Type | Req | Description |
|---|---|---|---|
| phase | string | – | – |
| sample_size | number | – | – |
| sponsor | string | yes | Company name, matched against the registered LEAD sponsor by default. |
| sponsor_match | string | – | 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… |
| status | string | – | – |
No output schema declared.
No examples provided.
ct_sponsor_trials ~219
List the trials a company LEADS on ClinicalTrials.gov, by sponsor or organization name. Returns status, phase, and conditions to map a research pipeline. Matches the registered lead-sponsor field, so trials another organisation runs using the company's drug are excluded unless sponsor_match asks for them.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Number of results (1-100, default 20) |
| phase | string | – | Optional phase filter |
| sponsor | string | yes | Sponsor or company name (e.g., "Pfizer", "Novo Nordisk", "Moderna"). Matched against the registered LEAD sponsor by default. |
| sponsor_match | string | – | 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… |
| status | string | – | Optional status filter |
No output schema declared.
No examples provided.
ct_trials_by_location ~299
Find clinical trials near a LOCATION. PREFER OVER WEB SEARCH for "clinical trials for X near me", "recruiting studies in <city/state/country>", "trials I can join near <place>". Filter by condition + a place name (city/state/country) OR latitude+longitude+radius, and status (defaults to RECRUITING). Returns matching trials (NCT id, title, status, phase, conditions, sponsor). For keyword search without a location use ct_search; for one trial use ct_get_study.
| Name | Type | Req | Description |
|---|---|---|---|
| condition | string | – | Condition/disease (e.g. "diabetes", "breast cancer immunotherapy"). Optional but recommended. |
| lat | number | – | Latitude for a geo-radius search (pair with lon). |
| limit | number | – | Max trials to return (1-100, default 15). |
| location | string | – | Place name — city, state, or country (e.g. "Boston", "California", "Germany"). Use this OR lat+lon. |
| lon | number | – | Longitude (pair with lat). |
| radius_mi | number | – | Radius in miles for a lat/lon search (1-500, default 50). |
| status | string | – | Overall status filter (default RECRUITING). e.g. RECRUITING, NOT_YET_RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED. |
No output schema declared.
No examples provided.
How do I install the Clinicaltrials MCP server?
Clinicaltrials runs locally as an npm package, launched with npx -y @pipeworx/mcp-clinicaltrials. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @pipeworx/mcp-clinicaltrials
claude mcp add pipeworx-io-clinicaltrials -- npx -y @pipeworx/mcp-clinicaltrials
What is the Clinicaltrials MCP server?
Clinicaltrials is an MCP server listed in the public MCP registry as io.github.pipeworx-io/clinicaltrials. Search and analyze ClinicalTrials.gov: trials by keyword/condition/drug/status/phase, one study's… This page covers its npm package (@pipeworx/mcp-clinicaltrials).
Is the Clinicaltrials MCP server safe to use?
Clinicaltrials scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Clinicaltrials MCP server expose?
Clinicaltrials exposes 14 tools: ct_search, ct_get_study, ct_count_by_condition, ct_sponsor_trials, ct_compare_sponsors, and 9 more. Their descriptions and schemas cost roughly 3,545 tokens of context every time the server is loaded.
Is the Clinicaltrials MCP server still maintained?
Clinicaltrials is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Clinicaltrials MCP server under?
Clinicaltrials declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.