PBIXRay MCP サーバー
PBIXRay 用のモデル コンテキスト プロトコル(MCP) サーバー。
この MCP サーバーは、LLM クライアントが Power BI (.pbix) ファイルと対話するためのツールおよびリソースとしてPBIXRayの機能を公開します。
特徴
[x] PBIXファイルの読み込みと分析
[x] データモデルの探索
[x] モデル内のテーブルの一覧表示
[x] モデルメタデータの取得
[x] モデルサイズの確認
[x] モデル統計の取得
[x] 包括的なモデル概要を取得する
[x] クエリ言語アクセス
[x] Power Query (M) コードの表示
[x] Mパラメータへのアクセス
[x] DAX計算テーブルの探索
[x] DAXメジャーの表示
[x] DAX計算列の調査
[x] データ構造解析
[x] スキーマ情報の取得
[x] テーブルの関係を分析する
[x] ページネーションを使用して表の内容にアクセスする
ツールリストは設定可能なので、MCPクライアントで利用できるようにするツールを選択できます。これは、特定の機能を使用しない場合や、機密情報を公開したくない場合に便利です。
Related MCP server: MCP MySQL Server
ツール
道具 | カテゴリ | 説明 |
| コア | 分析用に Power BI (.pbix) ファイルを読み込む |
| モデル | モデル内のすべてのテーブルを一覧表示する |
| モデル | Power BI 構成に関するメタデータを取得する |
| クエリ | データ変換に使用されるすべての M/Power Query コードを表示します |
| クエリ | すべてのMパラメータ値を表示 |
| モデル | モデルのサイズをバイト単位で取得する |
| クエリ | DAX 計算テーブルを表示する |
| クエリ | テーブルまたはメジャー名でフィルタリングして DAX メジャーにアクセスする |
| クエリ | フィルター オプションを使用して計算列の DAX 式にアクセスする |
| 構造 | データモデルのスキーマと列タイプの詳細を取得します |
| 構造 | データモデルの関係の詳細を取得する |
| データ | 指定されたテーブルの内容を取得し、ページ区切りで表示する |
| モデル | オプションのフィルタリングを使用してモデルに関する統計情報を取得します |
| モデル | 現在の 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 Project の手順)
Windows 上の Claude Desktop で WSL の PBIXRay MCP サーバーを使用する場合、PBIX ファイルの読み込み時にパスの違いに注意する必要があります。Windows パス ( C:\Users\name\file.pbixなど) は WSL から直接アクセスできません。プロジェクトの指示などに「MCP サーバーは WSL で実行されています。Windows パス (C:\Users\name\file.pbix など) は WSL から直接アクセスできません。ファイルを参照する際は、代わりに WSL パスを使用してください。Windows: C:\Users\name\Downloads\file.pbix WSL: /mnt/c/Users/name/Downloads/file.pbix」という記述を追加することで、AI アシスタントにパス間の変換方法を知らせることができます。
コマンドラインオプション
サーバーはいくつかのコマンドライン オプションをサポートしています。
--disallow [tool_names]: セキュリティ上の理由から特定のツールを無効にする--max-rows N: 返される行の最大数を設定します(デフォルト: 100)--page-size N: ページ分割された結果のデフォルトのページサイズを設定します(デフォルト: 20)
必要に応じて、config 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 サーバーをインストールできます:
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貢献
貢献は大歓迎です!