search_by_sponsor
Find clinical trials by sponsor or organization to identify research studies funded by specific companies, institutions, or government agencies.
Instructions
Search clinical trials by sponsor or organization
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"sponsor": "<sponsor>"
},
"name": "search_by_sponsor"
}
}Input Schema
| 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) |
Implementation Reference
- src/index.ts:1250-1315 (handler)The `handleSearchBySponsor` method implements the logic for the `search_by_sponsor` tool. It takes `sponsor` and `sponsorType` as arguments and queries the ClinicalTrials.gov API.
private async handleSearchBySponsor(args: any) { if (!args?.sponsor) { throw new McpError( ErrorCode.InvalidParams, "Sponsor parameter is required" ); } const params: any = { format: "json", pageSize: args?.pageSize || 10, "query.spons": args.sponsor, }; if (args?.sponsorType) { params["filter.leadSponsorClass"] = args.sponsorType; } try { const response: AxiosResponse<StudySearchResponse> = await this.axiosInstance.get("/studies", { params }); const studies = response.data.studies || []; const results = studies.map((study) => ({ ...this.formatStudySummary(study), sponsorDetails: study.protocolSection.sponsorCollaboratorsModule?.leadSponsor, })); return { content: [ { type: "text", text: JSON.stringify( { searchCriteria: { sponsor: args.sponsor, sponsorType: args.sponsorType, }, 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:300-326 (registration)The tool `search_by_sponsor` is registered within the `ListToolsRequestSchema` handler in `src/index.ts`. It takes a `sponsor` string and optional `sponsorType` and `pageSize` arguments.
name: "search_by_sponsor", description: "Search clinical trials by sponsor or organization", inputSchema: { type: "object", properties: { sponsor: { type: "string", description: 'Sponsor name or organization (e.g., "Pfizer", "National Cancer Institute")', minLength: 2, }, sponsorType: { type: "string", description: "Type of sponsor", enum: ["INDUSTRY", "NIH", "FED", "OTHER"], }, pageSize: { type: "number", description: "Number of results to return (default 10, max 100)", minimum: 1, maximum: 100, }, }, required: ["sponsor"], }, },