Clinical Trials Data Server
Provide structured access to ClinicalTrials.gov data for searching, retrieving, and analyzing clinical trial information.
What it can do
- Search Trials By Condition: Search clinical trials by medical condition(s). This tool allows you to search for clinical trials based on a list of medical conditions. Input: - `conditions`: A list of s
- Search Trials By Intervention: Search clinical trials by intervention/treatment. This tool allows you to search for clinical trials based on a list of interventions or treatments. Input: - `interventi
- Search Trials By Sponsor: Search clinical trials by sponsor/organization. This tool allows you to search for clinical trials based on a list of sponsor organizations. Input: - `sponsors`: A list of st
What data it sees
Do you need an account
No: the server works without sign-in
Provide structured access to ClinicalTrials.gov data for searching, retrieving, and analyzing clinical trial information. Enable multi-parameter searches, detailed trial retrievals, and statistical analyses to support medical research and healthcare decision-making. Deliver robust error handling and flexible field selection to optimize data responses.
How to connect
How to connect Clinical Trials Data Server to Claude
The server address to paste into Claude settings:
https://clintrials-mcp--plainyogurt21.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Clinical Trials Data Server to ChatGPT
The server address to paste into ChatGPT settings:
https://clintrials-mcp--plainyogurt21.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Clinical Trials Data Server to Cursor
The server address to paste into Cursor settings:
https://clintrials-mcp--plainyogurt21.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (12)
Raw names from tools/list. Only developers need these.
| search_trials_by_condition | Search clinical trials by medical condition(s). This tool allows you to search for clinical trials based on a list of medical conditions. Input: - `conditions`: A list of strings, where each string is a medical condition to search for. The search will find trials related to any of the specified conditions. Example: `['cancer', 'diabetes']` - `max_studies`: The maximum number of studies to return. Defaults to 50. - `fields`: A list of specific fields to return in the results. If not provided, returns SEARCH_TOOL_DEFAULTS (9 essential fields: NCTId, BriefTitle, Acronym, Condition, Phase, InterventionName, LeadSponsorName, OverallStatus, HasResults). |
| search_trials_by_intervention | Search clinical trials by intervention/treatment. This tool allows you to search for clinical trials based on a list of interventions or treatments. Input: - `interventions`: A list of strings, where each string is an intervention or treatment to search for. The search will find trials related to any of the specified interventions. Example: `['aspirin', 'chemotherapy']` - `max_studies`: The maximum number of studies to return. Defaults to 50. - `fields`: A list of specific fields to return in the results. If not provided, returns SEARCH_TOOL_DEFAULTS (9 essential fields: NCTId, BriefTitle, Acronym, Condition, Phase, InterventionName, LeadSponsorName, OverallStatus, HasResults). |
| search_trials_by_sponsor | Search clinical trials by sponsor/organization. This tool allows you to search for clinical trials based on a list of sponsor organizations. Input: - `sponsors`: A list of strings, where each string is a sponsor organization to search for. The search will find trials sponsored by any of the specified organizations. Example: `['National Cancer Institute', 'Pfizer']` - `max_studies`: The maximum number of studies to return. Defaults to 50. - `fields`: A list of specific fields to return in the results. If not provided, returns SEARCH_TOOL_DEFAULTS (9 essential fields: NCTId, BriefTitle, Acronym, Condition, Phase, InterventionName, LeadSponsorName, OverallStatus, HasResults). |
| search_trials_by_acronym | Search clinical trials by study acronym. Uses the Acronym field (protocolSection.identificationModule.acronym) to find trials by their public short name. Example: 'TETON'. The API search is seeded with the provided acronyms to narrow results, then results are filtered locally to ensure the acronym field matches the requested value(s). Input: - `acronyms`: One or more acronyms to search for (e.g., ['TETON']). - `max_studies`: Maximum number of studies to request from the API. - `exact_match`: When true (default), matches acronyms exactly (case-insensitive). When false, matches if any provided acronym is contained within the study acronym (case-insensitive partial match). - `fields`: A list of specific fields to return in the results. If not provided, returns ACRONYM_SEARCH_DEFAULTS (8 fields optimized for acronym discovery: NCTId, BriefTitle, Acronym, Condition, InterventionName, Phase, LeadSponsorName, HasResults). |
| search_trials_by_nct_ids | Retrieve specific clinical trials by NCT ID(s). This tool allows you to retrieve the details of specific clinical trials by providing their NCT IDs. Input: - `nct_ids`: A list of strings, where each string is an NCT ID to retrieve. Example: `['NCT04280705', 'NCT04280718']` - `fields`: A list of specific fields to return in the results. If not provided, returns SEARCH_TOOL_DEFAULTS (9 essential fields: NCTId, BriefTitle, Acronym, Condition, Phase, InterventionName, LeadSponsorName, OverallStatus, HasResults). |
| search_trials_combined | Search clinical trials using multiple criteria. This tool allows you to perform a combined search using multiple criteria such as conditions, interventions, sponsors, and general terms. Input: - `conditions`: A list of medical conditions to search for. - `interventions`: A list of interventions or treatments to search for. - `sponsors`: A list of sponsor organizations to search for. - `terms`: A list of general search terms. - `nct_ids`: A list of specific NCT IDs to include in the search. - `max_studies`: The maximum number of studies to return. Defaults to 50. - `fields`: A list of specific fields to return in the results. If not provided, returns SEARCH_TOOL_DEFAULTS (9 essential fields: NCTId, BriefTitle, Acronym, Condition, Phase, InterventionName, LeadSponsorName, OverallStatus, HasResults). |
| get_trial_details | Get comprehensive details for a single clinical trial. This tool retrieves detailed information for a single clinical trial given its NCT ID. Input: - `nct_id`: The NCT ID of the trial to retrieve. Example: `'NCT04280705'` - `fields`: A list of specific fields to return. If not provided, returns DETAIL_TOOL_DEFAULTS (25 comprehensive fields covering: NCTId, BriefTitle, OfficialTitle, Acronym, Condition, Keyword, Phase, OverallStatus, InterventionType, InterventionName, InterventionDescription, ArmGroupLabel, ArmGroupType, ArmGroupDescription, EligibilityCriteria, MinimumAge, MaximumAge, Sex, PrimaryOutcomeMeasure, SecondaryOutcomeMeasure, BriefSummary, LocationFacility, LocationCountry, LeadSponsorName, CollaboratorName, HasResults). |
| get_trial_details_batched | Retrieve detailed clinical trial records in batches to reduce payload during discovery. Accepts a list of NCT IDs and fetches details in batches (default 10). Preserves the order of input NCT IDs in the returned list. Use this after search tools which return a minimal field set. Input: - `nct_ids`: List of NCT IDs to retrieve in batches. - `fields`: Specific fields to return. If not provided, returns DETAIL_TOOL_DEFAULTS (25 comprehensive fields covering: NCTId, BriefTitle, OfficialTitle, Acronym, Condition, Keyword, Phase, OverallStatus, InterventionType, InterventionName, InterventionDescription, ArmGroupLabel, ArmGroupType, ArmGroupDescription, EligibilityCriteria, MinimumAge, MaximumAge, Sex, PrimaryOutcomeMeasure, SecondaryOutcomeMeasure, BriefSummary, LocationFacility, LocationCountry, LeadSponsorName, CollaboratorName, HasResults). - `batch_size`: Number of trials to fetch per API call (default 10). |
| analyze_trial_phases | Analyze the distribution of trial phases for given search criteria. This tool analyzes the distribution of clinical trial phases (e.g., Phase 1, Phase 2, Phase 3) for a given set of search criteria. Input: - `conditions`: A list of medical conditions to filter the analysis. - `interventions`: A list of interventions to filter the analysis. - `sponsors`: A list of sponsors to filter the analysis. - `max_studies`: The maximum number of studies to include in the analysis. Defaults to 1000. |
| get_field_statistics | Get statistical information about field values. This tool retrieves statistical information about the values of specified fields in the ClinicalTrials.gov database. Input: - `field_names`: A list of field names to get statistics for. - `field_types`: A list of field types to filter by. Example: `['ENUM', 'STRING']` |
| get_available_fields | Get organized list of available fields for customizing search results. This tool provides a list of available fields that can be used to customize the results of other search tools. The fields are organized into categories. Input: - `category`: An optional string to specify a category of fields to return. If not provided, all categories and default fields will be returned. Example: `'conditions'` |
| search_trials_nct_ids_only | Lightweight search returning only NCT IDs and minimal metadata for discovery. This tool performs a lightweight search that returns only the NCT IDs and minimal metadata for the purpose of discovering relevant trials. Input: - `conditions`: A list of medical conditions to search for. - `interventions`: A list of interventions or treatments to search for. - `sponsors`: A list of sponsor organizations to search for. - `terms`: A list of general search terms. - `max_studies`: The maximum number of studies to return. Defaults to 100. |