Skip to main content
Glama

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
NameRequiredDescriptionDefault
molecule_chembl_idYesChEMBL compound ID
target_chembl_idNoChEMBL target ID (optional filter)

Implementation Reference

  • 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'}` ); } }
  • 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);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Augmented-Nature/ChEMBL-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server