Skip to main content
Glama
Augmented-Nature

ChEMBL MCP Server

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