Skip to main content
Glama

analyze_admet_properties

Analyze ADMET properties (Absorption, Distribution, Metabolism, Excretion, Toxicity) for compounds using ChEMBL IDs to assess drug safety and pharmacokinetics.

Instructions

Analyze ADMET properties (Absorption, Distribution, Metabolism, Excretion, Toxicity)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chembl_idYesChEMBL compound ID

Implementation Reference

  • Main handler function that executes the analyze_admet_properties tool. Fetches ChEMBL compound data and computes ADMET analysis including absorption, distribution, and drug-likeness assessments.
    private async handleAnalyzeAdmetProperties(args: any) { if (!isValidChemblIdArgs(args)) { throw new McpError(ErrorCode.InvalidParams, 'Invalid ADMET analysis arguments'); } try { const response = await this.apiClient.get(`/molecule/${args.chembl_id}.json`); const molecule = response.data; const props = molecule.molecule_properties || {}; // Analyze ADMET-related properties from ChEMBL data const admetAnalysis = { chembl_id: args.chembl_id, absorption: { molecular_weight: props.full_mwt || props.molecular_weight, alogp: props.alogp, hbd: props.hbd, hba: props.hba, psa: props.psa, ro3_pass: props.ro3_pass, assessment: this.assessAbsorption(props), }, distribution: { logp: props.alogp, psa: props.psa, assessment: this.assessDistribution(props), }, drug_likeness: { lipinski_violations: props.num_ro5_violations, rotatable_bonds: props.rtb, aromatic_rings: props.aromatic_rings, assessment: this.assessDrugLikeness(props), }, molecular_properties: props, }; return { content: [ { type: 'text', text: JSON.stringify(admetAnalysis, null, 2), }, ], }; } catch (error) { throw new McpError( ErrorCode.InternalError, `Failed to analyze ADMET properties: ${error instanceof Error ? error.message : 'Unknown error'}` ); } }
  • src/index.ts:637-647 (registration)
    Tool registration in the ListToolsRequestSchema handler, defining the tool name, description, and input schema.
    { name: 'analyze_admet_properties', description: 'Analyze ADMET properties (Absorption, Distribution, Metabolism, Excretion, Toxicity)', inputSchema: { type: 'object', properties: { chembl_id: { type: 'string', description: 'ChEMBL compound ID' }, }, required: ['chembl_id'], }, },
  • src/index.ts:787-788 (registration)
    Handler dispatch in the CallToolRequestSchema switch statement.
    case 'analyze_admet_properties': return await this.handleAnalyzeAdmetProperties(args);
  • Input schema definition for the tool, specifying required chembl_id parameter.
    inputSchema: { type: 'object', properties: { chembl_id: { type: 'string', description: 'ChEMBL compound ID' }, }, required: ['chembl_id'], },
  • Helper function used by the handler to assess absorption properties based on molecular descriptors.
    private assessAbsorption(props: any): string { const mw = props.full_mwt || props.molecular_weight || 0; const hbd = props.hbd || 0; const hba = props.hba || 0; const psa = props.psa || 0; if (mw > 500 || hbd > 5 || hba > 10 || psa > 140) { return 'Poor oral absorption predicted'; } else if (mw < 400 && hbd <= 3 && hba <= 7 && psa < 100) { return 'Good oral absorption predicted'; } return 'Moderate oral absorption predicted'; }

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