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
使用法
Azure CLI を使用して、ADX クラスターへのアクセス許可を持つ Azure アカウントにログインします。
.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-tokenAzure ワークロード ID サポート
ワークロード ID が構成された Azure Kubernetes Service (AKS) 環境で実行されている場合、サーバーはデフォルトで WorkloadIdentityCredential を使用するようになりました。必要な環境変数が存在する場合は常に、WorkloadIdentityCredential の使用が優先されます。
Azure Workload Identity を使用した AKS の場合、必要なのは次の点だけです。
ポッドに
AZURE_TENANT_IDとAZURE_CLIENT_ID環境変数が設定されていることを確認します。トークン ファイルがデフォルトのパスにマウントされていることを確認するか、
ADX_TOKEN_FILE_PATHでカスタム パスを指定します。
これらの環境変数が存在しない場合、サーバーは自動的に DefaultAzureCredential にフォールバックし、複数の認証方法を順番に試行します。
サーバー設定をクライアント設定ファイルに追加します。例えば、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-serverdocker-compose を使用する:
Azure Data Explorer の資格情報を使用して.envファイルを作成し、次を実行します。
docker-compose upClaude 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テストは次のように分類されます:
構成検証テスト
サーバー機能テスト
エラー処理テスト
主なアプリケーションテスト
新しい機能を追加する場合は、対応するテストも追加してください。
ツール
道具 | カテゴリ | 説明 |
| クエリ | Azure Data Explorer に対して KQL クエリを実行する |
| 発見 | 構成されたデータベース内のすべてのテーブルを一覧表示する |
| 発見 | 特定のテーブルのスキーマを取得する |
| 発見 | オプションのサンプルサイズでテーブルからサンプルデータを取得する |
ライセンス
マサチューセッツ工科大学