Power Bi Mcp Server について
AIアシスタントからPower BIを操作したいユーザー向けのMCPサーバーです。ワークスペース、レポート、データセット、ダッシュボードを扱い、DAXクエリやレポート出力、プッシュデータセットに対応します。Microsoft Entra IDのOAuth2認証を利用します。
主な機能
- 01ワークスペースの一覧とメンバー管理
- 02レポートの複製、出力、再バインド
- 03DAXクエリとデータセット更新
- 04更新スケジュールの管理
- 05ダッシュボードとタイルの参照
- 06プッシュデータセットの作成とデータ追加
活用シーン
- 01売上データセットの地域別集計
- 02四半期レポートをPDFまたはPPTXで出力
- 03データセットを更新して履歴を確認
- 04分析ワークスペースへのユーザー追加
MCP 対応
互換性のあるAIアシスタントに、Power BIのワークスペース、レポート、データセット、ダッシュボード操作を公開します。対話型ログインとアプリ資格情報による認証に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Power BI MCP サーバー
AI アシスタントが Power BI のワークスペース、データセット、レポート、ダッシュボードをプログラムから操作できるようにする、Model Context Protocol(MCP)サーバーです。
🚀 機能
- ワークスペース管理:Power BI ワークスペースの一覧表示と管理
- レポート操作:レポートへのアクセス、複製、エクスポート、再バインド
- データセット管理:DAX クエリの実行、データセットの更新、スケジュールの管理
- ダッシュボードへのアクセス:ダッシュボードの一覧表示と操作
- プッシュデータセット:リアルタイムデータを使用したプッシュデータセットの作成と管理
- 認証:Microsoft Entra ID による安全な OAuth2 認証
📋 前提条件
- Node.js(v18 以降)
- npm または yarn
- Power BI Pro または Premium ライセンス
- Microsoft Entra ID アプリの登録
- MCP 対応の AI アシスタント(Claude Desktop など)
🔧 インストール
- リポジトリをクローンします:
git clone https://github.com/michaelmckinleyconsulting/powerbi-mcp-server.git
cd powerbi-mcp-server
- 依存関係をインストールします:
npm install
- プロジェクトをビルドします:
npm run build
⚙️ 設定
1. Microsoft Entra ID の設定
- Azure Portal でアプリケーションを登録します
- Power BI Service の API 権限を設定します
- 次の情報を控えておきます:
- クライアント ID
- テナント ID
- クライアントシークレット(アプリのみの認証を使用する場合)
2. 環境変数
ルートディレクトリに .env ファイルを作成します(テンプレートについては .env.example を参照してください)。
PBI_PUBLIC_CLIENT_ID=your_client_id
PBI_TENANT_ID=your_tenant_id # Optional, defaults to 'common'
PBI_SCOPES=https://analysis.windows.net/powerbi/api/.default # Optional, or specify custom scopes
注:このサーバーでは PKCE を使用した Authorization Code フローを使用します(クライアントシークレットは不要です)。Azure アプリに次のリダイレクト URI を設定してください:
http://localhosthttp://127.0.0.1
3. MCP の設定
MCP クライアントの設定に追加します:
Claude Desktop
{
"mcpServers": {
"powerbi": {
"command": "node",
"args": ["path/to/powerbi-mcp-server/dist/index.js"],
"env": {
"PBI_PUBLIC_CLIENT_ID": "your_client_id",
"PBI_TENANT_ID": "your_tenant_id"
}
}
}
}
VS Code MCP Extension
{
"mcp.servers": {
"powerbi": {
"command": "node",
"args": ["path/to/powerbi-mcp-server/dist/index.js"],
"transport": "stdio",
"env": {
"PBI_PUBLIC_CLIENT_ID": "your_client_id"
}
}
}
}
📖 使用方法
基本操作
設定が完了すると、AI アシスタントから次の操作を実行できます:
- ワークスペースの一覧表示:「自分の Power BI ワークスペースをすべて表示して」
- DAX の実行:「地域別の売上を取得する DAX クエリを実行して」
- レポートのエクスポート:「四半期レポートを PDF にエクスポートして」
- データセットの更新:「売上データセットを更新して」
- アクセスの管理:「[email protected] を Analytics ワークスペースに追加して」
プロンプトの例
"List all reports in my Sales workspace"
"Execute this DAX query against the Finance dataset: EVALUATE SUMMARIZE(...)"
"Export the Monthly KPI report to PowerPoint"
"Show me the refresh history for the Customer dataset"
"Create a push dataset for real-time monitoring"
🔐 認証
このサーバーは、次の 2 つの認証方式に対応しています:
- 対話型(推奨):ユーザーがブラウザーからサインインします
- アプリのみ:クライアント資格情報を使用します(管理者の同意が必要です)
初回起動時、サーバーは既定のブラウザーを使った認証を求めます。
📁 プロジェクト構成
powerbi-mcp-server/
├── src/
│ ├── index.ts # Main server entry point
│ ├── auth/ # Authentication logic
│ ├── handlers/ # Request handlers
│ ├── types/ # TypeScript definitions
│ └── utils/ # Utility functions
├── dist/ # Compiled JavaScript (git-ignored)
├── package.json
├── tsconfig.json
└── README.md
🛠️ 開発
開発モードでの実行
npm run dev
テストの実行
npm test
本番環境用のビルド
npm run build
📊 対応している Power BI 操作
ワークスペース(グループ)
- ワークスペースの一覧表示
- ワークスペースのユーザー取得
- ユーザーの追加/削除
レポート
- レポートの一覧表示
- レポートのメタデータ取得
- レポートの複製
- 各種形式(PDF、PPTX、PNG)へのエクスポート
- 別のデータセットへの再バインド
データセット
- データセットの一覧表示
- DAX クエリの実行
- 更新の開始
- 更新スケジュールの管理
- 更新履歴の取得
ダッシュボード
- ダッシュボードの一覧表示
- ダッシュボードのタイル取得
プッシュデータセット
- プッシュデータセットの作成
- テーブルへの行の追加
- テーブルデータの消去
🔧 トラブルシューティング
よくある問題
- 認証に失敗する:Azure アプリの登録に適切な Power BI 権限が設定されていることを確認してください
- ワークスペースが見つからない:アカウントが Power BI ワークスペースにアクセスできることを確認してください
- DAX クエリが失敗する:データセットの権限とクエリの構文を確認してください
- エクスポートがタイムアウトする:大きなレポートは時間がかかる場合があります。サーバーは非同期ポーリングを処理します
デバッグモード
詳細ログを有効にします:
DEBUG=powerbi:* node dist/index.js
📄 ライセンス
このプロジェクトは、Commons Clause 付きの Modified MIT License に基づくソースコード公開プロジェクトです。詳細は LICENSE ファイルを参照してください。
非商用利用:個人利用、教育利用、社内利用は無料です。
商用利用:別途、商用ライセンスが必要です。商用ライセンスについては [[email protected]] にお問い合わせください。
商用利用に制限があるため、OSI 承認の「オープンソース」ではありませんが、非商用目的であればコミュニティで全面的に利用できます。
🤝 貢献
皆さまからの貢献を歓迎します。以下の点にご注意ください。
- 貢献いただいた場合、その貢献は同じライセンスの下でライセンスされることに同意したものとします。
- 大規模な変更を行う場合は、まず issue を作成してご相談ください。
- すべてのテストが成功することを確認し、新機能にはテストを追加してください。
💬 サポート
- 課題:GitHub Issues
- 商用サポート:[[email protected]]
- ドキュメント:Wiki
🙏 謝辞
- Model Context Protocol 仕様に基づいて構築されています。
- Microsoft Power BI REST API を使用しています。
- MCP コミュニティから着想を得ています。
注:これは Microsoft の公式製品ではありません。Power BI は Microsoft Corporation の商標です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。