
Vibe querying with MCP server for Azure Data Explorer (Kusto)
Vibe querying with MCP server for Azure Data Explorer (Kusto)
What is MCP Kusto?
MCP Kusto is an implementation of an MCP server for Azure Data Explorer (Kusto) that facilitates data analysis and exploration using its Go SDK.
How to use MCP Kusto?
To use MCP Kusto, clone the repository from GitHub, build the server, and configure it with your MCP client/tool, such as VS Code Insiders in Agent mode.
Key features of MCP Kusto?
- Lists all databases and tables in Azure Data Explorer clusters.
- Retrieves the schema of specific tables.
- Executes read-only KQL queries against databases.
Use cases of MCP Kusto?
- Data exploration and analysis in Azure Data Explorer.
- Integrating with development tools like VS Code for enhanced data interaction.
- Automating database queries and schema retrieval.
FAQ from MCP Kusto?
- What is required to run MCP Kusto?
You need to have the Azure Data Explorer permissions and the Azure CLI for authentication.
- Is there a specific environment to run MCP Kusto?
Yes, it is designed to work with tools like VS Code Insiders in Agent mode.
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:
- list_databases - Lists all databases in a specific Azure Data Explorer cluster.
- list_tables - Lists all tables in a specific Azure Data Explorer database.
- get_table_schema - Gets the schema of a specific table in an Azure Data Explorer database.
- 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:
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