MCP server for querying the ARM Data Quality Report (DQR) API for data quality information
Single tool with basic schema and description, but significant gaps in parameter documentation, output schema clarity, and error handling guidance. Description is adequate (194 chars) but lacks WHEN to use and prerequisite context. Parameters lack detailed format/constraint documentation. No output schema documented. Error handling is generic exception wrapping without recovery guidance. Tool naming is acceptable (query_dqr) but description could better explain the multiple API endpoints it abstracts.
Query the ARM Data Quality Report (DQR) API for data quality information. Args: datastream: The datastream to query (required) quality_category: Quality category filter (optional) startdate: Start date for filtering (optional) enddate: End date for filtering (optional) Returns: Dict containing the DQR data
Output schema not documented. Tool returns Dict but LLM cannot infer structure of DQR response fields, making downstream tool chaining and data extraction error-prone.
Parameter descriptions lack format constraints. 'startdate' and 'enddate' have no format specification (ISO 8601? YYYY-MM-DD?), inviting invalid input from LLMs.
Error handling provides no recovery guidance. Generic 'Error querying DQR API' exception tells LLM nothing about whether to retry, ask user, or abandon. No categorization of error types.
Tool description does not explain the multiple API endpoint branches (dqr_full, dqr_ds, dqr_qc, dqr_se) or when each is invoked. LLM cannot reason about parameter combinations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
quality_category parameter lacks enum constraint. Free-form string invites hallucinated values; should declare valid categories (e.g. 'bad', 'suspect', 'good') as enum.