get_recruiting_studies
Find currently recruiting clinical trials with contact details by filtering medical condition, location, and age group eligibility.
Instructions
Get currently recruiting clinical trials with contact information
Input Schema
TableJSON Schema
| 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) |
Implementation Reference
- src/index.ts:1385-1467 (handler)The handleGetRecruitingStudies method implements the logic for the "get_recruiting_studies" tool, querying the ClinicalTrials.gov API for studies with "RECRUITING" status.
private async handleGetRecruitingStudies(args: any) { const params: any = { format: "json", pageSize: args?.pageSize || 10, "filter.overallStatus": "RECRUITING", }; if (args?.condition) { params["query.cond"] = args.condition; } if (args?.location) { params["query.locn"] = args.location; } if (args?.ageGroup) { params["filter.stdAge"] = args.ageGroup; } try { const response: AxiosResponse<StudySearchResponse> = await this.axiosInstance.get("/studies", { params }); const studies = response.data.studies || []; const results = studies.map((study) => ({ ...this.formatStudySummary(study), eligibility: { sex: study.protocolSection.eligibilityModule?.sex || "Unknown", minimumAge: study.protocolSection.eligibilityModule?.minimumAge || "Not specified", maximumAge: study.protocolSection.eligibilityModule?.maximumAge || "Not specified", healthyVolunteers: study.protocolSection.eligibilityModule?.healthyVolunteers || false, }, locations: study.protocolSection.contactsLocationsModule?.locations?.slice( 0, 2 ) || [], })); return { content: [ { type: "text", text: JSON.stringify( { searchCriteria: { recruitmentStatus: "RECRUITING", condition: args?.condition, location: args?.location, ageGroup: args?.ageGroup, }, totalCount: response.data.totalCount || 0, resultsShown: results.length, studies: results, }, null, 2 ), }, ], }; } catch (error) { if (axios.isAxiosError(error)) { return { content: [ { type: "text", text: `Clinical Trials API error: ${ error.response?.data?.message || error.message }`, }, ], isError: true, }; } throw error; } } - src/index.ts:368-395 (registration)Registration of the "get_recruiting_studies" tool with its input schema definition.
name: "get_recruiting_studies", description: "Get currently recruiting clinical trials with contact information", inputSchema: { type: "object", properties: { condition: { type: "string", description: "Medical condition to filter by", }, location: { type: "string", description: "Geographic location (city, state, country)", }, ageGroup: { type: "string", description: "Age group eligibility", enum: ["CHILD", "ADULT", "OLDER_ADULT"], }, pageSize: { type: "number", description: "Number of results to return (default 10, max 50)", minimum: 1, maximum: 50, }, }, }, },