mcpField
P
PBIXRay MCP Server

PBIXRay MCP Server

ローカル
github.com/jonaoldenデータ・分析4574 週間前に更新

PBIXRay MCP Server について

PBIXRay MCP Server は PBIXRay Python パッケージを基にしたサーバーで、Claude や GitHub Copilot などの LLM クライアントがツール経由で Power BI (.pbix) ファイルのモデル情報を参照できます。モデル構造、メジャー、データを AI アシスタントに説明させたい場合に適しています。

主な機能

  1. 01PBIX ファイルの読み込みと分析
  2. 02テーブル、リレーションシップ、スキーマの参照
  3. 03DAX メジャーと計算列の取得
  4. 04Power Query (M) コードとパラメーターの表示
  5. 05テーブル内容のページング取得

活用シーン

  1. 01Power BI モデルの構造とメジャーを AI アシスタントに説明させる
  2. 02レポート内の Power Query 変換ロジックを確認する
  3. 03WSL 上の Claude Desktop から .pbix ファイルを分析する

MCP 対応

PBIXRay の機能をツールとリソースとして公開し、MCP クライアントから .pbix ファイルの情報を取得できるようにします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MseeP.ai セキュリティ評価バッジ

お知らせ!

このプロジェクトに興味のある方は、tabular-mcp という後続プロジェクトにも関心をお持ちかもしれません。ローカルの PowerBI モデルに対して DAX クエリを実行できます。 ご支援いただけると大変ありがたいです!

PBIXRay MCP Server

PBIXRay 用の Model Context Protocol(MCP)サーバーです。

この MCP サーバーは、PBIXRay の機能をツールおよびリソースとして公開し、LLM クライアントが Power BI(.pbix)ファイルを操作できるようにします。

機能

  • PBIX ファイルの読み込みと分析
  • データモデルの調査
    • モデル内のテーブルの一覧表示
    • モデルのメタデータの取得
    • モデルサイズの確認
    • モデルの統計情報の取得
    • モデルの包括的な概要の取得
  • クエリ言語へのアクセス
    • Power Query(M)コードの表示
    • M パラメーターへのアクセス
    • DAX 計算テーブルの調査
    • DAX メジャーの表示
    • DAX 計算列の確認
  • データ構造の分析
    • スキーマ情報の取得
    • テーブル間のリレーションシップの分析
    • ページネーションによるテーブル内容へのアクセス

ツールの一覧は設定可能なため、MCP クライアントに公開するツールを選択できます。 特定の機能を使用しない場合や、機密情報を公開したくない場合に便利です。

ツール

ツールカテゴリ説明
load_pbix_fileコア分析対象の Power BI(.pbix)ファイルを読み込む
get_tablesモデルモデル内のすべてのテーブルを一覧表示する
get_metadataモデルPower BI の構成に関するメタデータを取得する
get_power_queryクエリデータ変換に使用されるすべての M/Power Query コードを表示する
get_m_parametersクエリすべての M パラメーターの値を表示する
get_model_sizeモデルモデルのサイズをバイト単位で取得する
get_dax_tablesクエリDAX 計算テーブルを表示する
get_dax_measuresクエリテーブル名またはメジャー名で絞り込んで DAX メジャーにアクセスする
get_dax_columnsクエリ絞り込みオプションを指定して計算列の DAX 式にアクセスする
get_schema構造データモデルのスキーマと列の型の詳細を取得する
get_relationships構造データモデルのリレーションシップの詳細を取得する
get_table_contentsデータページネーションを使用して指定したテーブルの内容を取得する
get_statisticsモデルオプションの絞り込みを指定してモデルの統計情報を取得する
get_model_summaryモデル現在の Power BI モデルの包括的な概要を取得する

使用方法

WSL(推奨)

クライアントの設定ファイルにサーバー構成を追加します。例として、Claude Desktop の場合:

{
  "mcpServers": {
    "pbixray": {
      "command": "wsl.exe",
      "args": [
        "bash",
        "-c",
        "source ~/dev/pbixray-mcp/venv/bin/activate && python ~/dev/pbixray-mcp/src/pbixray_server.py"
      ]
    }
  }
}
WSL パス変換(インスタンス用 Claude プロジェクトの指示)

