Skip to main content
Glama
pab1it0

adx-mcp-server

Azure データ エクスプローラー MCP サーバー

Microsoft Fabric の Azure Data Explorer/Eventhouse 用のモデル コンテキスト プロトコル(MCP) サーバー。

これにより、標準化された MCP インターフェイスを介して Azure Data Explorer/Eventhouse クラスターとデータベースにアクセスできるようになり、AI アシスタントが KQL クエリを実行してデータを探索できるようになります。

特徴

  • [x] Azure Data Explorerに対してKQLクエリを実行する

  • [x] データベースリソースの検出と探索

    • [x] 設定されたデータベース内のテーブルを一覧表示する

    • [x] テーブルスキーマの表示

    • [x] 表からのサンプルデータ

    • [x] テーブルの統計/詳細を取得する

  • [x] 認証サポート

    • [x] トークン資格情報のサポート (Azure CLI、MSI など)

    • [x] AKS のワークロード ID 資格情報のサポート

  • [x] Dockerコンテナ化のサポート

  • [x] AIアシスタントのためのインタラクティブツールを提供する

ツールリストは設定可能なので、MCPクライアントで利用できるようにするツールを選択できます。これは、特定の機能を使用しない場合や、コンテキストウィンドウをあまり占有したくない場合に便利です。

Related MCP server: Metabase MCP Server

使用法

  1. Azure CLI を使用して、ADX クラスターへのアクセス許可を持つ Azure アカウントにログインします。

  2. .envファイルまたはシステム環境変数を使用して、ADX クラスターの環境変数を構成します。

# 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

Azure ワークロード ID サポート

ワークロード ID が構成された Azure Kubernetes Service (AKS) 環境で実行されている場合、サーバーはデフォルトで WorkloadIdentityCredential を使用するようになりました。必要な環境変数が存在する場合は常に、WorkloadIdentityCredential の使用が優先されます。

Azure Workload Identity を使用した AKS の場合、必要なのは次の点だけです。

  1. ポッドにAZURE_TENANT_IDAZURE_CLIENT_ID環境変数が設定されていることを確認します。

  2. トークン ファイルがデフォルトのパスにマウントされていることを確認するか、 ADX_TOKEN_FILE_PATHでカスタム パスを指定します。

これらの環境変数が存在しない場合、サーバーは自動的に DefaultAzureCredential にフォールバックし、複数の認証方法を順番に試行します。

  1. サーバー設定をクライアント設定ファイルに追加します。例えば、Claude Desktopの場合は以下のようになります。

{
  "mcpServers": {
    "adx": {
      "command": "uv",
      "args": [
        "--directory",
        "<full path to adx-mcp-server directory>",
        "run",
        "src/adx_mcp_server/main.py"
      ],
      "env": {
        "ADX_CLUSTER_URL": "https://yourcluster.region.kusto.windows.net",
        "ADX_DATABASE": "your_database"
      }
    }
  }
}

注意: Claude Desktop でError: spawn uv ENOENT表示される場合は、 uvへのフル パスを指定するか、構成で環境変数NO_UV=1を設定する必要があります。

Dockerの使用

このプロジェクトには、簡単な展開と分離を実現する Docker サポートが含まれています。

Dockerイメージの構築

次を使用して Docker イメージをビルドします。

docker build -t adx-mcp-server .

Dockerで実行する

Docker を使用してサーバーを実行するにはいくつかの方法があります。

docker run を直接使用する:

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

docker-compose を使用する:

Azure Data Explorer の資格情報を使用して.envファイルを作成し、次を実行します。

docker-compose up

Claude Desktop で Docker を実行する

Claude Desktop でコンテナ化されたサーバーを使用するには、環境変数を使用して Docker を使用するように構成を更新します。

{
  "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"
      }
    }
  }
}

この構成では、変数名のみを指定した-eフラグを使用し、 envオブジェクトに実際の値を指定して、Claude Desktop から Docker コンテナーに環境変数を渡します。

開発コンテナ / GitHub Codespace として使用する

このリポジトリは、シームレスな開発環境を実現する開発コンテナとしても使用できます。開発コンテナのセットアップはdevcontainer-feature/adx-mcp-serverフォルダにあります。

詳細については、 devcontainer README を参照してください。

発達

貢献を歓迎します!ご提案や改善点がありましたら、問題を報告するか、プルリクエストを送信してください。

このプロジェクトは依存関係の管理にuvを使用しています。お使いのプラットフォームの手順に従ってuvをインストールしてください。

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

次に、次のコマンドで仮想環境を作成し、依存関係をインストールします。

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

プロジェクト構造

プロジェクトはsrcディレクトリ構造で構成されています:

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

テスト

このプロジェクトには、機能性を保証し、回帰を防ぐのに役立つ包括的なテスト スイートが含まれています。

pytest でテストを実行します。

# Install development dependencies
uv pip install -e ".[dev]"

# Run the tests
pytest

# Run with coverage report
pytest --cov=src --cov-report=term-missing

テストは次のように分類されます:

  • 構成検証テスト

  • サーバー機能テスト

  • エラー処理テスト

  • 主なアプリケーションテスト

新しい機能を追加する場合は、対応するテストも追加してください。

ツール

道具

カテゴリ

説明

execute_query

クエリ

Azure Data Explorer に対して KQL クエリを実行する

list_tables

発見

構成されたデータベース内のすべてのテーブルを一覧表示する

get_table_schema

発見

特定のテーブルのスキーマを取得する

sample_table_data

発見

オプションのサンプルサイズでテーブルからサンプルデータを取得する

ライセンス

マサチューセッツ工科大学


Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pab1it0/adx-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server