Skip to main content
Glama

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

Implementation Reference

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

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