Model Context Protocol server that surfaces UniProtKB data as MCP resources, tools, and prompts.
UniProt MCP presents well-structured tool definitions with consistent naming conventions and proper parameter documentation. All 5 tools follow verb_noun patterns (fetch, get, search, map) and have schema definitions. However, descriptions are generic, most hover around 50-80 chars without context on WHEN to use them or WHY they differ from similar tools. Parameter descriptions are present and mostly adequate, but error handling guidance is minimal. Output schemas are typed via Pydantic models (Entry, Sequence, SearchHit, MappingResult) and documented in code, but not surfaced in tool registration as JSON Schema. The tools are READ-ONLY (safe from destructive side effects), but lack explicit error recovery guidance for common failure modes (rate limits, invalid accessions, network timeouts). Overall, this is solidly competent but lacks the LLM-optimization depth needed for A-grade quality.
Return a structured UniProt entry.
Return the UniProt flatfile (txt or fasta) for a specific entry version.
Return only the sequence metadata for an accession.
Map identifiers between UniProt-supported namespaces.
Search UniProtKB and return curated hits.
Tool descriptions lack WHEN and WHY context. Most are under 70 characters and do not explain when to call this tool vs. similar tools.
Output schemas are defined as Pydantic models in code (Entry, Sequence, SearchHit, MappingResult) but not exposed as JSON Schema in tool registration. LLMs cannot see what fields are returned.
map_ids accepts from_db and to_db as free-form strings with no enumeration of valid namespaces. LLM cannot know valid options (GO, ChEMBL, NCBI, etc.) without trial and error.
fetch_entry_flatfile format parameter accepts 'txt or fasta' as described string constraint, not as enum. Schema should declare format: { enum: ['txt', 'fasta'] }.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Error handling is minimal. No recovery guidance for common failures: rate limits, invalid accessions, network timeouts, empty results.
fetch_entry version parameter is accepted but immediately rejects with ValueError. This parameter should not exist; users should be directed to fetch_entry_flatfile.
map_ids includes ctx (MCP context) parameter for progress reporting, mixing infrastructure concerns into the tool interface. This should be handled internally or via progress protocol, not as a user-facing parameter.