PBIXRay MCP Server について
PBIXRay MCP Server は PBIXRay Python パッケージを基にしたサーバーで、Claude や GitHub Copilot などの LLM クライアントがツール経由で Power BI (.pbix) ファイルのモデル情報を参照できます。モデル構造、メジャー、データを AI アシスタントに説明させたい場合に適しています。
主な機能
- 01PBIX ファイルの読み込みと分析
- 02テーブル、リレーションシップ、スキーマの参照
- 03DAX メジャーと計算列の取得
- 04Power Query (M) コードとパラメーターの表示
- 05テーブル内容のページング取得
活用シーン
- 01Power BI モデルの構造とメジャーを AI アシスタントに説明させる
- 02レポート内の Power Query 変換ロジックを確認する
- 03WSL 上の Claude Desktop から .pbix ファイルを分析する
MCP 対応
PBIXRay の機能をツールとリソースとして公開し、MCP クライアントから .pbix ファイルの情報を取得できるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
お知らせ!
このプロジェクトに興味のある方は、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
開発用インストール
プロジェクトに取り組む開発者向け:
-
リポジトリをクローンします:
git clone https://github.com/username/pbixray-mcp.git cd pbixray-mcp -
開発モードでインストールします:
pip install -e . -
ソースからインストールする場合は、仮想環境を作成して依存関係をインストールします:
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
貢献
貢献を大歓迎します!
クレジット
ライセンス(Claude がどうしても追加すると言い張ったもの)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
