Skip to main content
Glama

get_3d_conformers

Retrieve 3D molecular structure data and conformer information from PubChem using compound identifiers to analyze molecular geometry and spatial arrangements.

Instructions

Get 3D conformer data and structural information

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cidYesPubChem Compound ID (CID)
conformer_typeNoType of conformer data (default: 3d)

Implementation Reference

  • The handler function that validates arguments and fetches 3D conformer properties (Volume3D, ConformerCount3D) from PubChem API for the given CID, returning formatted JSON response.
    private async handleGet3dConformers(args: any) { if (!isValidConformerArgs(args)) { throw new McpError(ErrorCode.InvalidParams, 'Invalid 3D conformer arguments'); } try { const response = await this.apiClient.get(`/compound/cid/${args.cid}/property/Volume3D,ConformerCount3D/JSON`); return { content: [ { type: 'text', text: JSON.stringify({ cid: args.cid, conformer_type: args.conformer_type || '3d', properties: response.data, }, null, 2), }, ], }; } catch (error) { throw new McpError( ErrorCode.InternalError, `Failed to get 3D conformers: ${error instanceof Error ? error.message : 'Unknown error'}` ); } }
  • src/index.ts:478-490 (registration)
    Tool registration in the listTools handler, defining the tool name, description, and input schema.
    { name: 'get_3d_conformers', description: 'Get 3D conformer data and structural information', inputSchema: { type: 'object', properties: { cid: { type: ['number', 'string'], description: 'PubChem Compound ID (CID)' }, conformer_type: { type: 'string', enum: ['3d', '2d'], description: 'Type of conformer data (default: 3d)' }, }, required: ['cid'], }, }, {
  • src/index.ts:760-761 (registration)
    Dispatch case in the central CallToolRequestSchema switch statement that routes to the handler.
    case 'get_3d_conformers': return await this.handleGet3dConformers(args);
  • Type guard function for validating input arguments to the get_3d_conformers tool.
    const isValidConformerArgs = ( args: any ): args is { cid: number | string; conformer_type?: string } => { return ( typeof args === 'object' && args !== null && (typeof args.cid === 'number' || typeof args.cid === 'string') && (args.conformer_type === undefined || ['3d', '2d'].includes(args.conformer_type)) ); };

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