MCP server for accessing SPARQL endpoints and UniProt protein data
Two tools with minimal documentation. get_current_time has no input schema (empty object) and a 31-char description. get_protein_attributes_from_uniprot has a proper input schema but a 127-char description that embeds example values (P06493), violating the pattern:tool-description rule against examples in descriptions. Neither tool has output schemas documented. No error handling, no parameter validation guidance, no recovery paths. The resource (list_sparqlets) is present but not a tool. Overall definition quality is poor.
Get the current time in ISO format
Get protein attributes from UniProt RDF data Args: UniProt Protein ID example: "P06493" Returns: Protein attributes in the JSON format
get_current_time has no input schema (empty object {}). Tool is trivial but lacks formal definition.
get_protein_attributes_from_uniprot embeds example value 'P06493' in description. Per pattern:tool-description, examples should be in parameter constraints (enum/pattern), not descriptions. LLMs reuse example values literally.
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract fields without knowing return structure. Per pattern:tool, output must be documented.
No error handling or recovery guidance. If UniProt API fails or returns invalid data, LLM has no actionable error message. Per pattern:recovery-guide, errors must guide next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
get_protein_attributes_from_uniprot accepts uniprot_protein_id as free-form string with no validation. No length constraints, format pattern, or enum. Per pattern:constrained-input, valid formats should be declared.