get_3d_conformers
Retrieve 3D molecular conformer data and structural information from PubChem's chemical database using compound IDs for molecular modeling and analysis.
Instructions
Get 3D conformer data and structural information
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cid | Yes | PubChem Compound ID (CID) | |
| conformer_type | No | Type of conformer data (default: 3d) |
Implementation Reference
- src/index.ts:1020-1046 (handler)The main handler function that implements the logic for the 'get_3d_conformers' tool by validating input and fetching 3D conformer properties (Volume3D, ConformerCount3D) from the PubChem API.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-489 (schema)The input schema definition for the 'get_3d_conformers' tool, registered in the tools list.{ 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:103-112 (helper)Helper function for validating the input arguments specific 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)) ); };
- src/index.ts:760-761 (registration)Registration of the 'get_3d_conformers' handler in the main tool dispatcher switch statement.case 'get_3d_conformers': return await this.handleGet3dConformers(args);