Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Adx Mcp Server

    A Model Context Protocol (MCP) server that enables AI assistants to query and analyze Azure Data Explorer databases through standardized interfaces.

    49 stars
    Python
    Updated Oct 17, 2025

    Table of Contents

    • Features
    • Query Execution
    • Database Discovery
    • Authentication
    • Deployment Options
    • Usage
    • Azure Workload Identity Support
    • Docker Usage
    • Building the Docker Image
    • Running with Docker
    • Using docker run directly:
    • Using docker-compose:
    • Running with Docker in Claude Desktop
    • Using Docker with HTTP Transport
    • Using as a Dev Container / GitHub Codespace
    • Development
    • Project Structure
    • Testing
    • Available Tools
    • Configuration
    • Required Environment Variables
    • Optional Environment Variables
    • Azure Workload Identity (for AKS)
    • MCP Server Configuration
    • Logging
    • License

    Table of Contents

    • Features
    • Query Execution
    • Database Discovery
    • Authentication
    • Deployment Options
    • Usage
    • Azure Workload Identity Support
    • Docker Usage
    • Building the Docker Image
    • Running with Docker
    • Using docker run directly:
    • Using docker-compose:
    • Running with Docker in Claude Desktop
    • Using Docker with HTTP Transport
    • Using as a Dev Container / GitHub Codespace
    • Development
    • Project Structure
    • Testing
    • Available Tools
    • Configuration
    • Required Environment Variables
    • Optional Environment Variables
    • Azure Workload Identity (for AKS)
    • MCP Server Configuration
    • Logging
    • License

    Documentation

    Azure Data Explorer MCP Server

    CI

    codecov

    License: MIT

    Python 3.12

    A Model Context Protocol (MCP) server that enables AI assistants to execute KQL queries and explore Azure Data Explorer (ADX/Kusto) databases through standardized interfaces.

    This server provides seamless access to Azure Data Explorer and Eventhouse (in Microsoft Fabric) clusters, allowing AI assistants to query and analyze your data using the powerful Kusto Query Language.

    Features

    Query Execution

    • Execute KQL queries - Run arbitrary KQL queries against your ADX database
    • Structured results - Get results formatted as JSON for easy consumption

    Database Discovery

    • List tables - Discover all tables in your database
    • View schemas - Inspect table schemas and column types
    • Sample data - Preview table contents with configurable sample sizes
    • Table statistics - Get detailed metadata including row counts and storage size

    Authentication

    • DefaultAzureCredential - Supports Azure CLI, Managed Identity, and more
    • Workload Identity - Native support for AKS workload identity
    • Flexible credentials - Works with multiple Azure authentication methods

    Deployment Options

    • Multiple transports - stdio (default), HTTP, and Server-Sent Events (SSE)
    • Docker support - Production-ready container images with security best practices
    • Dev Container - Seamless development experience with GitHub Codespaces

    The list of tools is configurable, so you can choose which tools you want to make available to the MCP client. This is useful if you don't use certain functionality or if you don't want to take up too much of the context window.

    Usage

    1. Login to your Azure account which has the permission to the ADX cluster using Azure CLI.

    2. Configure the environment variables for your ADX cluster, either through a .env file or system environment variables:

    env
    # Required: Azure Data Explorer configuration
    ADX_CLUSTER_URL=https://yourcluster.region.kusto.windows.net
    ADX_DATABASE=your_database
    
    # Optional: Azure Workload Identity credentials 
    # AZURE_TENANT_ID=your-tenant-id
    # AZURE_CLIENT_ID=your-client-id 
    # ADX_TOKEN_FILE_PATH=/var/run/secrets/azure/tokens/azure-identity-token
    
    # Optional: Custom MCP Server configuration
    ADX_MCP_SERVER_TRANSPORT=stdio # Choose between http/sse/stdio, default = stdio
    
    # Optional: Only relevant for non-stdio transports
    ADX_MCP_BIND_HOST=127.0.0.1 # default = 127.0.0.1
    ADX_MCP_BIND_PORT=8080 # default = 8080

    Azure Workload Identity Support

    The server now uses WorkloadIdentityCredential by default when running in Azure Kubernetes Service (AKS) environments with workload identity configured. It prioritizes the use of WorkloadIdentityCredential whenever the necessary environment variables are present.

    For AKS with Azure Workload Identity, you only need to:

    1. Make sure the pod has AZURE_TENANT_ID and AZURE_CLIENT_ID environment variables set

    2. Ensure the token file is mounted at the default path or specify a custom path with ADX_TOKEN_FILE_PATH

    If these environment variables are not present, the server will automatically fall back to DefaultAzureCredential, which tries multiple authentication methods in sequence.

    3. Add the server configuration to your client configuration file. For example, for Claude Desktop:

    json
    {
      "mcpServers": {
        "adx": {
          "command": "uv",
          "args": [
            "--directory",
            "",
            "run",
            "src/adx_mcp_server/main.py"
          ],
          "env": {
            "ADX_CLUSTER_URL": "https://yourcluster.region.kusto.windows.net",
            "ADX_DATABASE": "your_database"
          }
        }
      }
    }

    Note: if you see Error: spawn uv ENOENT in Claude Desktop, you may need to specify the full path to uv or set the environment variable NO_UV=1 in the configuration.

    Docker Usage

    This project includes Docker support for easy deployment and isolation.

    Building the Docker Image

    Build the Docker image using:

    bash
    docker build -t adx-mcp-server .

    Running with Docker

    You can run the server using Docker in several ways:

    Using docker run directly:

    bash
    docker run -it --rm \
      -e ADX_CLUSTER_URL=https://yourcluster.region.kusto.windows.net \
      -e ADX_DATABASE=your_database \
      -e AZURE_TENANT_ID=your_tenant_id \
      -e AZURE_CLIENT_ID=your_client_id \
      adx-mcp-server

    Using docker-compose:

    Create a .env file with your Azure Data Explorer credentials and then run:

    bash
    docker-compose up

    Running with Docker in Claude Desktop

    To use the containerized server with Claude Desktop, update the configuration to use Docker with the environment variables:

    json
    {
      "mcpServers": {
        "adx": {
          "command": "docker",
          "args": [
            "run",
            "--rm",
            "-i",
            "-e", "ADX_CLUSTER_URL",
            "-e", "ADX_DATABASE",
            "-e", "AZURE_TENANT_ID",
            "-e", "AZURE_CLIENT_ID",
            "-e", "ADX_TOKEN_FILE_PATH",
            "adx-mcp-server"
          ],
          "env": {
            "ADX_CLUSTER_URL": "https://yourcluster.region.kusto.windows.net",
            "ADX_DATABASE": "your_database",
            "AZURE_TENANT_ID": "your_tenant_id",
            "AZURE_CLIENT_ID": "your_client_id",
            "ADX_TOKEN_FILE_PATH": "/var/run/secrets/azure/tokens/azure-identity-token"
          }
        }
      }
    }

    This configuration passes the environment variables from Claude Desktop to the Docker container by using the -e flag with just the variable name, and providing the actual values in the env object.

    Using Docker with HTTP Transport

    For HTTP mode deployment, you can use the following Docker configuration:

    json
    {
      "mcpServers": {
        "adx": {
          "command": "docker",
          "args": [
            "run",
            "--rm",
            "-i",
            "-p", "8080:8080",
            "-e", "ADX_CLUSTER_URL",
            "-e", "ADX_DATABASE", 
            "-e", "ADX_MCP_SERVER_TRANSPORT",
            "-e", "ADX_MCP_BIND_HOST",
            "-e", "ADX_MCP_BIND_PORT",
            "adx-mcp-server"
          ],
          "env": {
            "ADX_CLUSTER_URL": "https://yourcluster.region.kusto.windows.net",
            "ADX_DATABASE": "your_database",
            "ADX_MCP_SERVER_TRANSPORT": "http",
            "ADX_MCP_BIND_HOST": "0.0.0.0",
            "ADX_MCP_BIND_PORT": "8080"
          }
        }
      }
    }

    Using as a Dev Container / GitHub Codespace

    This repository can also be used as a development container for a seamless development experience. The dev container setup is located in the devcontainer-feature/adx-mcp-server folder.

    For more details, check the devcontainer README.

    Development

    Contributions are welcome! Please open an issue or submit a pull request if you have any suggestions or improvements.

    This project uses [uv](https://github.com/astral-sh/uv) to manage dependencies. Install uv following the instructions for your platform:

    bash
    curl -LsSf https://astral.sh/uv/install.sh | sh

    You can then create a virtual environment and install the dependencies with:

    bash
    uv venv
    source .venv/bin/activate  # On Unix/macOS
    .venv\Scripts\activate     # On Windows
    uv pip install -e .

    Project Structure

    The project has been organized with a src directory structure:

    code
    adx-mcp-server/
    ├── src/
    │   └── adx_mcp_server/
    │       ├── __init__.py      # Package initialization
    │       ├── server.py        # MCP server implementation
    │       ├── main.py          # Main application logic
    ├── Dockerfile               # Docker configuration
    ├── docker-compose.yml       # Docker Compose configuration
    ├── .dockerignore            # Docker ignore file
    ├── pyproject.toml           # Project configuration
    └── README.md                # This file

    Testing

    The project includes a comprehensive test suite that ensures functionality and helps prevent regressions.

    Run the tests with pytest:

    bash
    # Install development dependencies
    uv pip install -e ".[dev]"
    
    # Run the tests
    pytest
    
    # Run with coverage report
    pytest --cov=src --cov-report=term-missing

    Tests are organized into:

    • Configuration validation tests
    • Server functionality tests
    • Error handling tests
    • Main application tests

    When adding new features, please also add corresponding tests.

    Available Tools

    ToolCategoryDescriptionParameters
    execute_queryQueryExecute a KQL query against Azure Data Explorerquery (string) - KQL query to execute
    list_tablesDiscoveryList all tables in the configured databaseNone
    get_table_schemaDiscoveryGet the schema for a specific tabletable_name (string) - Name of the table
    sample_table_dataDiscoveryGet sample data from a tabletable_name (string), sample_size (int, default: 10)
    get_table_detailsDiscoveryGet table statistics and metadatatable_name (string) - Name of the table

    Configuration

    Required Environment Variables

    VariableDescriptionExample
    ADX_CLUSTER_URLAzure Data Explorer cluster URLhttps://yourcluster.region.kusto.windows.net
    ADX_DATABASEDatabase name to connect toyour_database

    Optional Environment Variables

    Azure Workload Identity (for AKS)

    VariableDescriptionDefault
    AZURE_TENANT_IDAzure AD tenant ID-
    AZURE_CLIENT_IDAzure AD client/application ID-
    ADX_TOKEN_FILE_PATHPath to workload identity token file/var/run/secrets/azure/tokens/azure-identity-token

    MCP Server Configuration

    VariableDescriptionDefault
    ADX_MCP_SERVER_TRANSPORTTransport mode: stdio, http, or ssestdio
    ADX_MCP_BIND_HOSTHost to bind to (HTTP/SSE only)127.0.0.1
    ADX_MCP_BIND_PORTPort to bind to (HTTP/SSE only)8080

    Logging

    VariableDescriptionDefault
    LOG_LEVELLogging level: DEBUG, INFO, WARNING, ERRORINFO

    License

    MIT

    ---

    Similar MCP

    Based on tags & features

    • AS

      Aseprite Mcp

      Python·
      92
    • IS

      Isaac Sim Mcp

      Python·
      83
    • MA

      Mayamcp

      Python·
      27
    • BI

      Biothings Mcp

      Python·
      25

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • AS

      Aseprite Mcp

      Python·
      92
    • IS

      Isaac Sim Mcp

      Python·
      83
    • MA

      Mayamcp

      Python·
      27
    • BI

      Biothings Mcp

      Python·
      25

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k