適用対象:✅ Microsoft Fabric の SQL 分析エンドポイントおよびウェアハウス
リモート Fabric Data Warehouse MCP サーバーは、AI エージェントが自然言語を使用してウェアハウスを操作できるようにする、ホストされた MCP エンドポイントです。 モデル コンテキスト プロトコル (MCP) に基づいて構築され、エージェントは、executeSQL ツールを使用して T-SQL ステートメントを実行し、結果を検査し、Fabricのアクセス許可とセキュリティ境界を尊重しながら、実際のウェアハウス コンテキストに対して反復処理する管理された方法を提供します。
この記事では次の方法を紹介します:
Visual Studio Codeのリモート Fabric Data Warehouse MCP サーバーに接続する
グローバル エンドポイントまたは項目スコープ エンドポイントを構成する
GitHub Copilotを使用して、Fabric Data Warehouseに対して T-SQL を生成して実行する
テスト クエリを使用して接続を検証する
Prerequisites
始める前に、以下のことを確認してください:
Visual Studio Code: 最新バージョンのVisual Studio Codeをインストールします。
GitHub Copilot: Visual Studio Code に GitHub Copilot と GitHub Copilot Chat をインストールし、サインインします。
Fabric Data Warehouseアクセス: 少なくとも 1 つのFabric Data Warehouseまたは SQL 分析エンドポイントにアクセスする必要があります。
ウェアハウスのアクセス許可: エージェントに実行を依頼する T-SQL ステートメントを実行するには、必要な Fabric ワークスペースと SQL アクセス許可が必要です。
倉庫コンテキスト: アイテムスコープエンドポイントを使用する予定の場合は、ワークスペース ID と倉庫アイテム ID を使用できるようにします。
エンドポイントを選択する
Fabric Data Warehouse MCP サーバーには、ユース ケースに応じて 2 つのエンドポイント オプションが用意されています。 プロンプトを使用して柔軟なウェアハウスを選択するためのグローバル エンドポイントを選択するか、特定のウェアハウスに接続をバインドする項目スコープのエンドポイントを選択します。
グローバル エンドポイント
Fabric Data Warehouse MCP サーバーに接続する場合は、グローバル エンドポイントを使用して、プロンプトまたはツール引数を使用してウェアハウス コンテキストを指定します。
https://api.fabric.microsoft.com/v1/mcp/dataPlane/sqlEndpoint
項目単位のエンドポイント
MCP サーバー接続を特定のFabric Data Warehouse項目にバインドする場合は、項目スコープのエンドポイントを使用します。
https://api.fabric.microsoft.com/v1/mcp/dataPlane/workspaces/<workspace-id>/items/<item-id>/sqlEndpoint
置換:
<workspace-id>Fabric ワークスペース ID を使用します。<item-id>を Fabric Data Warehouse の項目 ID を使用して指定します。
アイテム スコープ エンドポイントは、エージェント エクスペリエンスを特定のウェアハウスに固定し、チャットでウェアハウス コンテキストを繰り返し提供しないようにする場合に便利です。
Visual Studio Code でのセットアップ
MCP 設定ファイルにサーバー構成を追加して、Visual Studio Codeで Fabric Data Warehouse MCP サーバーを構成します。 柔軟なウェアハウス選択用のグローバル エンドポイントと、特定のウェアハウスへの接続をバインドする項目スコープエンドポイントのどちらかを選択します。
オプション 1: グローバル エンドポイントを構成する
Visual Studio Code MCP 構成ファイルに次のサーバー構成を追加します。
{
"servers": {
"fabric-dw-global": {
"type": "http",
"url": "https://api.fabric.microsoft.com/v1/mcp/dataPlane/sqlEndpoint"
}
}
}
構成を保存した後、Visual Studio Codeで MCP サーバーを再起動または更新します。
オプション 2: 項目スコープ エンドポイントを構成する
Visual Studio Code MCP 構成ファイルに次のサーバー構成を追加します。
{
"servers": {
"fabric-dw-item": {
"type": "http",
"url": "https://api.fabric.microsoft.com/v1/mcp/dataPlane/workspaces/<workspace-id>/items/<item-id>/sqlEndpoint"
}
}
}
<workspace-id>と<item-id>を倉庫の値に置き換えます。
構成を保存した後、Visual Studio Codeで MCP サーバーを再起動または更新します。
接続をテストする
接続を構成したら、セットアップが機能することを確認します。
Visual Studio Codeで MCP サーバーを起動します。
MCP サーバー パネルを開きます。
Fabric Data Warehouse MCP サーバーが接続済みとして表示されていることを確認します。
GitHub Copilot Chat を開きます。
Visual Studio CodeでCopilot Chatを起動します。
エージェント モードを有効にします。
グローバル エンドポイントを使用している場合は、ウェアハウス コンテキストを指定します。
グローバルエンドポイントを設定した場合は、次のようなプロンプトで、使用するウェアハウスを Copilot に指定します。
Use the Fabric Data Warehouse named SalesDW in the Sales Analytics workspace.項目スコープエンドポイントを構成した場合、サーバーは既にエンドポイント URL の倉庫アイテムにスコープが設定されています。
質問する。
- 例:
What tables and views are in this warehouse?- 例:
Show me the top 10 products by sales revenue.ツールの使用を承認します。
メッセージが表示されたら、
executeSQLツールの呼び出しを確認して承認します。要求された場合は、Microsoft資格情報で認証します。
応答を確認します。
- Copilotは、Fabric Data Warehouse MCP サーバーを使用して承認された T-SQL ステートメントを実行し、結果をチャットで返します。
使用可能なツール
Fabric Data Warehouse MCP サーバーは、1 つのツールを公開します。
| Tool | Description |
|---|---|
executeSQL |
Fabric Data Warehouseに対して承認された T-SQL ステートメントを実行し、結果を返します。 |
サーバーでは、スキーマの一覧表示、テーブルの記述、クエリ履歴の取得、またはウェアハウス メタデータの検査のための個別のツールは公開されません。
executeSQLを使用して T-SQL を生成して実行するようにエージェントに依頼することで、これらのワークフローを完了できます。
たとえば、エージェントは、別のテーブル検出ツールを呼び出す代わりに、executeSQLまたはその他のサポートされているシステム ビューに対するクエリでINFORMATION_SCHEMA.TABLESを使用できます。
サンプル プロンプトを使用して検証する
これらのプロンプトを使用して、サーバーが T-SQL を生成し、T-SQL を実行し、結果を説明できることを確認します。
ウェアハウス オブジェクトを探索する
このウェアハウス内のすべてのスキーマを一覧表示します。
スキーマごとにグループ化されたすべてのテーブルとビューを一覧表示します。
dbo.Customersテーブルの列、データ型、および null 値の許容を表示します。
T-SQL の生成と実行
収益別に上位 10 件の製品を返す T-SQL クエリを作成して実行します。
Ordersテーブルの順序の状態で行をカウントするクエリを実行します。Orders、Customers、Products、Regionsを結合して、リージョン別の収益を表示するクエリを作成します。
クエリを理解して改善する
この T-SQL クエリを実行する前に実行する内容について説明します。
結果を変更せずに読みやすくするために、このクエリを書き直します。
このクエリ パターンの改善を提案し、変更後の T-SQL を表示します。
倉庫のアクティビティを監視する
このウェアハウスの最近のクエリ アクティビティを表示します。
注意が必要になる可能性がある実行時間の長いクエリまたはセッションを見つけます。
最近のクエリの失敗を要約し、考えられる根本原因ごとにグループ化します。
Note
正確な監視クエリは、倉庫環境で使用できるシステム ビューによって異なります。
セキュリティとアクセス許可
Fabric Data Warehouse MCP サーバーは、サインインしているユーザーの ID を使用し、Fabricのアクセス許可を尊重します。 ユーザーは、自分の ID がFabric Data Warehouseでの実行を許可されている SQL ステートメントのみを実行できます。
executeSQLするツール呼び出しでは、MCP クライアントで明示的なユーザー承認が必要です。 特に、executeSQL、CREATE、ALTER、DROP、INSERT、UPDATEなどの書き込み操作については、DELETEの実行を許可する前に、生成された T-SQL を確認します。
運用倉庫には最小特権アクセスを使用します。
ウェアハウス オブジェクトを変更するワークフローを有効にする前に、読み取り専用クエリとメタデータ探索から始めます。
Troubleshoot
Fabric Data Warehouse MCP サーバーの設定または使用に問題がある場合は、次のシナリオを使用して一般的な問題のトラブルシューティングを行います。
MCP サーバーが接続済みとして表示されない
MCP 構成が正しく保存されていること、エンドポイント URL が正しいこと、および変更後に Visual Studio Code で MCP サーバーを再起動または更新したことを確認します。
Copilotが倉庫を見つけることができません
グローバル エンドポイントを使用している場合は、チャットでウェアハウス コンテキストを指定します。 アイテム スコープ エンドポイントを使用している場合は、ワークスペース ID とアイテム ID が正しいことを確認します。
認証が失敗する
Microsoft アカウントでもう一度サインインします。 正しいテナントとディレクトリを使用していることを確認します。
ツール呼び出しがアクセス許可エラーで失敗する
必要な Fabric ワークスペース ロール、アイテムのアクセス許可、および SQL アクセス許可を持っていることを確認してください。 サーバーはFabricセキュリティをバイパスしません。
エージェントでスキーマまたはテーブルを一覧表示できない
サーバーは executeSQLのみを公開します。 個別のスキーマ検出ツールを想定するのではなく、SQL メタデータ クエリを使用するようにエージェントに依頼します。
例:
Use executeSQL with INFORMATION_SCHEMA views to list the tables in this warehouse.
クエリ結果が予期しない
Copilot に、実行前に生成された T-SQL を表示するよう依頼します。 ツールの呼び出しを承認する前に、テーブル名、結合、フィルター、日付ロジック、集計ロジックを確認します。