Release Date: August 2, 2026
Authentication
- Checks
az account get-access-tokenbefore attempting login. - Runs plain interactive
az loginonly when no usable token is available. - Verifies token acquisition after login before allowing KQL execution.
- Completes authentication at server startup so tool requests never block on interactive login.
- Never invokes
az login --use-device-code.
MCP Runtime
- Migrated from the third party
fastmcpdistribution to the officialmcpPython SDK. - Eliminates the
fastmcpandfastmcp-slimmixed installation crash involvingPrivateKeyJWTClientAuthenticator. - Eliminates the FastMCP 2
AuthlibDeprecationWarningpath while preserving tool names and stdio or streamable HTTP transports.
Maintenance
- Removed unreachable prompt templates, unused analyzers and feature registries, no-op query wrappers, and definition-only utility methods.
- Replaced the optional PyPI version check's HTTP client fallback with
urllib.request. - Removed redundant direct dependency declarations while retaining semantic search, schema validation, connection pooling, and compatibility bounds.
- Removed the direct Pydantic constraint because the server does not import Pydantic; the official MCP SDK now owns that transitive requirement, preventing this package from downgrading Pydantic in shared environments.
- Enforced read-only Kusto execution, allowing only
.showand.helpmanagement commands. - Added loopback-only HTTP defaults, HTTPS endpoint validation, bounded responses and caches, and nonblocking authentication/query execution.
- Closed SQLite connections deterministically and evicted expired cache entries during normal use.
- Added model-aware embedding storage, configurable semantic models, offline ranking quality gates, and current MCP protocol discovery tests.
- Made package metadata imports side-effect free and lazy, reducing measured cold import time from about 2.94 seconds to 0.11 seconds.
- Added managed identity authentication and an internal-only streamable HTTP Container Apps deployment path.
- Extracted bounded DataFrame/result handling from the main MCP tool handler into a dedicated formatter module.
- Starts MCP transport immediately while Azure CLI authentication initializes in the background.
- Makes Kusto tool calls wait for the startup authentication result without launching login during execution.
- Reduces the normal query budget to 120 seconds while retaining the 600 second hard ceiling.
- Detects timeout causes wrapped by the Azure Kusto SDK and prevents another full retry.
- Requires lint, package validation, the platform install matrix, and tests before PyPI publishing.
- Pins Ruff 0.16.1 and explicitly selects the established correctness rules so local and CI lint results remain consistent.
Upgrade
pip install --upgrade mcp-kql-server==2.1.5