github TypeScript analyzed 7c2b171

clinicaltrialsgov-mcp-server

github

Search ClinicalTrials.gov trials, retrieve study details and results, and match patients to eligible trials via MCP. STDIO or Streamable HTTP.

maintainer
cyanheads
licence
Apache-2.0
first seen
2026-05-22
last seen
2026-09-03
releases · 30d
6
short id

Drift inferred · capture-to-capture

  1. MEDIUM 1 tool changed permissions · 6 descriptions changed (high-adoption)
  2. MEDIUM 1 tool changed permissions · dropped secrets

tool count over time

05-30 13:51 06-20 13:58 now
7t
7t
7t
7t
capabilities 7 tools
transport stdio · streamable-http · http verified reported listed in the official MCP registry counts 7 tools · 0 res · 1 prompts permission surface via registry introspection

tools

  • clinicaltrials_find_eligible

    Match patient demographics and conditions to eligible recruiting clinical trials. Provide age, sex, conditions, and location to find studies with matching eligibility criteria, contact information, and recruiting locations. Results are re-ranked so studies whose own condition matches a requested condition surface above tangential matches from ClinicalTrials.gov's fuzzy condition search.

    in ▸ age sex location conditions maxResults recruitingOnly healthyVolunteer

  • clinicaltrials_get_field_definitions

    Resolve valid field names from the ClinicalTrials.gov data model — the canonical PascalCase identifiers (OverallStatus, EnrollmentCount, LeadSponsorName) accepted by the `fields`, `advancedFilter`, and `sort` parameters of other tools, and as input to clinicaltrials_get_field_values. Select a mode: `"search"` — keyword search returning ranked matches (pass `query`, e.g. "enrollment", "sponsor", "adverse events"); `"drill"` — drill into a specific section by dot-notation path (pass `path`, e.g. "protocolSection.designModule"); `"overview"` — top-level summary of all sections (no additional args).

    in ▸ mode path limit query includeIndexedOnly

  • clinicaltrials_get_field_values

    Discover valid values for ClinicalTrials.gov fields with study counts per value. Use to explore available filter options before building a search — e.g., valid OverallStatus, Phase, InterventionType, StudyType, or LeadSponsorClass values.

    in ▸ fields

  • clinicaltrials_get_study_count

    Get total clinical trial study count from ClinicalTrials.gov matching a query, without fetching study data. Fast and lightweight. Use for quick statistics or to build breakdowns by calling multiple times with different filters (e.g., count by phase, count by status, count recruiting vs completed for a condition).

    in ▸ query titleQuery phaseFilter outcomeQuery sponsorQuery statusFilter locationQuery advancedFilter conditionQuery interventionQuery includeUnknownEnrollment

  • clinicaltrials_get_study_record

    Fetch a single clinical trial study by NCT ID from ClinicalTrials.gov. Returns the full study record including protocol details, eligibility criteria, outcomes, arms, interventions, contacts, and locations. Optional locationLimit / outcomeLimit / referenceLimit / nearLocation parameters trim locations, outcomes, and references — original totals are preserved in `filtersApplied` only when a cap actually trims the set.

    in ▸ nctId nearLocation outcomeLimit locationLimit referenceLimit

  • clinicaltrials_get_study_results

    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.

    in ▸ nctIds summary sections

  • clinicaltrials_search_studies

    Search for clinical trial studies from ClinicalTrials.gov. Supports full-text and field-specific queries, status/phase/geographic filters, pagination, sorting, and field selection. Returns a compact per-study index by default; pass the fields parameter to get specific leaves at full fidelity — full study records are ~70KB each.

    in ▸ sort query fields nctIds pageSize geoFilter pageToken countTotal titleQuery phaseFilter outcomeQuery sponsorQuery statusFilter locationQuery advancedFilter conditionQuery interventionQuery includeUnknownEnrollment

prompts

  • analyze_trial_landscape Guides analysis of a clinical trial landscape using the ClinicalTrials.gov MCP tools. Adaptable workflow for breakdowns by status, phase, sponsor, geography, etc.
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 7c2b171 · analyzer v33 · 1d ago

skills & prompt files 34

code evidence vv2.9.3 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 61

