get_dose_response
Retrieve dose-response data and activity profiles for chemical compounds from ChEMBL database to analyze biological effects and potency.
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 main handler function for the 'get_dose_response' tool. It validates input arguments, queries the ChEMBL API for activity data filtered by molecule_chembl_id (and optionally target_chembl_id), processes the response to extract dose-response relevant fields (activity_type, value, units, etc.), and returns formatted JSON output.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:564-571 (schema)Input schema defining the parameters for the get_dose_response tool: requires molecule_chembl_id (string), optional target_chembl_id (string).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:561-573 (registration)Registration of the get_dose_response tool in the ListToolsRequestSchema response, providing the tool name, description, and input schema to MCP clients.{ 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)Registration/dispatch of the get_dose_response tool handler in the CallToolRequestSchema switch statement.case 'get_dose_response': return await this.handleGetDoseResponse(args);