Multi-server MCP system for fetching, processing, and comparing regulatory documents from ESMA (European Securities and Markets Authority) and CSRC (China Securities Regulatory Commission)
Server exhibits significant definition quality gaps. Tool descriptions are present but generic (avg ~60 chars, below 194-char baseline). Input schemas visible but lack parameter descriptions, critical for LLM tool selection. No output schemas documented. Duplicate tool names ('identify_regulatory_body' appears twice with identical signatures) signal composition issues. Tools are READ_ONLY but lack explicit idempotentHint annotations. Error handling guidance absent from descriptions. No evidence of parameter constraints (enums, ranges, formats) despite tools accepting document_types arrays.
Compare documents between regulatory bodies or within same body
Fetch CSRC regulatory documents - CSRC specific tool
Fetch ESMA regulatory documents with enhanced error handling
Get list of locally stored CSRC documents
Get list of locally stored ESMA documents
Get processing server capabilities
Identify this server's regulatory body (ESMA)
Duplicate tool name 'identify_regulatory_body' registered twice (ESMA and CSRC variants). LLMs cannot disambiguate, will select arbitrarily or fail. Violates single-responsibility principle.
Parameter descriptions missing for all tools. 'document_types' array parameter lacks description of valid values, format, or constraints. LLMs cannot infer whether to pass ['MiFID II'] or ['mifid-ii'] or ['1']. Violates pattern:tool-description.
No output schemas documented. Tools return unstructured responses (e.g., 'finalResponse' field inferred from test code). LLMs cannot plan downstream calls or extract structured data. Violates pattern:response-shaper.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | <=2025-11-25 | v2 |
Identify this server's regulatory body (CSRC)
Summarize documents using LLM
Test connectivity to ESMA website
Tool descriptions are generic and under 60 chars (e.g., 'Get list of locally stored ESMA documents'). Lack context for WHEN to use, WHAT to expect, or HOW to interpret results. Baseline is 194 chars. Violates pattern:tool-description.
No error handling guidance in tool descriptions. Tools may fail (network errors, missing documents, API timeouts) but descriptions do not explain recovery steps or error categories. Violates pattern:recovery-guide.