A comprehensive Model Context Protocol server for accessing AlphaFold Protein Structure Database with advanced protein structure prediction tools
AlphaFold MCP server has 7 read-only tools with consistent naming patterns and comprehensive input validation. All tools follow verb_noun naming (get_, search_, list_, compare_, export_). Input schemas are properly defined with type guards in code. However, parameter descriptions lack depth and context for LLM decision-making. Output schemas are not documented in the visible code. The server lacks error recovery guidance, confirmation patterns for sensitive operations, and structured error messages that would help agents self-correct.
Retrieve structures for multiple UniProt IDs in a single request
Compare structural features across multiple protein structures
Export structure data in a specified format with optional confidence score inclusion
Retrieve per-residue confidence scores for a protein structure with optional threshold filtering
Retrieve AlphaFold structure prediction for a given UniProt ID in the specified format
List all available AlphaFold structures for a specific organism
Search for AlphaFold structures by query term, with optional organism filtering
Tool descriptions lack LLM-optimized guidance on when to use each tool. 'Retrieve AlphaFold structure prediction...' is functional but does not explain differences from similar tools (e.g., when to use search_structures vs get_structure vs batch_structures). LLMs need explicit disambiguation ('Use this when you have a UniProt ID; use search_structures when you only have a protein name').
Output schemas are not documented. Code shows responses return structured StructureSummary and other types, but LLMs cannot see what fields are returned. Without documented output schemas, agents cannot plan downstream field extraction or composition with other tools. Baseline: 100% of A+ tools document return types.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 26 | - | v1 |
Parameter descriptions are minimal and lack constraint guidance. E.g., 'format' param lists enum values [pdb, cif, bcif, json] but does not explain when to use each or what the performance/size tradeoffs are. 'organism' accepts any string without explaining format (scientific name vs common name vs taxonomy ID). Baseline: 100% of A+ tool params have descriptions; average length 72 chars. These average ~20-30 chars.
No error recovery guidance. Code catches errors (404 Not Found for invalid UniProt IDs) but response tells LLM nothing about what to try next. Pattern baseline: error responses must guide agent. E.g., 'UniProt ID P99999 not found. Try search_structures() with the protein name instead.'
No pagination or result-limit enforcement documented. search_structures and list_organism_structures accept 'size' param (1-100) but description does not explain the default or recommend a reasonable limit for LLM reasoning. Pattern baseline: tools returning lists should cap results at 20-50 and offer pagination. If 100 structures are returned, LLM reasoning degrades.
compare_structures tool lacks guidance on what structural features are compared and what output format is returned. Description says 'Compare structural features' but does not explain: Does it return RMSD, alignment, secondary structure differences, confidence overlaps? LLMs cannot determine whether this tool solves their use case.
export_structure description is vague. 'Export structure data in a specified format...' but which format? Does includeConfidence only work with certain formats? Does the tool return a file URL, raw data, or a download link? Output is unclear.