Clinical Trials MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Clinical Trials MCP Serverfind recruiting phase 3 cancer trials in Boston"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

Clinical Trials MCP Server
A comprehensive Model Context Protocol (MCP) server that provides access to the ClinicalTrials.gov API, enabling researchers, clinicians, and developers to access real-time clinical trial data programmatically.
Developed by bachstudio
π Quick Start with npx (Recommended)
No installation required! Use npx to run the server directly:
{
"mcpServers": {
"clinical-trials": {
"command": "npx",
"args": ["-y", "bach-clinical-trials"]
}
}
}Save this configuration and restart your MCP client. The npx command will automatically download and run the latest version from npm.
Package URL: https://www.npmjs.com/package/bach-clinical-trials
Related MCP server: Clinical Trials MCP Server
Overview
The Clinical Trials MCP server exposes the full ClinicalTrials.gov API v2.0.4 functionality through 18 specialized MCP tools, allowing you to search, analyze, and retrieve detailed information about clinical trials worldwide directly from your MCP-enabled environment.
Features
Core Search Tools
search_studies - General search with comprehensive filters (condition, intervention, location, phase, status, age, sex)
get_study_details - Detailed study information by NCT ID with complete metadata
search_by_condition - Condition-focused search with eligibility criteria
search_by_location - Geographic-based search with distance radius filtering
search_by_sponsor - Organization and sponsor-based search with sponsor type filtering
search_by_intervention - Treatment, drug, and intervention-focused search
Specialized Search Tools
get_recruiting_studies - Currently recruiting trials with active contact information
search_by_date_range - Temporal search by study start and completion dates
get_studies_with_results - Completed trials with published results
search_rare_diseases - Specialized search for rare diseases and orphan conditions
get_pediatric_studies - Pediatric-specific trials for children and adolescents
search_international_studies - Multi-country international trials
Advanced Analysis Tools
get_similar_studies - Find studies similar to a reference NCT ID by condition, sponsor, or phase
search_by_primary_outcome - Search by primary outcome measures and endpoints
search_by_eligibility_criteria - Advanced eligibility filtering with inclusion/exclusion keywords
get_study_timeline - Timeline analysis with current, completed, and upcoming studies
get_trial_statistics - Aggregate statistics and analytics with grouping capabilities
Data Quality Features
Real-time data access (updated daily Monday-Friday)
NCT ID validation with regex patterns
Comprehensive JSON Schema validation
Geographic coordinate data for study locations
Contact information for recruiting studies
Robust error handling and timeout protection
Installation
Prerequisites
Node.js 16+ (install from nodejs.org)
No API key required (ClinicalTrials.gov API is publicly accessible)
Setup Steps
Navigate to your MCP directory:
cd ~/Documents/Claude/MCP # or your preferred MCP directoryThe server is already built and configured:
ls clinical-trials-server/ # Should show: build/ src/ package.json tsconfig.json README.mdVerify build:
cd clinical-trials-server ls build/ # Should show: index.js (executable)
Configuration
Add this to your claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"clinical-trials": {
"command": "node",
"args": ["path/to/clinical-trials-server/build/index.js"],
"autoApprove": [
"search_studies",
"get_study_details",
"search_by_condition",
"search_by_location",
"get_recruiting_studies",
"search_by_sponsor",
"search_by_intervention",
"get_trial_statistics"
]
}
}
}Note: Replace path/to/clinical-trials-server with the absolute path to your server directory.
Usage Examples
Search for Cancer Trials
{
"condition": "cancer",
"phase": "PHASE3",
"status": "RECRUITING",
"pageSize": 10
}Get Detailed Study Information
{
"nctId": "NCT05882279"
}Find Trials by Location
{
"country": "United States",
"city": "Boston",
"distance": 50,
"pageSize": 5
}Search for Pediatric Studies
{
"condition": "diabetes",
"ageRange": "CHILD",
"recruitmentStatus": "RECRUITING"
}Get Recruiting Trials with Contacts
{
"condition": "alzheimer",
"location": "California",
"pageSize": 5
}Find Similar Studies
{
"nctId": "NCT12345678",
"similarityType": "CONDITION",
"pageSize": 10
}Advanced Eligibility Search
{
"minAge": "18 Years",
"maxAge": "65 Years",
"sex": "ALL",
"healthyVolunteers": false,
"condition": "hypertension",
"inclusionKeywords": "medication",
"exclusionKeywords": "pregnant"
}Get Trial Statistics
{
"groupBy": "phase",
"filters": {
"condition": "diabetes",
"status": "RECRUITING"
}
}API Reference
Search Parameters
Common Parameters:
pageSize- Number of results (1-100, default: 10)condition- Medical condition or diseasephase- Study phase: PHASE1, PHASE2, PHASE3, PHASE4, NAstatus- Recruitment status: RECRUITING, NOT_YET_RECRUITING, COMPLETED, etc.
Location Parameters:
country- Country namestate- State or provincecity- City namedistance- Search radius in miles (1-500)
Eligibility Parameters:
sex- ALL, FEMALE, MALEage- CHILD, ADULT, OLDER_ADULTminAge/maxAge- Age ranges (e.g., "18 Years", "65 Years")healthyVolunteers- Boolean for healthy volunteer acceptance
Date Parameters:
startDateFrom/startDateTo- Study start date range (YYYY-MM-DD)completionDateFrom/completionDateTo- Completion date range (YYYY-MM-DD)
Response Format
All tools return structured JSON data including:
Study metadata (NCT ID, title, status, phase, sponsor)
Location information with geographic coordinates
Eligibility criteria and contact information
Timeline data and key dates
Comprehensive search criteria documentation
NCT ID Format
All NCT IDs must follow the pattern: NCT######## (NCT followed by 8 digits)
Error Handling
The server includes comprehensive error handling for:
Network Issues: 30-second timeout protection with retry logic
Invalid Parameters: JSON Schema validation with descriptive error messages
API Errors: Proper HTTP status code handling and error reporting
Missing Data: Graceful handling of optional fields and missing information
Rate Limiting: Built-in request throttling and error recovery
Common error responses include:
{
"error": "Clinical Trials API error: Invalid NCT ID format",
"isError": true
}Development
Building from Source
# Install dependencies
npm install
# Build TypeScript to JavaScript
npm run build
# Development with watch mode
npm run watchProject Structure
clinical-trials-server/
βββ src/
β βββ index.ts # Main server implementation (all tools)
βββ build/
β βββ index.js # Compiled executable
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ README.md # This fileKey Dependencies
@modelcontextprotocol/sdk- MCP server frameworkaxios- HTTP client for API requestsTypeScript for type safety and development
Data Sources
API Endpoint: https://clinicaltrials.gov/api/v2 Data Updates: Monday through Friday (excluding federal holidays) Coverage: 400,000+ studies from 220+ countries Data Quality: Official FDA/NIH registry with verified information
Troubleshooting
Server Connection Issues:
# Test server manually cd clinical-trials-server node build/index.js # Should show: "Clinical Trials MCP server running on stdio"Invalid NCT ID Errors:
Ensure NCT IDs follow format: NCT########
Example: NCT05882279 β, nct123 β
No Results Returned:
Check search criteria - try broader terms
Some filters may be too restrictive
Verify spelling of conditions and interventions
Timeout Issues:
Server has 30-second timeout protection
Large result sets may take time to process
Reduce pageSize for faster responses
Clinical Research Use Cases
Patient Recruitment: Find actively recruiting trials for specific conditions
Competitive Analysis: Research similar studies by sponsors or interventions
Site Selection: Identify optimal locations for new studies
Regulatory Research: Access FDA-approved study protocols and outcomes
Academic Research: Analyze clinical trial trends and statistics
Patient Care: Help patients find appropriate treatment options
Compliance & Ethics
This server provides access to publicly available clinical trial data from ClinicalTrials.gov. Users should:
Follow institutional policies for clinical research
Respect patient privacy and confidentiality
Use data for legitimate research and healthcare purposes
Cite ClinicalTrials.gov as the data source in publications
License
MIT License - See LICENSE file for details
Data Source: ClinicalTrials.gov (https://clinicaltrials.gov) API Documentation: https://clinicaltrials.gov/data-api/api Server Version: 1.0.0 Repository: https://github.com/BACH-AI-Tools/ClinicalTrials-MCP-Server
Available Tools
17 toolsget_pediatric_studiesB
Find clinical trials specifically designed for children and adolescents
| Name | Required | Description | Default |
|---|---|---|---|
| condition | No | Pediatric condition or disease | |
| ageRange | No | Specific pediatric age range | |
| recruitmentStatus | No | Filter by recruitment status | |
| pageSize | No | Number of results to return (default 10, max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states the purpose ('find clinical trials') without mentioning any behavioral traits such as filtering behavior, response format, or limitations (e.g., may only return trials with explicit pediatric criteria). No contradictions, but the disclosure is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that starts with the verb and is free of redundancy. It earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having full schema coverage, the description is too sparse for a tool with four optional filters and no annotations. It doesn't provide usage guidance, behavioral expectations, or any hint of how to combine parameters. The one-sentence description is sufficient only for the simplest purposes, not for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for all four parameters, so the baseline is 3. The description does not add any parameter-specific meaning, but it doesn't need to since the schema fully documents ageRange, pageSize, condition, and recruitmentStatus. No extra value provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose with a specific verb 'Find' and a specific resource 'clinical trials', and narrows scope to 'specifically designed for children and adolescents'. This distinguishes it from generic search tools like search_studies by emphasizing the pediatric focus. No ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for pediatric-specific trials but doesn't explicitly state when to use it over siblings like search_studies or search_by_condition. There are no exclusions or alternative tool references, so guidance is only implicit from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recruiting_studiesB
Get currently recruiting clinical trials with contact information
| Name | Required | Description | Default |
|---|---|---|---|
| condition | No | Medical condition to filter by | |
| location | No | Geographic location (city, state, country) | |
| ageGroup | No | Age group eligibility | |
| pageSize | No | Number of results to return (default 10, max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must convey behavioral traits. It mentions contact information and recruiting status but does not disclose pagination, default ordering, output shape, or limitations. This is minimal coverage for a data retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It conveys the core purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has four optional parameters, no output schema, and no annotations, the description is under-specified. It lacks usage guidance and behavioral details necessary for an agent to know when to invoke it and what to expect in response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all four parameters (condition, location, ageGroup, pageSize) with clear explanations and constraints. The description adds no additional parameter semantics, but the schema is sufficient, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('currently recruiting clinical trials') with a differentiator ('with contact information'), clearly distinguishing it from sibling search tools like search_studies or search_by_condition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as search_by_location or search_by_condition. The description is a bare statement without any usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_similar_studiesA
Find clinical trials similar to a specific study by NCT ID
| Name | Required | Description | Default |
|---|---|---|---|
| nctId | Yes | NCT ID of the reference study (e.g., NCT00000419) | |
| similarityType | No | Type of similarity to search for | CONDITION |
| pageSize | No | Number of results to return (default 10, max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic action, with no mention of return format, pagination handling, how similarity is determined, or any operational details. This leaves significant ambiguity about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant words. It is front-loaded with the core action and resource, making it easy to scan. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage and no output schema, the description is minimally viable but leaves gaps: it does not explain what 'similar' means, nor does it hint at the response structure. For a simple tool, this may be acceptable, but more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters have detailed descriptions in the schema. The description adds minimal value beyond the schema, merely reusing the concept of NCT ID. With full schema coverage, a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') and resource ('clinical trials similar to a specific study') with a clear scope ('by NCT ID'). This clearly distinguishes it from siblings like search_studies and get_study_details, which focus on broader search or detail retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose itself implies when to use this tool (when similarity to a known study is needed), but the description does not explicitly state when to use it over alternatives or provide any exclusions. It relies on the reader to infer the use case from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_studies_with_resultsA
Find completed clinical trials that have published results
| Name | Required | Description | Default |
|---|---|---|---|
| condition | No | Medical condition to filter by | |
| intervention | No | Treatment or intervention to filter by | |
| completedAfter | No | Find studies completed after this date (YYYY-MM-DD) | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that the tool filters for completed trials with results, offering some behavioral context, but it does not disclose return format, pagination behavior, or whether the operation is read-only. Additional transparency beyond the obvious filter semantics is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the essential purpose without any fluff. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 optional parameters, no output schema), the description is adequate but leaves gaps. It does not clarify what 'published results' means in the context of the response, and the absence of an output schema means the agent may not know what to expect from the return value. For a simple filtered-list tool, it is sufficient but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter has a clear description. The tool description itself adds no additional meaning beyond what the schema already provides, thus meeting the baseline for schema-heavy parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: finding completed clinical trials with published results. It uses a specific verb ('find') and resource ('clinical trials'), and the scope distinguishes it from siblings like 'get_recruiting_studies' (recruiting) and 'search_studies' (general).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description but not explicitly contrasted with alternatives. There is no mention of when to use this instead of the many sibling search tools, nor exclusions. The description itself communicates the core use case but lacks explicit guidance on choosing among related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_study_detailsC
Get detailed information about a specific clinical trial
| Name | Required | Description | Default |
|---|---|---|---|
| nctId | Yes | NCT ID of the study (e.g., NCT00000419) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not mention that the operation is read-only, what happens if the trial is not found, or what 'detailed information' includes. This lack of transparency could lead to mismatched expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler. It is front-loaded with the action and object, making it easy to parse. For a simple tool, this level of brevity is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the context of many specialized sibling tools (e.g., get_trial_statistics, get_study_timeline), the vague term 'detailed information' does not clarify what this tool returns or when it should be used. The lack of an output schema further compounds the ambiguity about the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the only parameter (nctId) with a pattern and example. Since schema coverage is 100%, the description adds no parametric value beyond what's already available, justifying the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get detailed information about a specific clinical trial' clearly states the action (get) and resource (detailed trial info), distinguishing it from search-based siblings like search_studies. However, it could be more explicit about using an NCT ID, which the schema reveals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_trial_statistics or get_study_timeline. The description only states what it does, not when it should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_study_timelineC
Get detailed timeline and milestone information for studies
| Name | Required | Description | Default |
|---|---|---|---|
| condition | No | Condition to filter studies | |
| sponsor | No | Sponsor to filter studies | |
| phase | No | Study phase filter | |
| timelineType | No | Type of timeline analysis | CURRENT |
| pageSize | No | Number of results to return (default 10, max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states 'detailed timeline and milestone information' without explaining how timelineType affects results, what milestones mean, or any filtering semantics. This is insufficient for a tool with 5 optional parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and front-loads the main action ('Get detailed timeline...'). It is concise and well-structured, though perhaps too sparse for the tool's complexity. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 optional parameters, no output schema, and no annotations, the single-sentence description is incomplete. It fails to mention timeline types, default behavior, return format, or any usage context, making it difficult for an agent to invoke correctly without additional guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all parameters documented and enums for phase and timelineType. The tool description adds no parameter-specific meaning, so the baseline 3 applies; the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific resource (studies) and type of information (timeline and milestone). It is more specific than the generic sibling name 'get_study_details', but does not mention the timeline types (current/completed/upcoming) that are part of the schema, so it misses some distinguishing detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings like search_studies or get_study_details. With many study-related tools listed, the absence of context or exclusions leaves the agent to guess the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trial_statisticsC
Get aggregate statistics about clinical trials
| Name | Required | Description | Default |
|---|---|---|---|
| groupBy | No | Field to group statistics by | |
| filters | No | Optional filters to apply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Get aggregate statistics' which implies a read operation, but it does not explain what statistics are returned, how filters affect results, or any limitations. This is insufficient for a tool with no additional structured behavioral metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the action and resource. It has no unnecessary words or repetition, though it could arguably provide more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has moderate complexity with a nested filters object and no output schema, but the description does not explain return values, what 'statistics' means (e.g., counts, distributions), or how groupBy affects the output. This leaves significant gaps for an agent trying to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for both parameters, including descriptions for filters and groupBy, and an enum for groupBy. The description adds no extra meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: getting aggregate statistics about clinical trials. It uses a specific verb and resource, and while it doesn't explicitly distinguish itself from sibling tools, 'statistics' sets it apart from the search/detail-focused siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like search_studies or get_study_details. The description does not mention any context in which aggregate statistics would be preferred, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_conditionA
Search for clinical trials focusing on specific medical conditions
| Name | Required | Description | Default |
|---|---|---|---|
| condition | Yes | Medical condition, disease, or syndrome | |
| phase | No | Study phase filter | |
| recruitmentStatus | No | Filter by recruitment status | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It only states a generic action ('search') without detailing return format, result ordering, matching behavior, or any side effects. The description does not add meaningful transparency beyond what the schema already indicates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero wasted words. It directly states the action and scope without redundancy, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple search context and fully described schema parameters, the description is minimally adequate. However, it does not explain what the returned trials look like, how filters combine, or any limiting behavior. Without output schema or annotations, the description could have added more contextual completeness, but the schema covers parameters well enough for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add semantics beyond the schema; it just paraphrases the condition parameter. No additional meaning or usage context is provided for parameters like phase, pageSize, or recruitmentStatus.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search,' the resource 'clinical trials,' and the specific scope 'focusing on specific medical conditions.' This scope directly distinguishes it from sibling tools like search_by_location and search_by_sponsor, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for trials by condition through the phrase 'focusing on specific medical conditions,' but it does not explicitly state when to use this tool instead of alternatives like search_by_sponsor or search_by_intervention. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_date_rangeA
Search clinical trials by start or completion date range
| Name | Required | Description | Default |
|---|---|---|---|
| startDateFrom | No | Start date from (YYYY-MM-DD format) | |
| startDateTo | No | Start date to (YYYY-MM-DD format) | |
| completionDateFrom | No | Primary completion date from (YYYY-MM-DD format) | |
| completionDateTo | No | Primary completion date to (YYYY-MM-DD format) | |
| condition | No | Optional condition filter | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It only states the basic search action and does not explain return format, pagination, how date ranges are applied (e.g., inclusive, AND/OR logic), or any defaults. This is a significant gap for a read/search operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence, front-loaded with the action and resource. Every word earns its place, and there is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters, no annotations, and no output schema. The description is too minimal to provide complete context. It does not explain return value, required parameter combinations, or whether date ranges can be combined with other filters like condition. The schema covers parameters, but the description should compensate for missing annotations/output schema and does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra parameter semantics beyond what the schema already provides. The parameter names and schema descriptions are sufficient, but the description doesn't enhance understanding of how parameters combine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Search' with the resource 'clinical trials' and clearly states the search criterion ('by start or completion date range'). This distinguishes it from sibling tools like search_by_condition or search_by_location, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: when a date range filter is needed. It does not explicitly mention alternatives or exclusions, but the name and phrasing provide sufficient context for selecting it among sibling search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_eligibility_criteriaC
Advanced search based on detailed eligibility criteria
| Name | Required | Description | Default |
|---|---|---|---|
| minAge | No | Minimum age (e.g., "18 Years", "6 Months") | |
| maxAge | No | Maximum age (e.g., "65 Years", "12 Years") | |
| sex | No | Sex eligibility | |
| healthyVolunteers | No | Whether study accepts healthy volunteers | |
| condition | No | Medical condition filter | |
| exclusionKeywords | No | Keywords that should NOT appear in eligibility criteria | |
| inclusionKeywords | No | Keywords that should appear in eligibility criteria | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Advanced search' and does not mention whether it is read-only, pagination behavior, default limits, or any other side effects or constraints. The description adds no behavioral context beyond the obvious search action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. However, it is so brief that it borders on under-specification, but structurally it is well-front-loaded and easy to parse. Given the tool's complexity, the brevity is not a structural flaw but rather a content gap addressed in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 8 parameters, no annotations, and no output schema. The description is far too thin to adequately guide an agent. It does not explain what makes this search 'advanced,' how the criteria are applied, or what the returned data looks like. Significant gaps remain for such a parameter-rich tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters. The description does not add any additional meaning to the parameters; it merely refers to 'detailed eligibility criteria' without elaborating on how parameters like inclusionKeywords or healthyVolunteers map to those criteria. It meets the baseline but adds no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a search operation based on detailed eligibility criteria, which is a specific verb+resource. However, it does not distinguish itself from sibling search tools like search_by_condition, making 'advanced' vague and lacking differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention any exclusions, prerequisites, or specific scenarios where this search is preferred over other search tools, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_interventionB
Search clinical trials by intervention or treatment type
| Name | Required | Description | Default |
|---|---|---|---|
| intervention | Yes | Intervention, drug, device, or treatment name | |
| interventionType | No | Type of intervention | |
| phase | No | Study phase filter | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose typical search behaviors. It only states the search function and does not mention return format, pagination, authentication, or other operational characteristics. The description adds minimal behavioral context beyond the parameter schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise single sentence that effectively communicates the core action and scope. No filler or redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is insufficient for an agent to fully understand the tool's behavior. It does not describe result structure, pagination behavior, or how optional filters affect outcomes. A single sentence is inadequate for a 4-parameter search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description summarizes the intervention field but adds no additional meaning beyond the schema's parameter descriptions; the `interventionType` and `phase` filters are not elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches clinical trials using intervention or treatment type as the filter dimension. It distinguishes from sibling tools like search_by_condition or search_by_location by identifying the specific search aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as search_by_condition or search_studies. The description implies usage for intervention-based searches but does not offer any exclusion criteria or comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_locationB
Find clinical trials by geographic location
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country name | |
| state | No | State or province | |
| city | No | City name | |
| facilityName | No | Name of medical facility or institution | |
| distance | No | Search radius in miles (when using city) | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the high-level purpose and does not explain result format, pagination, default behavior, or whether certain parameters (e.g., city or facilityName) are expected for a valid search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence with no redundant words. The core action and target are front-loaded, making it highly scannable and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no annotations, and no output schema, the description is under-specified. It fails to explain parameter relationships (e.g., distance is radius for city), default page size, or other behavior, leaving significant gaps for an agent trying to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 6 parameters with descriptions, so the baseline is 3. The tool description adds no additional parameter-level meaning, such as how 'distance' interacts with 'city' or which parameters are commonly combined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find clinical trials by geographic location' clearly identifies the action (find), the resource (clinical trials), and the filter dimension (geographic location). This differentiates it from sibling tools like search_by_condition or search_by_sponsor, which focus on other criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus the many sibling search tools. It does not mention preferred scenarios, prerequisites, or alternatives, leaving the agent to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_primary_outcomeB
Search clinical trials by primary outcome measures or endpoints
| Name | Required | Description | Default |
|---|---|---|---|
| outcome | Yes | Primary outcome or endpoint to search for | |
| condition | No | Optional condition filter | |
| phase | No | Study phase filter | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits, but it only states the basic function. It does not mention return format, pagination defaults, or scope limitations, leaving the agent to infer behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler. The action and target are front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complete schema and a straightforward search tool, the description is adequate but not rich. It lacks usage differentiation and behavioral context, which matters more due to the many sibling search tools and absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all 4 parameters with descriptions, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for the outcome parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action (search clinical trials) and the target attribute (primary outcome measures or endpoints). It distinguishes the tool by its focus on primary outcomes, though it does not explicitly compare to sibling tools like search_by_condition or search_studies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternative search tools. It does not mention preferred contexts, exclusions, or when another search-by-filter would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_sponsorB
Search clinical trials by sponsor or organization
| Name | Required | Description | Default |
|---|---|---|---|
| sponsor | Yes | Sponsor name or organization (e.g., "Pfizer", "National Cancer Institute") | |
| sponsorType | No | Type of sponsor | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. It only states the search action without revealing details such as whether partial matches are allowed, how results are ordered, or what the response structure contains. The description adds no behavioral context beyond what is already obvious from the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the verb and object. It is appropriately minimal, containing no filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose but omits any mention of return values, pagination, or optional filtering by sponsor type. Given that this is a simple search tool with high schema coverage, the description is minimally adequate but could be more informative about what the search yields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have rich descriptions in the input schema (100% coverage), so the schema already provides the necessary semantic meaning. The tool description does not add any parameter-related information, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches clinical trials by sponsor or organization, using a specific verb and resource. It is unambiguous but does not explicitly differentiate from sibling tools like search_by_condition or search_by_location, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case (searching trials by sponsor), but provides no explicit guidance on when to use this tool versus alternatives, nor does it mention any constraints or exclusions. It is sufficient for a straightforward search tool but lacks comparative direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_international_studiesB
Find multi-country international clinical trials
| Name | Required | Description | Default |
|---|---|---|---|
| condition | No | Medical condition to filter by | |
| excludeCountry | No | Country to exclude from results (e.g., "United States") | |
| includeCountry | No | Country that must be included in results | |
| minCountries | No | Minimum number of countries involved | |
| phase | No | Study phase filter | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states the basic purpose and does not disclose behavioral traits such as filtering behavior, result ordering, or any prerequisites. With no annotations provided, the description carries the full burden but offers minimal insight beyond the one-line purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that communicates the core purpose without any fluff. It is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (6 parameters) and no output schema, the description is somewhat thin. It does not explain what 'multi-country' implies (e.g., minimum countries), how results are ordered, or when this tool is preferred over siblings. The rich schema mitigates some gaps, but the description alone is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are well-described in the input schema (100% coverage), so the description doesn't need to add parameter details. It adds no additional semantic meaning, but the schema carries the weight effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a verb ('Find') and a specific resource ('multi-country international clinical trials'). It distinguishes from sibling tools by emphasizing the multi-country aspect, though it doesn't explicitly contrast with alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of use cases, exclusions, or references to sibling tools like search_by_location or search_studies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_rare_diseasesA
Search clinical trials for rare diseases and orphan conditions
| Name | Required | Description | Default |
|---|---|---|---|
| rareDisease | Yes | Rare disease or orphan condition name | |
| recruitmentStatus | No | Filter by recruitment status | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. The verb 'search' implies a read-only operation, but the description does not disclose details such as pagination behavior, permissions, or return format. For a non-destructive search tool, this is minimal but acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the action and scope with no redundant words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool, the description is adequate: purpose is clear, and the schema covers parameters. However, given the large number of sibling search tools, a brief note about this tool's unique focus on rare diseases (as opposed to general conditions) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: all three parameters (pageSize, rareDisease, recruitmentStatus) have descriptions in the schema. The tool description adds no parameter-specific information beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches clinical trials specifically for rare diseases and orphan conditions, which distinguishes it from general search tools like search_studies or search_by_condition. The verb 'search' and resource 'clinical trials' are specific, and the scope is explicitly limited to rare diseases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is intended for rare disease queries, but it does not explicitly mention when to use this tool instead of alternatives like search_by_condition or search_studies, nor does it state exclusions. Usage context is clear from the name and description, but no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_studiesC
Search for clinical trials with various filters
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | General search term (condition, intervention, etc.) | |
| condition | No | Medical condition or disease | |
| intervention | No | Treatment, drug, or intervention | |
| location | No | Geographic location (city, state, country) | |
| phase | No | Study phase (PHASE1, PHASE2, PHASE3, PHASE4, NA) | |
| status | No | Recruitment status | |
| sex | No | Sex eligibility | |
| age | No | Age group | |
| pageSize | No | Number of results to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses no behavioral traits beyond the fact that it searches. With no annotations, it should mention things like whether filters are ANDed, default result size, pagination behavior, or if the search is read-only, but it stays silent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, but it's under-specification rather than concise. A single generic sentence doesn't earn its place; it leaves the agent without meaningful guidance for a tool with 9 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 params, 16 sibling tools, no output schema, no annotations), a one-sentence generic description is grossly inadequate. It fails to explain how filters work together, what the response looks like, or why to pick this over specialized siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 9 parameters. The description adds no extra semantics beyond the vague 'various filters', which doesn't enhance the schema's information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the clear verb 'Search' and names the resource 'clinical trials', but 'various filters' is vagueβit doesn't specify which filters or how they combine. It also fails to differentiate this general search tool from sibling tools like search_by_condition or search_by_location.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With 16 sibling search tools, the description should indicate whether this is the general-purpose search to prefer or when to use specialized ones, but it offers no context at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
v1.0.1- First observed
get_pediatric_studies - First observed
get_recruiting_studies - First observed
get_similar_studies - First observed
get_studies_with_results - First observed
get_study_details - First observed
get_study_timeline - First observed
get_trial_statistics - First observed
search_by_condition - First observed
search_by_date_range - First observed
search_by_eligibility_criteria - First observed
search_by_intervention - First observed
search_by_location - First observed
search_by_primary_outcome - First observed
search_by_sponsor - First observed
search_international_studies - First observed
search_rare_diseases - First observed
search_studies
TDQS
Scored across 17 tools
Most tools have distinct purposes, such as get_study_details for specific trials versus search_by_condition for condition-based queries. However, some overlap exists between search_studies (general search) and more specific search tools like search_by_location, which could cause minor confusion in tool selection.
The naming follows a highly consistent pattern with clear verb_noun structures, such as get_pediatric_studies and search_by_condition. All tools use snake_case and maintain a uniform style throughout the set, making them predictable and easy to understand.
With 17 tools, the count is slightly high but reasonable for a clinical trials domain that requires diverse search and retrieval capabilities. It covers various aspects like demographics, conditions, and timelines without feeling excessively bloated, though it borders on being heavy.
The tool set provides comprehensive coverage for clinical trials, including detailed searches by condition, intervention, location, and more, along with retrieval of study details, timelines, and statistics. It supports full lifecycle aspects from recruiting to completed studies with results, leaving no obvious gaps for agent workflows.
Maintenance
Related MCP Connectors
Clinical trial search and status from ClinicalTrials.gov
Provide structured access to ClinicalTrials.gov data for searching, retrieving, and analyzing clinβ¦
Scrape ClinicalTrials.gov studies by condition, sponsor, phase, status or location. Pay per row.
ClinicalTrials MCP β wraps ClinicalTrials.gov API v2 (free, no auth)
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables searching and retrieving information from the ClinicalTrials.gov database of over 400,000 clinical studies, including trial details, eligibility criteria, locations, and results across 220+ countries.5-
- AlicenseBqualityDmaintenanceEnables searching and querying clinical trials from ClinicalTrials.gov with intelligent filtering for recruiting studies, geographic search, and detailed trial information including contacts and eligibility criteria.34 npm6MIT
- FlicenseBqualityDmaintenanceProvides access to the ClinicalTrials.gov API, enabling search, analysis, and retrieval of clinical trial data through MCP tools.178-
- FlicenseNot gradedqualityDmaintenanceEnables searching and retrieving detailed clinical trial information from ClinicalTrials.gov via the official API.1-