AlphaFold MCP server for protein structure prediction
AlphaFoldMCP defines 3 tools with action-verb naming (get_* pattern), but suffers from moderate gaps in parameter documentation and schema completeness. All three tools have descriptions (194-254 chars, within baseline range), but parameter annotations are thin. Input schemas are present with basic types, but lack detailed constraints, enums, and validation guidance. Output schemas are not documented. The server targets a specialized scientific domain (protein structure prediction) with read-only operations, reducing risk, but parameter descriptions could be significantly richer to guide LLM reasoning about UniProt accessions, checksum formats, and annotation types.
Get all AlphaFold models for a UniProt accession.
Get all annotations for a UniProt residue range.
Get UniProt summary and structure information for a protein.
Output schemas not documented. Tool descriptions state WHAT is returned (e.g., 'Get all AlphaFold models') but do not document the structure of the response object, field names, or types. LLMs cannot plan downstream operations without knowing what fields to expect.
Parameter descriptions lack depth and guidance. 'UniProt accession (e.g., 'Q5VSL9')' is a bare example; it does not explain format constraints (length, character set), where to find an accession, or what happens on mismatch. 'CRC64 checksum of the UniProt sequence' lacks guidance on whether it is required and what error occurs if provided but incorrect.
annotation_type parameter for get_annotations has a default of 'MUTAGEN' but the description does not enumerate valid values or explain what types are supported. The description says 'Type of annotation (e.g., MUTAGEN for AlphaMissense)', this is an incomplete constraint. An enum or explicit list of valid types is required.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 38 | - | v1 |
No error recovery guidance. Tools have READ_ONLY risk classification but provide no recovery descriptions. For example, if a UniProt accession is invalid, what should the LLM do? Should it call a search/discovery tool? Should it ask the user for clarification? Error responses lack actionable next steps.
output_json parameter present in all three tools but inconsistently documented. The descriptions for this boolean flag are identical ('Whether to return JSON string or structured object') but the implications differ: JSON strings require parsing; structured objects enable direct field access. The description should clarify which format is recommended and why.