kusto-mcp-server
v1.0.0
Published
MCP server for Azure Data Explorer Kusto CLI - Query and manage Kusto clusters with AI assistants
Maintainers
Readme
Kusto MCP Server
An MCP (Model Context Protocol) server that provides tools for interacting with Azure Data Explorer (Kusto) clusters. Query, manage connections, and explore schemas using AI assistants like Claude and GitHub Copilot.
Features
- Execute KQL queries and scripts
- Manage multiple cluster connections
- Explore database schemas
- Full Azure authentication support
- Works with Claude Desktop, Claude Code CLI, and VS Code with GitHub Copilot
Prerequisites
- Node.js 18+
- .NET 8 Runtime
- Kusto CLI (
microsoft.azure.kusto.toolsNuGet package) - Azure CLI (for authentication)
Install Kusto CLI
dotnet tool install -g Microsoft.Azure.Kusto.ToolsOr via NuGet:
nuget install microsoft.azure.kusto.tools -Version 14.0.3Installation
Via npm (recommended)
npm install -g kusto-mcp-serverVia npx (no installation required)
npx kusto-mcp-serverUsage with AI Assistants
Claude Desktop
Add to your Claude Desktop configuration:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"kusto": {
"command": "npx",
"args": ["@yeshsurya/kusto-mcp-server"],
"env": {
"KUSTO_CLI_PATH": "~/.nuget/packages/microsoft.azure.kusto.tools/14.0.3/tools/net8.0/Kusto.Cli.dll"
}
}
}
}Claude Code (CLI)
claude mcp add kusto -- npx kusto-mcp-serverVerify it's connected:
claude mcp listVS Code with GitHub Copilot
Add to your VS Code settings.json:
{
"mcp": {
"servers": {
"kusto": {
"command": "npx",
"args": ["@yeshsurya/kusto-mcp-server"],
"env": {
"KUSTO_CLI_PATH": "~/.nuget/packages/microsoft.azure.kusto.tools/14.0.3/tools/net8.0/Kusto.Cli.dll"
}
}
}
}
}Authentication
Before using the server, authenticate with Azure:
az loginAvailable Tools
Query Tools
| Tool | Description |
|------|-------------|
| kusto_query | Execute KQL queries (primary tool) |
| kusto_execute | Advanced execution with full CLI options |
| kusto_script | Execute script files |
Connection Management
| Tool | Description |
|------|-------------|
| kusto_connection_add | Add/update a named connection |
| kusto_connection_list | List all configured connections |
| kusto_connection_test | Test connectivity |
| kusto_connection_remove | Remove a connection |
| kusto_connection_set_default | Set the default connection |
Schema & Help
| Tool | Description |
|------|-------------|
| kusto_schema | Get database schema information |
| kusto_help | Get help and CLI options |
Usage Examples
Add a Connection
kusto_connection_add({
name: "my-cluster",
cluster: "https://mycluster.kusto.windows.net",
database: "MyDatabase",
authMethod: "azcli",
isDefault: true
})Execute a Query
kusto_query({
query: "StormEvents | summarize count() by State | top 10 by count_",
connectionName: "my-cluster"
})Get Schema
kusto_schema({
scope: "tables",
connectionName: "my-cluster"
})Execute Multiple Commands
kusto_execute({
commands: [
".show tables",
"StormEvents | count"
],
connectionName: "my-cluster"
})Configuration
Environment variables:
| Variable | Description | Default |
|----------|-------------|---------|
| KUSTO_CLI_PATH | Path to Kusto.Cli.dll | Auto-detected |
| KUSTO_DEFAULT_TIMEOUT | Default query timeout (ms) | 60000 |
| KUSTO_MAX_ROWS | Default max rows | 10000 |
Development
# Clone the repository
git clone https://github.com/yeshsurya/kusto-mcp-server.git
cd kusto-mcp-server
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Run tests
npm testPublishing
# Dry run to verify package contents
npm publish --dry-run
# Publish to npm
npm publish --access publicLicense
MIT
