export_for_pymol
Export protein structure data from AlphaFold MCP Server in PyMOL-compatible format for visualization, with optional confidence score coloring.
Instructions
Export structure data formatted for PyMOL visualization
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| includeConfidence | No | Include confidence score coloring (default: true) | |
| uniprotId | Yes | UniProt accession |
Implementation Reference
- src/index.ts:1556-1619 (handler)The handler function that executes the tool logic: fetches AlphaFold structure data and generates a PyMOL script for visualization, optionally including confidence-based coloring instructions.private async handleExportForPymol(args: any) { if (!isValidExportArgs(args)) { throw new McpError(ErrorCode.InvalidParams, 'Invalid PyMOL export arguments'); } try { const response = await this.apiClient.get(`/prediction/${args.uniprotId}`); const structures = response.data; if (!structures || structures.length === 0) { return { content: [ { type: 'text', text: `No structure available for ${args.uniprotId}`, }, ], }; } const structure = structures[0]; const includeConfidence = args.includeConfidence !== false; const pymolScript = ` # PyMOL script for AlphaFold structure ${args.uniprotId} fetch ${structure.pdbUrl} as cartoon color spectrum ${includeConfidence ? ` # Color by confidence # Very high confidence (pLDDT > 90): blue # Confident (pLDDT 70-90): cyan # Low confidence (pLDDT 50-70): yellow # Very low confidence (pLDDT < 50): orange ` : ''} center zoom `; return { content: [ { type: 'text', text: JSON.stringify({ uniprotId: args.uniprotId, pymolScript, structureUrl: structure.pdbUrl, instructions: 'Copy the PyMOL script above and paste it into PyMOL command line', }, null, 2), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error exporting for PyMOL: ${error instanceof Error ? error.message : 'Unknown error'}`, }, ], isError: true, }; } }
- src/index.ts:539-549 (registration)Registration of the 'export_for_pymol' tool in the ListToolsRequestSchema handler, including name, description, and input schema.name: 'export_for_pymol', description: 'Export structure data formatted for PyMOL visualization', inputSchema: { type: 'object', properties: { uniprotId: { type: 'string', description: 'UniProt accession' }, includeConfidence: { type: 'boolean', description: 'Include confidence score coloring (default: true)' }, }, required: ['uniprotId'], }, },
- src/index.ts:617-618 (registration)Switch case in CallToolRequestSchema handler that routes 'export_for_pymol' calls to the handler function.case 'export_for_pymol': return this.handleExportForPymol(args);
- src/index.ts:134-144 (schema)Type guard function validating input arguments for export tools (used by export_for_pymol handler).const isValidExportArgs = ( args: any ): args is { uniprotId: string; includeConfidence?: boolean } => { return ( typeof args === 'object' && args !== null && typeof args.uniprotId === 'string' && args.uniprotId.length > 0 && (args.includeConfidence === undefined || typeof args.includeConfidence === 'boolean') ); };
- src/index.ts:541-548 (schema)Input schema definition for the 'export_for_pymol' tool.inputSchema: { type: 'object', properties: { uniprotId: { type: 'string', description: 'UniProt accession' }, includeConfidence: { type: 'boolean', description: 'Include confidence score coloring (default: true)' }, }, required: ['uniprotId'], },