analyze_stereochemistry
Analyze stereochemistry, chirality, and isomer information for chemical compounds using PubChem data to identify structural variations and molecular configurations.
Instructions
Analyze stereochemistry, chirality, and isomer information
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cid | Yes | PubChem Compound ID (CID) |
Implementation Reference
- src/index.ts:1048-1073 (handler)The handler function that implements the core logic of the 'analyze_stereochemistry' tool. It validates the input CID, queries the PubChem API for stereochemistry properties (AtomStereoCount, DefinedAtomStereoCount, BondStereoCount, DefinedBondStereoCount, IsomericSMILES), and returns the results as formatted JSON.
private async handleAnalyzeStereochemistry(args: any) { if (!isValidCidArgs(args)) { throw new McpError(ErrorCode.InvalidParams, 'Invalid stereochemistry arguments'); } try { const response = await this.apiClient.get(`/compound/cid/${args.cid}/property/AtomStereoCount,DefinedAtomStereoCount,BondStereoCount,DefinedBondStereoCount,IsomericSMILES/JSON`); return { content: [ { type: 'text', text: JSON.stringify({ cid: args.cid, stereochemistry: response.data, }, null, 2), }, ], }; } catch (error) { throw new McpError( ErrorCode.InternalError, `Failed to analyze stereochemistry: ${error instanceof Error ? error.message : 'Unknown error'}` ); } } - src/index.ts:493-499 (schema)The JSON schema defining the input parameters for the tool, requiring a 'cid' (PubChem Compound ID) as number or string.
inputSchema: { type: 'object', properties: { cid: { type: ['number', 'string'], description: 'PubChem Compound ID (CID)' }, }, required: ['cid'], }, - src/index.ts:490-500 (registration)The tool registration entry in the list of available tools returned by ListToolsRequestSchema, including name, description, and input schema.
{ name: 'analyze_stereochemistry', description: 'Analyze stereochemistry, chirality, and isomer information', inputSchema: { type: 'object', properties: { cid: { type: ['number', 'string'], description: 'PubChem Compound ID (CID)' }, }, required: ['cid'], }, }, - src/index.ts:762-763 (registration)The dispatch case in the CallToolRequestSchema handler's switch statement that routes tool calls to the specific handler function.
case 'analyze_stereochemistry': return await this.handleAnalyzeStereochemistry(args); - src/index.ts:65-74 (helper)Helper validation function used by the handler to check if arguments contain a valid CID (number or string), shared across multiple tools.
const isValidCidArgs = ( args: any ): args is { cid: number | string; format?: string } => { return ( typeof args === 'object' && args !== null && (typeof args.cid === 'number' || typeof args.cid === 'string') && (args.format === undefined || ['json', 'sdf', 'xml', 'asnt', 'asnb'].includes(args.format)) ); };