Citation-first MCP server for UAE tax and business law (Markaz Management). Provides access to UAE federal tax legislation corpus with hybrid full-text and semantic search, curated fact tables, and e-invoicing rollout information.
Server has 5 well-named tools with clear descriptions (avg 120 chars, within baseline 194). All tools have input schemas with types and descriptions. However, output schemas are not formally documented, responses are returned as dicts with envelope() wrapper but no schema definition visible. Parameter descriptions are adequate but lack constraint details (ranges, enums, formats). Error handling is present but minimal, most errors return envelope with generic hints rather than actionable recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Missing pagination guidance for search_regulations and list_updates despite potentially large result sets.
UAE e-invoicing rollout: model, scope, phase dates, penalties; optionally tailored to a revenue figure.
Fetch verbatim text of an instrument (optionally one article).
Corpus changelog: most recent instruments added or updated (trust signal).
Search UAE federal tax legislation (hybrid full-text + semantic).
Curated, cited fact tables for UAE corporate tax and VAT.
Output schemas not formally documented. Tools return dict responses via envelope() wrapper, but no JSON Schema definition visible for response structure. LLMs cannot plan downstream operations or validate expected fields.
No tool annotations despite all tools being read-only. Missing readOnlyHint declarations prevent clients from optimizing caching, retry logic, and safety assumptions.
Pagination not documented for search_regulations (top_k capped at 15) and list_updates (limit capped at 100). No next_cursor or total_count fields visible in response structure. Large result sets risk context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Parameter constraints lack specificity. 'top_k' description says '1-15' but no min/max schema constraints visible. 'category' accepts free-form string with validation inside tool rather than enum constraint. Enums should be declared in schema.
Error handling returns generic hints ('Try search_regulations') rather than structured error codes or recovery guidance. No distinction between retryable vs user-fixable vs fatal errors.