Kusto MCP Server
About
An MCP server for Azure Data Explorer (Kusto) that enables AI assistants to interact with Kusto databases.
Details
- Author
- johnib
- Categories
- Database, Other
Jump to
Setup
Install Kusto MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/johnib/kusto-mcp
Follow the installation instructions in the repository README, then restart your MCP client.
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.
- "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.
claude mcp add kusto-mcp -- npx -y kusto-mcp@latest
Add this to yourcline_mcp_settings.jsonfile:
{ "mcpServers": { "github.com/johnib/kusto-mcp": { "command": "npx", "args": ["-y", "kusto-mcp@latest"], "env": {}, "disabled": false, "autoApprove": [ "initialize-connection", "show-tables", "show-table", "execute-query", "report-issue" ] } } }
Add this to your VS Codesettings.json:
{ "mcp": { "servers": { "github.com/johnib/kusto-mcp": { "type": "stdio", "command": "npx", "args": ["-y", "kusto-mcp"] } } } }
Add this to your Claude Desktop configuration file:
{ "mcpServers": { "kusto-mcp": { "command": "npx", "args": ["-y", "kusto-mcp"] } } }
-
Install Azure CLI(if you haven't already):
# Windows winget install Microsoft.AzureCLI # macOS brew install azure-cli # Linux curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
That's it!Your AI assistant can now connect to your Azure Data Explorer clusters.
"Connect to my Azure Data Explorer cluster athttps://your-cluster.kusto.windows.netand show me the available tables"
You should see your AI successfully connect and list your database tables.
- ✅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
- Runaz loginand make sure you have access to the Azure Data Explorer cluster
- Verify you're logged into the correct Azure tenant
- Double-check the cluster URL format:https://your-cluster.kusto.windows.net
- Ensure the cluster is accessible from your network
- Restart your AI assistant after adding the configuration
- Check that the JSON configuration is valid (use a JSON validator)
Still stuck?→Open an issueor check ourtroubleshooting guide.
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.
Hit a bug or want a feature? Ask your AI assistant to"report a kusto-mcp issue about …"and it will call thereport-issuetool.
The tool returns apre-filled GitHub issue link— open it in a browser where you're signed in to GitHub, review the title and body, and clickSubmit 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-sensitiveenvironment footer(kusto-mcp/Node/OS/MCP-client versions, whether a connection is active, response format, write mode) is appended to help triage. PassincludeDiagnostics: falseto omit it. It never includes your cluster URL, database, identity, query text, or results.
kusto-mcp reportsanonymous usage telemetryto 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 errorclass names(e.g.KustoQueryError) — never error messages.
- Cohort counters:saltedhashesof your Azuretenant id(company_hash) andobject id(user_hash), so the maintainer can countdistinctorganizations and users — no raw tenant, company name, email domain, email, UPN, or user id is ever sent. Plusprincipal_type(user vs service principal) andaccount_type(personal vs enterprise); the shared personal-account tenant sends nocompany_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) andOTEL_EXPORTER_OTLP_HEADERS(key=value,key2=value2).
Need custom settings? Check out ourConfiguration Guidefor:
- Response format options (JSON vs Markdown)
- Query timeout settings
- Result size limiting
- OpenTelemetry integration
Building, testing, or contributing? See ourDeveloper Documentationfor:
- Building from source
- Running tests
- Project structure
- Contributing guidelines
💡 Pro tip: Start by asking your AI to "show me the tables in my database" to explore what data you have available, then ask natural language questions about specific tables.
An analytics server providing tools for interacting with the Microsoft Fabric data platform.
Integrate with Power BI using a local server for offline .pbix file analysis and an Azure server for querying live datasets.
Official MCP server for dbt (data build tool) providing integration with dbt Core/Cloud CLI, project metadata discovery, model information, and semantic layer querying capabilities.
Build robust data workflows, integrations, and analytics on a single intuitive platform.
Query and analyze data with MotherDuck and local DuckDB
An MCP server for integrating with Azure Data Explorer, allowing for data querying and management.
Connect your LLM to the Firebolt Data Warehouse for data querying and analysis.
Enables AI assistants to query data from DataFocus using natural language.
Data intelligence platform - query your database in natural language, build dashboards, and set up automated alerts that monitor your metrics 24/7.
Execute KQL queries using Azure authentication. Requires Azure CLI login.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





