Skip to main content
Glama
davidfromkansas

ClinicalTrials.gov MCP Server

ClinicalTrials.gov MCP Server

A Model Context Protocol (MCP) server that provides access to the ClinicalTrials.gov API v2, enabling AI assistants to search and retrieve clinical trial data.

Features

  • Search clinical trials with filters (status, phase, condition, intervention, sponsor, study type)

  • Get detailed study information by NCT ID

  • Retrieve field metadata for available data fields

  • Get search areas and available filters

  • Query dataset statistics

  • API version information

Related MCP server: Clinical Trials MCP Server

Installation

npm install

Building

npm run build

Running

Local Development (MCP over HTTP)

npm start

The MCP server (Streamable HTTP transport) will be available at:

  • MCP endpoint: http://localhost:3000/mcp

  • Health check: http://localhost:3000/health

Local Development (MCP stdio)

For local MCP client integration via stdio:

npm run start:stdio

Deployment

Vercel (MCP over HTTP)

The server is deployed on Vercel as a remote MCP server (Streamable HTTP transport):

MCP Configuration

For Remote MCP (Vercel)

Configure your MCP client to use the hosted MCP endpoint:

{
  "mcpServers": {
    "clinicaltrials": {
      "url": "https://clinicaltrials-mcp-server-three.vercel.app/mcp",
      "transport": "http"
    }
  }
}

See MCP_CONFIG_CLAUDE.md, MCP_CONFIG_CURSOR.md, and MCP_CONFIG_DEVIN.md for client-specific setup.

For Local stdio

Add this server to your MCP client configuration:

{
  "mcpServers": {
    "clinicaltrials": {
      "command": "node",
      "args": ["/path/to/clinicaltrials-mcp-server/dist/server.js"]
    }
  }
}

Available Tools

All tools are read-only (annotated readOnlyHint: true) and return both text and structuredContent.

clinicaltrials_search_studies

Search clinical trials with filters. Returns paginated summaries plus an accurate totalCount and hasMore flag.

Parameters:

  • query (string, optional): Full-text search term (maps to query.term)

  • status (enum, optional): Recruitment status (RECRUITING, COMPLETED, ACTIVE_NOT_RECRUITING, etc.)

  • phase (enum, optional): EARLY_PHASE1, PHASE1, PHASE2, PHASE3, PHASE4

  • condition (string, optional): Medical condition or disease (maps to query.cond)

  • intervention (string, optional): Intervention or treatment (maps to query.intr)

  • leadSponsor (string, optional): Lead sponsor name (maps to query.spons)

  • studyType (enum, optional): INTERVENTIONAL, OBSERVATIONAL, EXPANDED_ACCESS

  • pageSize (number, optional): Results per page (1-1000, default: 20)

  • pageToken (string, optional): Pagination token for the next page

Example:

{
  "query": "diabetes",
  "status": "RECRUITING",
  "phase": "PHASE2",
  "pageSize": 10
}

clinicaltrials_get_study

Get detailed information about a specific clinical trial by NCT ID.

Parameters:

  • nctId (string, required): ClinicalTrials.gov identifier (e.g., "NCT04000009")

Example:

{
  "nctId": "NCT04000009"
}

clinicaltrials_list_data_fields

List the available data fields in ClinicalTrials.gov study records.

Parameters: None

clinicaltrials_list_search_areas

List available search areas and filters for querying clinical trials.

Parameters: None

clinicaltrials_get_stats

Get statistics about the ClinicalTrials.gov database.

Parameters:

  • query (string, optional): Search term to scope the statistics

clinicaltrials_get_api_version

Get the ClinicalTrials.gov API version information.

Parameters: None

clinicaltrials_search_studies_map

Search trials and render their locations as an interactive world map (an MCP App using @modelcontextprotocol/ext-apps). Markers are colored by recruitment status and clustered; clicking a marker shows trial details and can open the full study. Re-call with refined filters to update the same map. Also returns a text summary as a fallback for clients that don't render MCP Apps.

Parameters:

  • query, condition, intervention, leadSponsor (string, optional): search terms

  • country (string, optional): location term (country/city; maps to query.locn)

  • status (enum, optional), phase (enum, optional), studyType (enum, optional): filters

  • pageSize (number, optional): trials to plot (1-200, default 50)

UI resource: ui://clinicaltrials/map (text/html;profile=mcp-app). Uses each site's geoPoint coordinates from the API. Note: MCP Apps rendering is host-dependent — reliably renders in Goose / VS Code Copilot / Postman / MCPJam; Claude may currently show only the text fallback.

API Reference

This server uses the ClinicalTrials.gov Data API v2, which is a public, unauthenticated REST API.

Base URL: https://clinicaltrials.gov/api/v2

Project Structure

clinicaltrials-mcp-server/
├── src/
│   ├── api-client.ts          # ClinicalTrials.gov API client
│   ├── server.ts              # MCP server setup
│   ├── index.ts               # Main entry point
│   ├── types/
│   │   └── api.ts             # TypeScript type definitions
│   └── tools/
│       ├── search-studies.ts
│       ├── get-study.ts
│       ├── get-study-fields.ts
│       ├── get-search-areas.ts
│       ├── get-dataset-stats.ts
│       └── get-api-version.ts
├── dist/                      # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md

Development

This project uses:

  • TypeScript for type safety

  • @modelcontextprotocol/sdk for MCP server implementation

  • Node.js runtime

License

ISC

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Search ClinicalTrials.gov — find studies, retrieve results, match patients to eligible trials.

  • ClinicalTrials MCP — wraps ClinicalTrials.gov API v2 (free, no auth)

  • NIH clinical trials and FDA adverse event reports. 4 MCP tools for health research.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidfromkansas/clinical_trials_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server