PowerBI MCP Server
PowerBI MCP Server
Microsoft Power BI を Azure AD API 経由で統合するためのフル機能の Model Context Protocol (MCP) サーバー。
🎯 機能
📖 READ 操作 (7 ツール):
get_workspaces- 利用可能なすべてのワークスペースの一覧の取得get_datasets- データセットの一覧の取得 (ワークスペースによるフィルタリング対応)get_reports- レポートの一覧の取得 (ワークスペースによるフィルタリング対応)get_dataset_tables- データセット内のテーブル構造の取得query_dataset- データセットへの DAX クエリの実行refresh_dataset- データセットの更新の開始get_refresh_history- データセットの更新履歴の取得
🏗️ WORKSPACE 管理 (3 ツール):
create_workspace- 新しいワークスペースの作成delete_workspace- ワークスペースの削除add_workspace_user- アクセス権を持つユーザーの追加
📊 DATASET 管理 (3 ツール):
create_dataset- テーブルとスキーマを持つデータセットの作成delete_dataset- データセットの削除update_dataset- データセット構成の更新
🗃️ TABLE 管理 (3 ツール):
create_table- データセット内のテーブルの作成delete_table- テーブルの削除update_table- テーブル構造の変更
📋 COLUMN 管理 (3 ツール):
add_column- データ型を持つ列の追加delete_column- 列の削除update_column- 列プロパティの変更
🧮 MEASURE 管理 (3 ツール):
create_measure- 計算メジャー (DAX) の作成delete_measure- メジャーの削除update_measure- DAX 式の更新
📈 REPORT 管理 (3 ツール):
create_report- 新しいレポートの作成delete_report- レポートの削除clone_report- レポートの複製
📥 DATA インポート (2 ツール):
add_table_rows- テーブルへのデータ追加clear_table_rows- テーブルデータのクリア
🌐 GATEWAY 管理 (2 ツール):
get_gateways- ゲートウェイの一覧の取得get_gateway_datasources- ゲートウェイのデータソースの取得
合計: PowerBI を完全に管理するための 28 のフル機能 MCP ツール!
サポートされている機能:
✅ PowerBI の完全管理: ワークスペースの作成からビジュアルの追加まで
✅ Azure AD による認証 (サービス プリンシパル)
✅ トークンの自動更新
✅ 包括的なエラーハンドリング とロギング
✅ 主要なすべてのエンティティに対する CRUD 操作
✅ DAX クエリの実行 と計算メジャー
✅ データのインポート とテーブル管理
✅ 外部データソースのためのゲートウェイ統合
✅ ワークスペースと権限の管理
Related MCP server: PowerBI MCP Server
📋 要件
Node.js 18+
TypeScript
Azure AD に登録されたアプリケーション
Power BI API の権限
🚀 インストール
1. クローンと依存関係のインストール
git clone <repository-url>
cd powerbi_mcp_server
npm install2. Azure AD アプリケーションの設定
Azure Portal → App registrations に移動します
新しいアプリケーションを作成するか、既存のものを使用します
"API permissions" セクションで以下を追加します:
Power BI Service の権限:
Dataset.Read.AllDataset.ReadWrite.AllReport.Read.AllWorkspace.Read.All
Microsoft Graph (オプション):
User.Read
"Certificates & secrets" セクションで新しいクライアント シークレットを作成します
Application (client) ID、Directory (tenant) ID、クライアント シークレットをコピーします
3. 環境変数の設定
.env.example を .env にコピーして入力します:
cp .env.example .env.env を編集します:
# Azure AD Configuration
AZURE_CLIENT_ID=your_application_client_id
AZURE_CLIENT_SECRET=your_client_secret
AZURE_TENANT_ID=your_tenant_id
# PowerBI API Configuration
POWERBI_API_URL=https://api.powerbi.com/v1.0/myorg
# Logging
LOG_LEVEL=info4. プロジェクトのビルド
npm run build🎮 使用方法
サーバーの起動
npm start
# или для development:
npm run devClaude Desktop との統合
Claude Desktop の設定ファイルに追加します:
{
"mcpServers": {
"powerbi": {
"command": "node",
"args": ["/path/to/powerbi_mcp_server/build/index.js"],
"env": {
"AZURE_CLIENT_ID": "your_client_id",
"AZURE_CLIENT_SECRET": "your_client_secret",
"AZURE_TENANT_ID": "your_tenant_id"
}
}
}
}MCP 互換クライアントでの使用
接続後、次のツールが利用可能です:
ワークスペースの取得
get_workspaces()データセットの取得
get_datasets(workspace_id?: string)DAX クエリの実行
query_dataset(
dataset_id: "your-dataset-id",
dax_query: "EVALUATE VALUES('Table'[Column])",
workspace_id?: "workspace-id"
)テーブル付きの新しいデータセットの作成
create_dataset(
name: "Sales Dataset",
tables: [{
name: "Sales",
columns: [
{ name: "Date", dataType: "Datetime" },
{ name: "Amount", dataType: "Double" },
{ name: "Product", dataType: "String" }
],
measures: [{
name: "Total Sales",
expression: "SUM(Sales[Amount])",
formatString: "Currency"
}]
}],
workspace_id?: "workspace-id"
)テーブルへのデータ追加
add_table_rows(
dataset_id: "dataset-id",
table_name: "Sales",
rows: [
["2024-01-01", 1000, "Product A"],
["2024-01-02", 1500, "Product B"]
],
workspace_id?: "workspace-id"
)📊 使用例
例 1: すべてのワークスペースの取得
// Tool call: get_workspaces
// Response:
{
"success": true,
"data": [
{
"id": "workspace-guid",
"name": "My Workspace",
"isReadOnly": false,
"isOnDedicatedCapacity": true
}
],
"count": 1
}例 2: DAX クエリ
// Tool call: query_dataset
{
"dataset_id": "dataset-guid",
"dax_query": "EVALUATE TOPN(10, 'Sales', 'Sales'[Amount], DESC)",
"workspace_id": "workspace-guid"
}
// Response:
{
"success": true,
"data": {
"tables": [
{
"rows": [
["Product A", 1000],
["Product B", 800]
]
}
]
}
}🔧 開発
プロジェクト構造
src/
├── auth.ts # Azure AD authentication
├── powerbi-client.ts # PowerBI REST API client
├── server.ts # MCP server implementation
├── types.ts # TypeScript interfaces
├── logger.ts # Logging configuration
└── index.ts # Entry point開発コマンド
npm run build # Сборка TypeScript
npm run dev # Development режим
npm start # Production запуск🛡️ セキュリティ
✅ 安全なトークンストレージと自動更新
✅ 認証情報やトークンは決してログに記録されません
✅ すべての入力パラメータの検証
✅ すべての API 呼び出しに HTTPS
✅ すべてのシナリオに対するエラーハンドリング
📝 ロギング
サーバーはロギングに Winston を使用します。ログレベルは LOG_LEVEL 変数で設定します:
error- エラーのみwarn- 警告とエラーinfo- 情報メッセージ (デフォルト)debug- 詳細なデバッグ情報
❗ トラブルシューティング
問題: "Authentication failed"
解決策: Azure AD の資格情報と権限が正しいことを確認してください
問題: "Dataset not found"
解決策: サービス プリンシパルがワークスペース/データセットにアクセスできることを確認してください
問題: "DAX query failed"
解決策: DAX クエリの構文とデータセットへのアクセス権限を確認してください
問題: "MCP connection failed"
解決策: サーバーが正しく起動され、stdio 経由でアクセス可能であることを確認してください
📖 参考リソース
📄 ライセンス
ISC License
🤝 プロジェクトへの貢献
pull request と issue の報告を歓迎します。変更を加える前に:
すべてのテストが通ることを確認してください
プロジェクトのコードスタイルに従ってください
必要に応じてドキュメントを更新してください
Model Context Protocol エコシステムのために作成されました 🚀
This server cannot be deployed
Maintenance
Related MCP Connectors
- BasedashOAuthcom.basedash
Governed BI MCP. Ask questions of live company data and list workspace sources via OAuth.
Manage Microsoft 365 email, calendar, contacts and inbox rules via the Graph API with OAuth 2.0.
Permissioned access to Outlook, OneDrive and Teams via the user's own Microsoft account
- ZopDev MCPOAuthdev.zop
Cloud cost, inventory and governance on AWS/Azure/GCP. Read-only by default, optional scoped writes
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to programmatically manage Power BI workspaces, reports, and dashboards while executing DAX queries and triggering dataset refreshes. It supports secure OAuth2 authentication for operations like report exporting, workspace management, and real-time push dataset updates.14 npm4MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to query PowerBI workspaces, datasets, and execute DAX queries through the PowerBI REST API.717 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceEnables discovery of Power BI workspaces and datasets, retrieval of semantic model definitions (TMDL), and execution of DAX queries through the Power BI and Microsoft Fabric REST APIs, using MSAL/WAM authentication for secure token caching.MIT
- FlicenseAqualityDmaintenanceEnables discovery of Power BI workspaces and semantic models via REST API and Microsoft Modeling MCP, with authentication options including service principal and device login.7-