# io.usefulapi/clinicaltrialsgov (remote · clinicaltrialsgov.usefulapi.io)

Search and read ClinicalTrials.gov studies, sites and outcomes.

- Trust score: 18/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-04

## Components

- remote · `clinicaltrialsgov.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-clinicaltrialsgov/clinicaltrialsgov.md), [page](https://verifymcp.io/servers/io-usefulapi-clinicaltrialsgov/clinicaltrialsgov)

## Channel facts

- Endpoint: `https://clinicaltrialsgov.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-04.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 429, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint returned HTTP 429.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the io.usefulapi/clinicaltrialsgov MCP server?

io.usefulapi/clinicaltrialsgov is a hosted endpoint at https://clinicaltrialsgov.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-clinicaltrialsgov 'https://clinicaltrialsgov.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-clinicaltrialsgov": {
      "url": "https://clinicaltrialsgov.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-clinicaltrialsgov": {
      "type": "http",
      "url": "https://clinicaltrialsgov.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-clinicaltrialsgov]
url = "https://clinicaltrialsgov.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-clinicaltrialsgov": {
      "type": "remote",
      "url": "https://clinicaltrialsgov.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-clinicaltrialsgov --url 'https://clinicaltrialsgov.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-clinicaltrialsgov:
    url: "https://clinicaltrialsgov.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-clinicaltrialsgov": {
      "Transport": "http",
      "Url": "https://clinicaltrialsgov.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-clinicaltrialsgov -t streamable-http -u 'https://clinicaltrialsgov.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-clinicaltrialsgov": {
      "type": "http",
      "url": "https://clinicaltrialsgov.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-03 (score 18, −57)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] HTTPS: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Transport: pass → fail
- [functional regression] Capabilities: fail → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-10-02 (score 75, +42)

- [security improvement] Authorization: unverified → pass
- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [security] First check of Authorization: partial
- [functional regression] MCP protocol: unverified → fail
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Destructive annotations: pass
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100

### 2026-10-01 (score 33, +15)

- [security improvement] Transport: unverified → pass
- [security improvement] HTTPS: unverified → pass
- [security] Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the whole tool list to see what that exposes.

### 2026-09-30 (score 18, 0)

- [security regression] Transport: fail → unverified

### 2026-09-29 (score 18)

First indexed and scored.

## MCP tools (7)

### `search_studies` (~594 tokens)

Search clinical trials (ClinicalTrials.gov)

Search the ClinicalTrials.gov v2 study registry. Provide any combination of query terms (condition, intervention, title, location, sponsor, general term) — multiple query.* terms are ANDed together — plus optional filters (status, geo, advanced Essie expression, explicit NCT ids). Returns { totalCount?, studies: [...], nextPageToken? }. Use `fields` to trim the response to specific fields/modules, `sort` to order (e.g. '@relevance', 'LastUpdatePostDate:desc', 'EnrollmentCount:desc'), and pageSize/pageToken to page. GET /studies.

Input parameters:

- `advanced` (string): Advanced Essie expression applied as an additional filter (maps to filter.advanced).
- `condition` (string): Disease / condition to match (maps to query.cond), e.g. 'diabetes'.
- `countTotal` (boolean): Include the total number of matching studies (totalCount) on the first page.
- `fields` (array): Fields or modules to return, e.g. ['NCTId','BriefTitle','OverallStatus'] or ['protocolSection.identificationModule']. Omit to return full study records.
- `geoFilter` (string): Geo filter as a raw geo-function string (maps to filter.geo), e.g. 'distance(39.0027,-77.1,50mi)'.
- `ids` (array): Restrict to these NCT ids (maps to filter.ids), e.g. ['NCT00841061'].
- `intervention` (string): Treatment / drug / intervention to match (maps to query.intr).
- `location` (string): Study location text, e.g. a city/state/country (maps to query.locn).
- `pageSize` (integer): Number of studies per page (1–1000; API default 10).
- `pageToken` (string): Opaque token from a previous response's nextPageToken, to fetch the next page.
- `sort` (string): Sort order, e.g. '@relevance', 'LastUpdatePostDate:desc', 'EnrollmentCount:desc', 'StudyFirstPostDate:desc'.
- `sponsor` (string): Sponsor / collaborator name (maps to query.spons).
- `status` (array): Filter by overall recruitment status (maps to filter.overallStatus). One or more of: ACTIVE_NOT_RECRUITING, COMPLETED, ENROLLING_BY_INVITATION, NOT_YET_RECRUITING, RECRUITING, SUSPENDED, TERMINATED,…
- `term` (string): General full-text 'other terms' query (maps to query.term).
- `title` (string): Words in the study title (maps to query.titles).

### `get_study` (~145 tokens)

Get a clinical trial by NCT ID

Fetch a single ClinicalTrials.gov study by its NCT id (format NCT######## — the letters 'NCT' followed by digits, e.g. NCT00841061). Returns the full study object { protocolSection, derivedSection?, hasResults? }. Use `fields` to return only specific fields/modules. GET /studies/{nctId}.

Input parameters:

- `fields` (array): Fields or modules to return, e.g. ['protocolSection.identificationModule','protocolSection.statusModule']. Omit for the full record.
- `nctId` (string, required): The study's NCT id, format NCT######## (e.g. NCT00841061).

### `count_studies` (~355 tokens)

Count matching clinical trials

Return only the total NUMBER of studies matching a query, without fetching any records. Accepts the same query terms and filters as search_studies (term, condition, intervention, title, location, sponsor, status, geoFilter, advanced). Returns { totalCount }. GET /studies with countTotal=true and pageSize=1.

Input parameters:

- `advanced` (string): Advanced Essie expression applied as an additional filter (maps to filter.advanced).
- `condition` (string): Disease / condition to match (maps to query.cond), e.g. 'diabetes'.
- `geoFilter` (string): Geo filter as a raw geo-function string (maps to filter.geo), e.g. 'distance(39.0027,-77.1,50mi)'.
- `intervention` (string): Treatment / drug / intervention to match (maps to query.intr).
- `location` (string): Study location text, e.g. a city/state/country (maps to query.locn).
- `sponsor` (string): Sponsor / collaborator name (maps to query.spons).
- `status` (array): Filter by overall recruitment status (maps to filter.overallStatus). One or more of: ACTIVE_NOT_RECRUITING, COMPLETED, ENROLLING_BY_INVITATION, NOT_YET_RECRUITING, RECRUITING, SUSPENDED, TERMINATED,…
- `term` (string): General full-text 'other terms' query (maps to query.term).
- `title` (string): Words in the study title (maps to query.titles).

### `list_field_values` (~126 tokens)

List value statistics for study fields

Discover valid values / enums for one or more study fields. Returns per-field value statistics — for each field: its type, unique-value count and topValues [{value, studiesCount}]. Great for finding valid enum values (e.g. OverallStatus, Phase) before building a filter. GET /stats/field/values.

Input parameters:

- `fields` (array, required): Field names to get value statistics for, e.g. ['OverallStatus','Phase'].
- `types` (array): Restrict to fields of these value types (ENUM, STRING, DATE, INTEGER, NUMBER, BOOLEAN).

### `get_study_metadata` (~110 tokens)

Get the study data-model (field tree)

Return the ClinicalTrials.gov study data model as a tree of module nodes (each with name/title/type/children). Use this to explore what fields/modules exist and their nesting, to build `fields` selections or `sort`/filter expressions. GET /studies/metadata.

Input parameters:

- `includeHistoricOnly` (boolean): Include fields that exist only in historic study versions.
- `includeIndexedOnly` (boolean): Include fields that are indexed-only (searchable but not part of the main data model).

### `get_studies_stats` (~47 tokens)

Get study size statistics

Return overall study-size statistics across the registry: { totalStudies, averageSizeBytes, percentiles, ranges, largestStudies }. Useful for understanding data volume. GET /stats/size.

### `get_api_version` (~36 tokens)

Get the ClinicalTrials.gov API version

Return the ClinicalTrials.gov API version and the timestamp of the underlying data snapshot: { apiVersion, dataTimestamp }. GET /version.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-clinicaltrialsgov/clinicaltrialsgov#diagnostics

## Score history

- 2026-10-04: 18
- 2026-10-03: 18
- 2026-10-02: 75
- 2026-10-01: 33
- 2026-09-30: 18
- 2026-09-29: 18

## Common questions

### What is the io.usefulapi/clinicaltrialsgov MCP server?

io.usefulapi/clinicaltrialsgov is an MCP server listed in the public MCP registry as io.usefulapi/clinicaltrialsgov. Search and read ClinicalTrials.gov studies, sites and outcomes. This page covers its hosted endpoint (https://clinicaltrialsgov.usefulapi.io/mcp).

### Is the io.usefulapi/clinicaltrialsgov MCP server safe to use?

io.usefulapi/clinicaltrialsgov scores 18 out of 100 on VerifyMCP. 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 io.usefulapi/clinicaltrialsgov MCP server expose?

io.usefulapi/clinicaltrialsgov exposes 7 tools: search_studies, get_study, count_studies, list_field_values, get_study_metadata, and 2 more. Their descriptions and schemas cost roughly 1,413 tokens of context every time the server is loaded.

### Does the io.usefulapi/clinicaltrialsgov MCP server require authentication?

Its publisher declares no required credentials for io.usefulapi/clinicaltrialsgov. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the io.usefulapi/clinicaltrialsgov MCP server still maintained?

io.usefulapi/clinicaltrialsgov is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://clinicaltrialsgov.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-clinicaltrialsgov/clinicaltrialsgov.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-clinicaltrialsgov/clinicaltrialsgov.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-clinicaltrialsgov/clinicaltrialsgov
