get_3d_conformers
Retrieve 3D conformer data and structural information for chemical compounds using PubChem Compound ID (CID) to analyze molecular properties and configurations.
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 validates input arguments and queries the PubChem API for 3D conformer properties (Volume3D, ConformerCount3D) for the specified CID.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)Registration of the 'get_3d_conformers' tool in the ListTools response, defining its 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 main CallToolRequestSchema switch statement that routes to the handler function.case 'get_3d_conformers': return await this.handleGet3dConformers(args);
- src/index.ts:103-112 (helper)Helper validation function (type guard) used to check input arguments for 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)) ); };