Skip to main content
Glama

get_compound_properties

Retrieve molecular properties like molecular weight, logP, and TPSA for chemical compounds using PubChem Compound IDs to support chemical analysis and research.

Instructions

Get molecular properties (MW, logP, TPSA, etc.)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cidYesPubChem Compound ID (CID)
propertiesNoSpecific properties to retrieve (optional)

Implementation Reference

  • The primary handler function for the get_compound_properties tool. Validates input, queries PubChem API for molecular properties based on CID and optional properties list, returns formatted JSON response.
    private async handleGetCompoundProperties(args: any) { if (!isValidPropertiesArgs(args)) { throw new McpError(ErrorCode.InvalidParams, 'Invalid compound properties arguments'); } try { const properties = args.properties || [ 'MolecularWeight', 'XLogP', 'TPSA', 'HBondDonorCount', 'HBondAcceptorCount', 'RotatableBondCount', 'Complexity', 'HeavyAtomCount', 'Charge' ]; const response = await this.apiClient.get(`/compound/cid/${args.cid}/property/${properties.join(',')}/JSON`); return { content: [ { type: 'text', text: JSON.stringify(response.data, null, 2), }, ], }; } catch (error) { throw new McpError( ErrorCode.InternalError, `Failed to get compound properties: ${error instanceof Error ? error.message : 'Unknown error'}` ); } }
  • JSON Schema defining the input parameters for the tool: required 'cid' (number or string), optional 'properties' array of strings.
    inputSchema: { type: 'object', properties: { cid: { type: ['number', 'string'], description: 'PubChem Compound ID (CID)' }, properties: { type: 'array', items: { type: 'string' }, description: 'Specific properties to retrieve (optional)' }, }, required: ['cid'],
  • src/index.ts:766-767 (registration)
    Registration in the tool dispatcher switch statement within the CallToolRequestSchema handler, routing calls to the specific handler method.
    case 'get_compound_properties': return await this.handleGetCompoundProperties(args);
  • Helper validation function (type guard) used in the handler to check input arguments conform to expected shape.
    const isValidPropertiesArgs = ( args: any ): args is { cid: number | string; properties?: string[] } => { return ( typeof args === 'object' && args !== null && (typeof args.cid === 'number' || typeof args.cid === 'string') && (args.properties === undefined || (Array.isArray(args.properties) && args.properties.every((p: any) => typeof p === 'string'))) ); };

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/k-lordbodin7/PubChem-MCP-Server'

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