Kusto MCP Server logo

Kusto MCP Server

by abhirockzz

This is an MCP server implementation for Azure Data Explorer (Kusto), built using the Go SDK. It enables easier data analysis and exploration within MCP-compatible tools like VS Code.

View on GitHub

Last updated: N/A

Vibe querying with MCP server for Azure Data Explorer (Kusto)

This is an implementation of an MCP server for Azure Data Explorer (Kusto) built using its Go SDK. You can use this with VS Code (or other MCP tools) for making data analysis and exploration easier.

It exposes tools for interacting with Azure Data Explorer:

  1. list_databases - Lists all databases in a specific Azure Data Explorer cluster.
  2. list_tables - Lists all tables in a specific Azure Data Explorer database.
  3. get_table_schema - Gets the schema of a specific table in an Azure Data Explorer database.
  4. execute_query - Executes a read-only KQL query against a database.

Word(s) of caution: As much as I want folks to benefit from this, I have to call out that Large Language Models (LLMs) are non-deterministic by nature and can make mistakes. I would recommend you to always validate the results and queries before making any decisions based on them.

Here is a sneak peek:

kusto mcp server in action

kusto mcp server in action

How to run

git clone https://github.com/abhirockzz/mcp_kusto
cd mcp_kusto

go build -o mcp_kusto main.go

Configure the MCP server

This will differ based on the MCP client/tool you use. For VS Code you can follow these instructions on how to configure this server using a mcp.json file.

Here is an example of the mcp.json file:

{
  "servers": {
    "Kusto MCP server": {
      "type": "stdio",
      "command": "enter path to binary e.g. /Users/demo/Desktop/mcp_kusto",
      "args": []
    },
    //other MCP servers...
  }
}

Here is an example of Claude Desktop configuration:

{
  "mcpServers": {
    "Kusto MCP server": {
      "command": "enter path to binary e.g. /Users/demo/Desktop/mcp_kusto",
      "args": []
    },
    //other MCP servers...
  }
}

Authentication

  • The user principal you use should have permissions required for .show databases, .show table, .show tables, and execute queries on the database. Refer to the documentation for Azure Data Explorer for more details.

  • Authentication (Local credentials) - To keep things secure and simple, the MCP server uses DefaultAzureCredential. This approach looks in the environment variables for an application service principal or at locally installed developer tools, such as the Azure CLI, for a set of developer credentials. Either approach can be used to authenticate the MCP server to Azure Data Explorer. For example, just login locally using Azure CLI (az login).

You are good to go! Now spin up VS Code, Claude Desktop, or any other MCP tool and start vibe querying your Azure Data Explorer (Kusto) cluster!

Local dev/testing

Start with MCP inspector - npx @modelcontextprotocol/inspector ./mcp_kusto