Windows 上の Claude Desktop で WSL 内の PBIXRay MCP Server を使用する場合、PBIX ファイルを読み込む際のパスの違いに注意する必要があります。 C:\Users\name\file.pbix のような Windows パスは、WSL から直接アクセスできません。次のように指示を追加して、パスを変換する方法を AI アシスタントに知らせてください。 「mcp サーバーは wsl で実行されています。C:\Users\name\file.pbix のような Windows パスには、WSL から直接アクセスできません。ファイルを参照するときは、代わりに WSL パスを使用してください。 Windows: C:\Users\name\Downloads\file.pbix」 WSL: /mnt/c/Users/name/Downloads/file.pbix」をプロジェクトの指示などに追加してください。

コマンドラインオプション

サーバーでは、次のコマンドラインオプションをサポートしています。

  • --disallow [tool_names]:セキュリティ上の理由で、特定のツールを無効にします
  • --max-rows N:返される行の最大数を設定します(デフォルト:100)
  • --page-size N:ページネーション結果のデフォルトのページサイズを設定します(デフォルト:20)

必要に応じて、設定 JSON にコマンドラインオプションを追加できます。

{
 "mcpServers": {
   "pbixray": {
     "command": "wsl.exe",
     "args": [
       "bash",
       "-c",
        "source ~/dev/pbixray-mcp/venv/bin/activate && python ~/dev/pbixray-mcp/src/pbixray_server.py --max-rows 100 --page-size 50 --disallow get_power_query"
      ],
      "env": {}
    }
  }
}
クエリオプション

ツールは、フィルタリングとページネーション用の追加パラメーターをサポートしています。

名前によるフィルタリング

get_dax_measures、get_dax_columns、get_schema などのツールでは、特定の名前でフィルタリングできます。

# Get measures from a specific table
get_dax_measures(table_name="Sales")

# Get a specific measure
get_dax_measures(table_name="Sales", measure_name="Total Sales")
大きなテーブルのページネーション

get_table_contents ツールは、大きなテーブルを効率的に処理するためのページネーションをサポートしています。

# Get first page of Customer table (default 20 rows per page)
get_table_contents(table_name="Customer")

# Get second page with 50 rows per page
get_table_contents(table_name="Customer", page=2, page_size=50)

開発とテスト

PBIXRay MCP Server をインストールできます。

pip install pbixray-mcp-server
開発用インストール

プロジェクトに取り組む開発者向け:

  1. リポジトリをクローンします:

    git clone https://github.com/username/pbixray-mcp.git
    cd pbixray-mcp
    
  2. 開発モードでインストールします:

    pip install -e .
    
  3. ソースからインストールする場合は、仮想環境を作成して依存関係をインストールします:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install mcp pbixray numpy
    
サンプルファイルを使ったテスト

リポジトリには、すぐに使い始められるよう、サンプルファイルとテストスクリプトが含まれています。

# Test with sample AdventureWorks Sales.pbix file in demo/ folder
python tests/test_with_sample.py

# Try the interactive demo
python examples/demo.py

# For isolated tests of specific features
python test_pagination.py
python test_metadata_fix.py

テストスクリプトを使うと、demo/ ディレクトリに用意されたサンプル PBIX ファイルを使用して、サーバーとやり取りする方法を確認できます。

開発モード

開発中にサーバーをテストするには、MCP Inspector を使用します。

# Activate your environment first
source venv/bin/activate

# Run the MCP Inspector
mcp dev src/pbixray_server.py

これにより、ツールを呼び出して応答をテストできる対話型セッションが開始されます。

プロジェクト構成
pbixray-mcp/
├── README.md            - This file
├── INSTALLATION.md      - Detailed installation instructions
├── src/                 - Source code
│   ├── __init__.py
│   └── pbixray_server.py
├── tests/               - Test scripts
│   ├── __init__.py
│   ├── conftest.py
│   ├── test_server.py
│   └── test_with_sample.py
├── examples/            - Example scripts and configs
│   ├── demo.py
│   └── config/
├── demo/                - Sample PBIX files
│   ├── README.md
│   └── AdventureWorks Sales.pbix
└── docs/                - Additional documentation
    └── ROADMAP.md

貢献

貢献を大歓迎します!

クレジット

  • Hugoberry - PBIXRay の元となったライブラリ
  • rusiaaman - WCGW(この MCP は wcgw を使用して Claude がすべて作成しました)

ライセンス(Claude がどうしても追加すると言い張ったもの)

MIT ライセンス

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。