get_3d_conformers
Retrieve 3D or 2D conformer data and structural details for chemical compounds using PubChem Compound ID (CID) for analysis and visualization.
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 execution function for the 'get_3d_conformers' tool. Validates input using isValidConformerArgs, queries PubChem API for 3D conformer properties (Volume3D, ConformerCount3D), and returns 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:481-487 (schema)Input schema defining parameters for the tool: required 'cid' (number or string), optional 'conformer_type' enum ['3d','2d']. Used in tool registration.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)Switch case in CallToolRequestSchema handler that registers and dispatches 'get_3d_conformers' tool calls to its handler method.case 'get_3d_conformers': return await this.handleGet3dConformers(args);
- src/index.ts:103-112 (helper)Helper type guard function that validates tool arguments matching the input schema, used in the handler.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:478-489 (registration)Tool metadata registration in ListToolsRequestSchema response, including 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'], }, },