get_dose_response
Retrieve dose-response data and activity profiles for specific compounds using ChEMBL IDs. Analyze compound-target interactions with optional target filtering.
Instructions
Get dose-response data and activity profiles for compounds
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| molecule_chembl_id | Yes | ChEMBL compound ID | |
| target_chembl_id | No | ChEMBL target ID (optional filter) |
Implementation Reference
- src/index.ts:1166-1214 (handler)The handler function that implements the get_dose_response tool. It queries the ChEMBL API for activity data for the given molecule_chembl_id (optionally filtered by target), filters for standard values and types, extracts relevant dose-response fields, and returns a structured JSON summary.private async handleGetDoseResponse(args: any) { if (!args || typeof args.molecule_chembl_id !== 'string') { throw new McpError(ErrorCode.InvalidParams, 'Invalid dose response arguments'); } try { const params: any = { molecule_chembl_id: args.molecule_chembl_id, limit: 100, }; if (args.target_chembl_id) { params.target_chembl_id = args.target_chembl_id; } const response = await this.apiClient.get('/activity.json', { params }); const activities = response.data.activities || []; // Group activities by assay and extract dose-response data const doseResponseData = activities .filter((a: any) => a.standard_value !== null && a.standard_type) .map((a: any) => ({ assay_chembl_id: a.assay_chembl_id, target_chembl_id: a.target_chembl_id, activity_type: a.standard_type, value: a.standard_value, units: a.standard_units, relation: a.standard_relation, })); return { content: [ { type: 'text', text: JSON.stringify({ molecule_chembl_id: args.molecule_chembl_id, total_measurements: doseResponseData.length, dose_response_data: doseResponseData, }, null, 2), }, ], }; } catch (error) { throw new McpError( ErrorCode.InternalError, `Failed to get dose response: ${error instanceof Error ? error.message : 'Unknown error'}` ); } }
- src/index.ts:562-572 (schema)The tool schema definition including name, description, and input schema, registered in the ListToolsRequestSchema response.name: 'get_dose_response', description: 'Get dose-response data and activity profiles for compounds', inputSchema: { type: 'object', properties: { molecule_chembl_id: { type: 'string', description: 'ChEMBL compound ID' }, target_chembl_id: { type: 'string', description: 'ChEMBL target ID (optional filter)' }, }, required: ['molecule_chembl_id'], }, },
- src/index.ts:773-774 (registration)The dispatch case in the CallToolRequestSchema handler that calls the get_dose_response implementation.case 'get_dose_response': return await this.handleGetDoseResponse(args);