An MCP server that discovers and registers tools as Azure Functions blueprints, providing read-only KQL query access to Azure Log Analytics workspaces with workspace allow-listing and RBAC controls.
Single tool 'run_kql' has excellent naming (verb_noun), comprehensive description (194 chars), and well-documented parameters with types and descriptions. Input schema is complete with proper JSON Schema structure. Output is structured JSON with clear fields (rows, rowCount, truncated, partial, partialError). Error handling returns actionable messages. However, output schema is not formally documented in code comments, and the tool lacks explicit error categorization (retryable vs fatal). No tool annotations (readOnlyHint) despite being read-only. Overall solid production-ready tool with minor documentation gaps.
Run a read-only KQL query against an allow-listed Azure Log Analytics workspace and return the rows as JSON. The workspace must be on this deployment's allow-list and the server's identity needs Log Analytics Reader on it. Results are capped at 100 rows and long cells are truncated, so ask precise questions (project the columns you need, summarize where you can).
Output schema not formally documented. While the tool returns structured JSON (rows, rowCount, truncated, partial, partialError), there is no docstring or code comment explicitly documenting the response schema for LLM planning.
Missing tool annotations. The tool is read-only but lacks @readOnlyHint annotation. This prevents clients from optimizing caching, retry logic, or safety checks.
Error responses lack categorization. Errors are returned as JSON but do not indicate whether they are retryable (e.g., transient API failure) or user-fixable (e.g., invalid workspace ID). LLMs cannot determine recovery strategy.
No rate limiting or timeout handling documented. The tool calls Azure Monitor Query API but does not specify timeout behavior or rate limit guidance, risking agent retry loops.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |