リモート Power BI MCP サーバーの使用を開始する (プレビュー)

Important

この機能はプレビュー中です。

リモート Power BI MCP サーバーは、AI エージェントが自然言語を使用してPower BIセマンティック モデルのデータとチャットできるようにする、リモートでホストされるエンドポイントです。 モデル コンテキスト プロトコル (MCP) に基づいて構築され、プロンプトをPower BI操作に変換します。DAX クエリを生成し、アクセス許可とセキュリティ ポリシーを尊重しながら実行します。

Important

  • リモート Power BI MCP サーバーはプレビュー段階です。 ツールの定義、要求形式、および応答スキーマは、機能を強化するにつれて変更される可能性があります。
  • リモート Power BI MCP サーバーは、従来の REST API ではありません。 直接 HTTP 呼び出しを行うのではなく、MCP と互換性のあるエージェントとフレームワークを介してアクセスします。 サーバーは モデル コンテキスト プロトコル仕様を実装します。この仕様では、AI エージェントがツールを検出して呼び出す標準化されたインターフェイスが提供されます。

この記事では、次の方法について説明します:

  • Visual Studio Code でリモート Power BI MCP サーバーに接続する
  • GitHub Copilot を Power BI セマンティック モデルに接続する
  • テスト クエリを使用して接続を検証する

[前提条件]

開始する前に、次のことを確認します。

  • 管理者の承認 - Power BI 管理者はテナント設定を有効にする必要があります。"ユーザーは Power BI モデル コンテキスト プロトコル サーバー エンドポイント (プレビュー) を使用できます"
  • Visual Studio Code - VS Code のダウンロード
  • GitHub Copilot - VS Code で GitHub Copilot を有効にする
  • セマンティック モデルのアクセス - 少なくとも 1 つの Power BI セマンティック モデルに対するアクセス許可を構築する
  • (推奨)最適化されたモデル - クエリ生成の品質を向上させるために AI のセマンティック モデルを準備する

VS Code で設定する

リモート Power BI MCP サーバーは次の場所にあります。

https://api.fabric.microsoft.com/v1/mcp/powerbi

サーバーを構成する最も簡単な方法は、ワンクリック インストーラーを使用することです。

これにより、VS Code 設定で MCP サーバーが自動的に構成されます。

手動インストール

サーバーを手動で構成するには、MCP 構成ファイルに以下を追加します。

{
    "servers": {
        "powerbi-remote": {
            "type": "http",
            "url": "https://api.fabric.microsoft.com/v1/mcp/powerbi"
        }
    }
}

詳細情報:VS Code の MCP サーバー

接続をテストする

構成したら、セットアップが機能していることを確認します。

  1. VS Code で MCP サーバーを起動する

    • MCP サーバー パネルを開く
    • Power BI MCP サーバーが接続済みとして表示されていることを確認する
  2. GitHub Copilot を開く

    1. VS Code でチャット ウィンドウを起動する
    2. エージェント モードを有効にする
  3. セマンティック モデル ID を指定する

    1. Power BI サービスからセマンティック モデル ID を取得する ( セマンティック モデル ID の検索を参照)
    2. 会話で Copilot と ID を共有する
  4. 質問する

    • 例: "このセマンティック モデルに含まれるテーブルは何ですか?
    • 例: "売上別の上位 10 製品を表示する"
  5. ツールを承認する

    1. メッセージが表示されたら、Copilot に MCP サーバー ツールの使用を許可します
    2. 要求された場合は、Microsoft の資格情報を使用して認証します
  6. 応答を確認する

    • Copilot はモデルに対してクエリを実行し、結果を返します

ヒント

最良のクエリ結果を得るには、AI 命令と検証済みの回答を追加して、 AI のセマンティック モデルを準備 します。

トラブルシューティング:VS Code で MCP サーバーを管理する

使用可能なツール

MCP サーバーには、AI エージェントを呼び出す次のツールが用意されています。

クエリの実行

セマンティック モデルに対して DAX クエリを実行し、その結果を AI エージェントに返します。

必要な入力:

  • セマンティック モデル ID
  • DAX クエリ式

アクセス許可:

  • ユーザーは、セマンティック モデルに対する ビルド権限 以上を持っている必要があります
  • クエリは、認証されたユーザーのコンテキストで実行されます

セキュリティに関する考慮事項:

「クエリの実行 REST API」も参照してください

セマンティック モデル スキーマの取得

テーブル、列、メジャー、リレーションシップ、モデル作成者が構成した AI 最適化メタデータなど、Power BIセマンティック モデルの包括的なメタデータを取得します。 このツールを使用して、モデルの構造で DAX クエリの生成を実行し、クエリの精度を向上させる作成者が提供するガイダンスを表示します。

