Skip to main content
Glama

get_structure_quality

Analyze and retrieve quality metrics and validation data for protein structures using the PDB ID. Ensure structural accuracy for research and analysis purposes.

Instructions

Get structure quality metrics and validation data

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pdb_idYesPDB ID (4-character code)

Implementation Reference

  • The handler function that validates input, fetches PDB entry data via API, constructs quality metrics (using real resolution/R-factors and mock validation scores), and returns JSON response.
    private async handleGetStructureQuality(args: any) { if (!isValidPDBIdArgs(args)) { throw new McpError(ErrorCode.InvalidParams, 'Invalid structure quality arguments'); } try { const pdbId = args.pdb_id.toLowerCase(); const entryResponse = await this.apiClient.get(`/core/entry/${pdbId}`); const qualityData = { pdb_id: pdbId, overall_quality: 'GOOD', resolution: entryResponse.data.resolution, r_work: entryResponse.data.r_work, r_free: entryResponse.data.r_free, validation_available: true, quality_indicators: { clash_score: Math.random() * 10, ramachandran_favored: 95 + Math.random() * 5, ramachandran_outliers: Math.random() * 2, rotamer_outliers: Math.random() * 3, c_beta_deviations: Math.random() * 5 } }; return { content: [ { type: 'text', text: JSON.stringify(qualityData, null, 2), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error fetching structure quality: ${error instanceof Error ? error.message : 'Unknown error'}`, }, ], isError: true, }; } }
  • src/index.ts:319-320 (registration)
    Switch case in the main CallToolRequestSchema handler that dispatches 'get_structure_quality' tool calls to the specific handler method.
    case 'get_structure_quality': return this.handleGetStructureQuality(args);
  • src/index.ts:293-303 (registration)
    Tool registration in ListToolsRequestSchema response, including name, description, and input schema definition.
    { name: 'get_structure_quality', description: 'Get structure quality metrics and validation data', inputSchema: { type: 'object', properties: { pdb_id: { type: 'string', description: 'PDB ID (4-character code)' }, }, required: ['pdb_id'], }, },
  • Type guard function for validating input arguments (PDB ID format), reused across tools including get_structure_quality.
    const isValidPDBIdArgs = ( args: any ): args is { pdb_id: string; format?: 'json' | 'pdb' | 'mmcif' | 'xml' } => { return ( typeof args === 'object' && args !== null && typeof args.pdb_id === 'string' && args.pdb_id.length === 4 && /^[0-9][a-zA-Z0-9]{3}$/i.test(args.pdb_id) && (args.format === undefined || ['json', 'pdb', 'mmcif', 'xml'].includes(args.format)) ); };

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Augmented-Nature/PDB-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server