filesystem 16

  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/build-changelog.ts :32 import { existsSync, readdirSync, readFileSync, writeFileSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/build.ts :17 import { readFileSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/check-dependency-specifiers.ts :38 import { existsSync, readFileSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/check-docs-sync.ts :22 import { existsSync, readFileSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/check-framework-antipatterns.ts :39 import { existsSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/check-skill-versions.ts :33 import { existsSync, readFileSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/check-skills-sync.ts :37 import { existsSync, readdirSync, readFileSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/clean-mcpb.ts :29 import { existsSync, statSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/clean.ts :15 import { readdir, rm } from 'node:fs/promises';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/devcheck.ts :3 import { existsSync, readFileSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/lint-mcp.ts :19 import { existsSync, readdirSync, readFileSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/lint-packaging.ts :52 import { existsSync, readdirSync, readFileSync } from 'node:fs';
show 4 more
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/list-skills.ts :21 import { existsSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/release-github.ts :33 import { existsSync, readFileSync } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/tree.ts :24 import type { Dirent } from 'node:fs';
  • fs (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/tests/helpers/format-parity.ts :10 import { readFileSync } from 'node:fs';

shell / exec 7

  • shell (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/build.ts :16 import { execFile } from 'node:child_process';
  • shell (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/check-framework-antipatterns.ts :38 import { spawnSync } from 'node:child_process';
  • shell (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/check-skill-versions.ts :32 import { spawnSync } from 'node:child_process';
  • shell (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/clean-mcpb.ts :28 import { execFileSync } from 'node:child_process';
  • shell (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/devcheck.ts :2 import { type ChildProcess, spawn, spawnSync } from 'node:child_process';
  • shell (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/lint-packaging.ts :51 import { execFileSync } from 'node:child_process';
  • shell (weak) cyanheads-clinicaltrialsgov-mcp-server-7c2b171/scripts/release-github.ts :32 import { spawnSync } from 'node:child_process';

network 1

  • net cyanheads-clinicaltrialsgov-mcp-server-7c2b171/src/services/clinical-trials/clinical-trials-service.ts :649 const res = await fetch(url, {

tool registrations 7

  • clinicaltrials_find_eligible cyanheads-clinicaltrialsgov-mcp-server-7c2b171/src/mcp-server/tools/definitions/find-eligible.tool.ts :251
  • clinicaltrials_get_field_definitions cyanheads-clinicaltrialsgov-mcp-server-7c2b171/src/mcp-server/tools/definitions/get-field-definitions.tool.ts :47
  • clinicaltrials_get_field_values cyanheads-clinicaltrialsgov-mcp-server-7c2b171/src/mcp-server/tools/definitions/get-field-values.tool.ts :12
  • clinicaltrials_get_study_count cyanheads-clinicaltrialsgov-mcp-server-7c2b171/src/mcp-server/tools/definitions/get-study-count.tool.ts :18
  • clinicaltrials_get_study_results cyanheads-clinicaltrialsgov-mcp-server-7c2b171/src/mcp-server/tools/definitions/get-study-results.tool.ts :727
  • clinicaltrials_get_study_record cyanheads-clinicaltrialsgov-mcp-server-7c2b171/src/mcp-server/tools/definitions/get-study.tool.ts :102
  • clinicaltrials_search_studies cyanheads-clinicaltrialsgov-mcp-server-7c2b171/src/mcp-server/tools/definitions/search-studies.tool.ts :255

install hooks 1

  • prepare cyanheads-clinicaltrialsgov-mcp-server-7c2b171/package.json :41 git config core.hooksPath .husky || exit 0

declared dependencies 15

  • @cyanheads/mcp-ts-core@^0.12.5
  • pino-pretty@^13.1.3
  • zod@^4.5.4
  • @biomejs/biome@^2.5.11
  • @socketsecurity/bun-security-scanner@^1.1.2
  • @types/bun@^1.4.0
  • @types/node@26.4.0
  • @vitest/coverage-istanbul@^4.1.11
  • depcheck@^1.4.7
  • fast-check@^4.9.0
  • ignore@^7.0.7
  • tsc-alias@^1.9.2
show 3 more
  • typescript@^7.0.2
  • vite@^8.2.2
  • vitest@^4.1.11