必須の入力: セマンティック モデル ID

含まれるもの:

  • テーブル、列、測定値、リレーションシップ
  • データ型と階層
  • Copilot ツール メタデータ。構成すると、モデルに関するより多くのコンテキストが提供され、モデル内の適切なデータへのCopilotのガイドが役立ち、Copilot出力の品質が向上します。

レポート メタデータの取得

ワークスペース情報、セマンティック モデルの詳細、ページ、ビジュアル情報、フィルターなど、Power BI レポートの概要スキーマを取得します。 レポートでは、セマンティック モデルが実際にどのように使用されているかが明らかになり、DAX クエリの生成をガイドする必要がある目的のコンテキスト、リレーションシップ、およびフィルター処理ロジックを明確にできます。 このツールを使用して、レポートで使用されるモデル スキーマの構造で DAX クエリの生成を実行し、クエリの精度を向上させる作成者が提供するガイダンスを表示します。

必須の入力: レポート ID

含まれるもの:

  • レポート内のページ(非表示かどうかにかかわらず)
  • グラフ、テーブル、マトリックス、スライサー、カードなど、有効なモデル スキーマ参照を含むビジュアル。 アクション ボタン、図形、画像、四角形などのデータ以外のビジュアルは除外されます。
  • 非表示の列とメジャーがビジュアルで参照される場合
  • フィールドをカテゴリ、値、凡例、ヒントなどのビジュアル ロールにマップするビジュアル バインド
  • 各ページのテキスト ボックスの内容

制限:

  • レポート メタデータがサポートされている最大サイズを超えると、要求は失敗します。

クエリの生成

Power BI で Copilot を使用して、自然言語プロンプトから最適化された DAX クエリを生成します。 このツールでは、Power BI 用 Copilot と同じ DAX 生成エンジンを使用して、ベスト プラクティスに従うクエリを作成します。

必要な入力:

  • セマンティック モデル ID
  • 自然言語の質問またはプロンプト
  • エージェントによって決定される関連するスキーマ コンテキスト (テーブル、列、メジャー)

Requirements:

Note

Copilot 容量を使用しない場合は、MCP クライアント構成でこのツールを無効にし、クライアントの LLM に依存して DAX を直接生成します。

セマンティック モデル ID を検索する

Power BI サービスからセマンティック モデル ID を取得するには:

  1. Power BI にサインインする
  2. セマンティック モデルを含むワークスペースに移動します
  3. セマンティック モデルを選択して詳細ページを開く
  4. URL からセマンティック モデル ID をコピーする

セマンティック モデルの URL は、次の形式に従います。

https://app.powerbi.com/groups/{workspaceId}/datasets/{semanticModelId}

ヒント

  • 頻繁に使用されるモデル ID を格納します。エージェントは、 semantic-model-ids.json ローカル ファイルやエージェント命令ファイルのようにアクセスできます。
  • Power BI REST API を使用して、セマンティック モデル ID をプログラムで取得することもできます。

制限事項と考慮事項

認証とセキュリティ

  • 行レベルのセキュリティ (RLS): 現在、サービス プリンシパル認証を使用する場合は適用されません。 サービス プリンシパルは、クエリを実行するときに、プリンシパルがアクセスを許可されているすべてのデータにアクセスできます。 サービス プリンシパルで認証されたエージェントをエンド ユーザーに公開する前に、セキュリティへの影響を慎重に確認してください。
  • テナント設定: 管理者は、組織で "ユーザーは Power BI モデル コンテキスト プロトコル サーバー エンドポイント (プレビュー) を使用できます" を有効にする必要があります。

クエリの生成

  • 複合 DAX: 非常に複雑な計算や入れ子になったロジックは、自然言語プロンプトから完全には変換されない場合があります。
  • モデルの最適化:AI 用にデータを準備すると、クエリ生成の品質が大幅に向上します。

Performance

  • モデル設計への影響: クエリ実行のパフォーマンスは、セマンティック モデルの設計、サイズ、および最適化によって異なります。
  • 大きなスキーマ: 数百のテーブルまたは数千の列を持つモデルでは、大きなスキーマ ペイロードが発生する可能性があります。
  • クエリの複雑さ: 複雑な DAX クエリの生成と実行には時間がかかる場合があります。

コンテキストと会話

  • コンテキスト ウィンドウの制限: MCP クライアントで使用される AI モデルに応じて、会話ターン間で保持できるコンテキストの量には制限があります。
  • ステートレス クエリ: 各クエリは個別に実行されます。 サーバーは、要求間でクエリの状態を維持しません。