The server defines 7 tools with complete JSON Schema input definitions and descriptions. Tool names follow verb-noun convention (initialize-connection, execute-query, show-tables). Most parameters have descriptions, but several issues reduce the score: (1) execute-query has a rich description (238 chars, good), but show-tables and show-functions lack detail despite being discovery tools; (2) no output schemas documented anywhere; (3) no error guidance provided (e.g., what happens if connection fails, how to recover); (4) report-issue tool accepts parameters but LLM has no insight into what fields the response contains. Tool naming is clear and distinguishes operations well (show-table vs show-tables, show-function vs show-functions). Parameters are well-constrained with types and descriptions where present, though some lack min/max bounds. Overall: solid foundation with good naming and parameter coverage, but missing output schema documentation and error recovery guidance prevents higher score.
Runs KQL queries and returns results. By default, limits results to 20 rows to prevent context overflow. Use the "limit" parameter to specify a different maximum. If results are marked as partial, consider revising your query to use aggregations, filters, or summarizations.
Creates connection to an ADX cluster
Report a bug or request a feature for kusto-mcp on GitHub. Returns a pre-filled GitHub issue link you open in your browser and submit under your own GitHub account — no GitHub token is used or stored, and no Kusto connection is required.
Show details of a specific function, including its code and parameters
List functions in the current database
Show the table schema columns
No output schemas documented. LLMs cannot predict response structure or plan downstream operations. E.g., what does execute-query return? Fields? Format? Type of each column? Tool descriptions mention 'returns results' but don't specify schema.
Discovery tools (show-tables, show-functions) lack descriptions explaining when to use them and what they reveal. Should state: 'Call this first to discover available [tables/functions] before executing queries or calling show-table/show-function.'
execute-query lacks mention of error scenarios and recovery. Description says 'limits results to 20 rows' and 'if partial, revise your query' but doesn't explain: What causes 'partial' results? Is it a timeout, size limit, or partial match? What's the error response format? How should LLM recover?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 63 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 61 | - | v1 |
List tables in the current database
initialize-connection is marked WRITE (state change) but no description explains implications: Is this idempotent? Can it be retried safely? Does it close prior connections? What happens if called twice?
execute-query 'limit' parameter has a default (20) which is good, but no description of what 'partial' results mean or under what conditions they occur. LLM cannot distinguish between 'API returned fewer rows' vs 'query timed out' vs 'result set was truncated'.