Labsco
johnib logo

Kusto MCP Server

โ˜… 7

from johnib

An MCP server for Azure Data Explorer (Kusto) that enables AI assistants to interact with Kusto databases.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeQuick setup

๐Ÿ” Kusto MCP Server

npm downloads

Turn your AI assistant into a data analyst in 2 minutes.

Connect Cline, Cursor, Claude Desktop, or any AI tool to Azure Data Explorer. Ask questions in plain English, get insights from your data instantly - no KQL knowledge required.

What You Can Do

  • "Show me error logs from the last hour" โ†’ Get instant insights from telemetry data
  • "Which customers generated the most revenue this month?" โ†’ Analyze business metrics effortlessly
  • "Find all failed authentication attempts" โ†’ Investigate security incidents with AI help
  • "Summarize system performance trends" โ†’ Get automated analysis of monitoring data

No more writing complex KQL queries. Just ask your AI assistant natural questions about your data.

Test It Works

Ask your AI assistant:

"Connect to my Azure Data Explorer cluster at https://your-cluster.kusto.windows.net and show me the available tables"

You should see your AI successfully connect and list your database tables.

Supported AI Tools

  • โœ… Claude Code - One-command setup with native MCP support
  • โœ… Cline - Full support with auto-approval
  • โœ… Cursor - Complete integration
  • โœ… Claude Desktop - Native MCP support
  • โœ… VS Code with MCP - Built-in compatibility
  • โœ… Any MCP-compatible tool - Universal support

What's Under the Hood

This MCP server provides your AI assistant with tools to:

  • Initialize connections to Azure Data Explorer clusters
  • Browse database tables and schemas
  • Execute KQL queries with intelligent result limiting
  • Handle authentication securely through Azure CLI
  • Report a bug or request a feature on GitHub (report-issue)

Results are automatically formatted and sized appropriately for AI context windows, so your assistant gets the data it needs without being overwhelmed.

Reporting a Problem

Hit a bug or want a feature? Ask your AI assistant to "report a kusto-mcp issue about โ€ฆ" and it will call the report-issue tool.

The tool returns a pre-filled GitHub issue link โ€” open it in a browser where you're signed in to GitHub, review the title and body, and click Submit new issue. A few things worth knowing:

  • No GitHub token is needed or stored. The server never files anything on your behalf; the issue is created under your own GitHub account when you submit the form. (You do need a GitHub account to submit.)
  • Works even when the connection is broken โ€” it doesn't require an active Kusto connection, so it's the right tool for reporting connection problems.
  • By default a small, non-sensitive environment footer (kusto-mcp/Node/OS/MCP-client versions, whether a connection is active, response format, write mode) is appended to help triage. Pass includeDiagnostics: false to omit it. It never includes your cluster URL, database, identity, query text, or results.

Telemetry & Privacy

kusto-mcp reports anonymous usage telemetry to the maintainer's Honeycomb instance to understand how the tool is used and to diagnose failures. Telemetry is always on โ€” using kusto-mcp means reporting anonymous usage. There is no personal or organizational data in it, and no query text or results (details below).

What is collected (traces, metrics, and operational logs via OpenTelemetry):

  • Usage: which tools are called, latency, query/command length (not text), result row counts, response sizes, outcomes, and your config/feature-flag settings.
  • Reliability: call/error counts, connection attempts/failures, and error class names (e.g. KustoQueryError) โ€” never error messages.
  • Cohort counters: salted hashes of your Azure tenant id (company_hash) and object id (user_hash), so the maintainer can count distinct organizations and users โ€” no raw tenant, company name, email domain, email, UPN, or user id is ever sent. Plus principal_type (user vs service principal) and account_type (personal vs enterprise); the shared personal-account tenant sends no company_hash.
  • Environment: kusto-mcp version, OS/architecture, Node.js version, MCP client name, and a random per-install identifier (machine.id).

What is NEVER collected: no company name or email domain; no raw Azure tenant id or user id; no full email, UPN, or name; no cluster, database, table, or function names; no query text, results, error messages, credentials, or tokens.

Routing to your own collector: enterprises that run their own OpenTelemetry pipeline can redirect the data with standard env vars โ€” OTEL_EXPORTER_OTLP_ENDPOINT (your OTLP HTTP base URL) and OTEL_EXPORTER_OTLP_HEADERS (key=value,key2=value2).

For Developers

Building, testing, or contributing? See our Developer Documentation for:

  • Building from source
  • Running tests
  • Project structure
  • Contributing guidelines