MCP/API server that grounds protein research in the UniProt SPARQL endpoint
uniprot-link demonstrates solid definition quality with consistent naming patterns (verb_noun: find_proteins, get_protein, etc.), comprehensive parameter schemas with types and descriptions, and clear tool purposes. All 15 tools follow action-verb conventions. However, descriptions are often terse (many under 100 chars), output schemas are not explicitly documented in the source, and error handling guidance is minimal. Parameter descriptions are present but lack constraint details (ranges, formats, enums). The server targets a specialized domain (UniProt research) with well-scoped, read-only operations, which reduces complexity but also limits composition patterns.
Get the status of a UniProt entry (active, obsolete, demerged, isoform, or absent)
Find proteins by gene name, organism taxon, keyword, EC number, mnemonic, or name substring
Get the full text of an example SPARQL query by IRI
Get comprehensive protein information by accession
Get cross-references to external databases for a protein by accession
Get disease associations for a protein by accession
Get protein features (domains, regions, sites, etc.) by accession and optional feature types
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Get comprehensive protein information') but do not specify the response structure, field names, or types. LLMs cannot plan downstream calls or extract specific fields without knowing the output schema.
Parameter descriptions lack constraint details. Descriptions like 'NCBI taxonomy ID' or 'UniProt accession' do not specify format, range, or valid patterns. LLMs cannot validate input before calling and may pass invalid values (e.g., negative taxon_id, malformed accession).
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Get Gene Ontology (GO) terms for a protein by accession
Get protein variants with disease associations by accession
Get server capabilities and metadata
Resolve NCBI taxonomy ID from organism scientific name
Execute a custom SPARQL query against the UniProt endpoint
Search example SPARQL queries by topic or keyword
Get ancestor taxa for an organism by NCBI taxonomy ID
Get core taxonomy information for an organism by NCBI taxonomy ID
Terse descriptions under 100 characters for 8 tools (entry_status, taxon_core, taxon_ancestors, get_protein_diseases, get_protein_go_terms, get_example_query, get_server_capabilities). Descriptions should explain WHAT the tool does, WHEN to use it, and any prerequisites. Current descriptions lack context for LLM selection.
No error handling guidance. Tool descriptions do not explain what errors can occur, how to recover, or what to do if a lookup fails (e.g., 'accession not found'). LLMs have no recovery path when a call fails.
Pagination not documented for list-returning tools. find_proteins and search_example_queries accept 'limit' but descriptions do not mention offset/cursor, total count, or how to fetch additional results. Large result sets risk context window exhaustion.