mcp-kql-server

mcp-kql-server

7

MCP KQL Server is a Model Context Protocol server tailored for executing Kusto Query Language queries seamlessly across Azure Data Explorer environments. It features integration with Claude Desktop and Visual Studio Code, offering robust authentication via the Azure CLI, and supports intuitive data visualization.

πŸš€ MCP KQL Server

A Model Context Protocol (MCP) server for executing Kusto Query Language (KQL) queries against Azure Data Explorer clusters. Seamlessly integrates with Claude Desktop and Visual Studio Code (VS Code). Supports Azure CLI authentication and provides a convenient kql_execute tool for execute KQL queries directly within your AI prompts, complete with optional visualizations.

MCP KQL server

✨ Features

  • πŸ” Execute KQL Queries: Run KQL queries directly within your AI prompts using the kql_execute MCP tool.
  • ⚑ Plug-and-Play Simplicity: No manual tenant ID configuration or complex credential management. Simply authenticate via Azure CLI (az login) and start querying immediately.
  • πŸ€– Seamless Claude Integration: Execute KQL queries within Claude Desktop without switching interfaces or dashboards.
  • πŸ”’ Secure and Efficient: Leverages Azure CLI’s robust authentication, ensuring secure credential handling and optimized query performance.
  • πŸ“Š Visualization Ready: Optional Markdown table outputs make data analysis intuitive and engaging.
  • πŸ”‘ Azure CLI Authentication: Built-in Azure CLI authentication with retry and caching logic.
  • πŸ“‘ Protocol Compatibility: Fully compatible with MCP protocol version 2024-11-05.
  • πŸ› οΈ Reliable Implementation: Uses fastmcp for a robust and reliable MCP server implementation.

πŸ“Œ Comparison with Other Tools

FeatureMCP KQL ServerAzure Data Explorer MCPStandalone Scripts
Claude Integrationβœ…βŒβŒ
Plug-and-Play Authenticationβœ… (Azure CLI)❌ (Manual setup)❌ (Custom code)
No Tenant ID Requiredβœ…βŒβŒ
Data Visualizationβœ…βœ…βŒ
Open-Sourceβœ…βœ…Varies

πŸ“‹ Requirements

  • Python 3.10 or higher
  • Azure Data Explorer cluster access
  • Azure CLI installed and authenticated (az login)
  • Node.js (optional, for Claude Desktop filesystem server)
  • VS Code with Claude extension or MCP client (for VS Code integration)

πŸ“‚ Project Structure

mcp-kql-server/
β”œβ”€β”€ mcp_kql_server/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ mcp_server.py
β”‚   β”œβ”€β”€ kql_auth.py
β”‚   └── execute_kql.py
β”œβ”€β”€ pyproject.toml
β”œβ”€β”€ README.md

πŸ—οΈ Setup Instructions

1️⃣ Clone the Repository

git clone https://github.com/4R9UN/mcp-kql-server.git
cd mcp-kql-server

2️⃣ Install Python 3.10+

  • Windows:
    winget install Python.Python.3.10
    
  • macOS:
    brew install python@3.10
    
  • Linux:
    sudo apt-get install python3.10
    

Verify installation:

python --version

3️⃣ Install Azure CLI

  • Follow official instructions: Install Azure CLI
  • Log in to Azure:
    az config set core.login_experience_v2=off
    az login
    

4️⃣ Create and Activate Virtual Environment

python -m venv .venv

Activate environment:

  • Windows:
    .venv\Scripts\activate
    
  • macOS/Linux:
    source .venv/bin/activate
    

5️⃣ Install Dependencies

pip install .

πŸ–₯️ Setup for Claude Desktop

  • Copy claude_desktop_config.json to Claude's configuration directory:

    • Windows: C:\Users\YourUser\AppData\Roaming\Claude\
    • macOS: /Users/YourUser/Library/Application Support/Claude/
    • Linux: Currently not supported by Claude Desktop.
  • Update the configuration file with your Python path and project directory:

{
  "mcpServers": {
    "mcp-kql-server": {
      "command": "C:\\Users\\YourUser\\mcp-kql-server\\.venv\\Scripts\\python.exe",
      "args": [
        "-m",
        "mcp_kql_server.mcp_server"
      ]
    }
  }
}
  • Optional: Install Node.js for filesystem server support (Node.js).
  • Restart Claude Desktop.

πŸ–±οΈ Setup for VS Code

  • Install VS Code.
  • Install the Copilot MCP client extension.
  • Modify the MCP settings.json with the following configuration:
{
  "mcpServers": {
    "mcp-kql-server": {
      "command": "C:\\Users\\YourUser\\mcp-kql-server\\.venv\\Scripts\\python.exe",
      "args": [
        "-m",
        "mcp_kql_server.mcp_server"
      ],
      "env": {
        "PYTHONPATH": "C:\\Users\\YourUser\\Downloads\\mcp-kql-server",
        "PYTHONUNBUFFERED": "1",
        "AZURE_CORE_ONLY_SHOW_ERRORS": "true"
      }
    }
  }
}
  • Run the MCP: List Servers command in VS Code’s Command Palette to verify setup.
  • Enable autodiscovery if using Claude Desktop’s configuration.

βœ… Test the Server

  • Claude Desktop:
    • Open Claude Desktop and provide the following prompt:
      Use a tool to execute the attached KQL query, visualize the results, and provide high-level insights from the query output.
      
      KQL query: "cluster('mycluster').database('mydb').MyTable | take 10"
      

🀝 Contributing

  • Fork the repository.
  • Create a feature branch:
    git checkout -b feature/YourFeature
    
  • Commit your changes:
    git commit -m "Add YourFeature"
    
  • Push to your branch:
    git push origin feature/YourFeature
    
  • Open a Pull Request.

πŸ“¬ Contact

For issues or questions, please open a ticket on GitHub or contact the maintainer at .

πŸŽ‰ Happy Querying!