PowerBI MCP Server
PowerBI MCP Server
Voll funktionsfähiger Model Context Protocol (MCP) Server für die Integration mit Microsoft Power BI über die Azure AD API.
🎯 Funktionen
📖 READ-Operationen (7 Tools):
get_workspaces– Abrufen der Liste aller verfügbaren Workspacesget_datasets– Abrufen der Liste der Datasets (mit Filtermöglichkeit nach Workspace)get_reports– Abrufen der Liste der Berichte (mit Filtermöglichkeit nach Workspace)get_dataset_tables– Abrufen der Tabellenstruktur des Datasetsquery_dataset– Ausführen von DAX-Abfragen auf das Datasetrefresh_dataset– Starten der Dataset-Aktualisierungget_refresh_history– Abrufen des Aktualisierungsverlaufs des Datasets
🏗️ WORKSPACE-Verwaltung (3 Tools):
create_workspace– Erstellen neuer Workspacesdelete_workspace– Löschen von Workspacesadd_workspace_user– Hinzufügen von Benutzern mit Zugriffsrechten
📊 DATASET-Verwaltung (3 Tools):
create_dataset– Erstellen von Datasets mit Tabellen und Schemadelete_dataset– Löschen von Datasetsupdate_dataset– Aktualisieren der Dataset-Konfiguration
🗃️ TABLE-Verwaltung (3 Tools):
create_table– Erstellen von Tabellen in Datasetsdelete_table– Löschen von Tabellenupdate_table– Ändern der Tabellenstruktur
📋 COLUMN-Verwaltung (3 Tools):
add_column– Hinzufügen von Spalten mit Datentypendelete_column– Löschen von Spaltenupdate_column– Ändern von Spalteneigenschaften
🧮 MEASURE-Verwaltung (3 Tools):
create_measure– Erstellen berechneter Measures (DAX)delete_measure– Löschen von Measuresupdate_measure– Aktualisieren von DAX-Ausdrücken
📈 REPORT-Verwaltung (3 Tools):
create_report– Erstellen neuer Berichtedelete_report– Löschen von Berichtenclone_report– Klonen von Berichten
📥 DATA-Import (2 Tools):
add_table_rows– Hinzufügen von Daten zu Tabellenclear_table_rows– Leeren von Tabellendaten
🌐 GATEWAY-Verwaltung (2 Tools):
get_gateways– Abrufen der Liste der Gatewaysget_gateway_datasources– Abrufen der Datenquellen des Gateways
GESAMT: 28 voll funktionsfähige MCP-Tools für die vollständige PowerBI-Verwaltung!
Unterstützte Funktionen:
✅ Vollständige PowerBI-Verwaltung: von der Workspace-Erstellung bis zum Hinzufügen von Visualisierungen
✅ Authentifizierung über Azure AD (Service Principal)
✅ Automatische Token-Aktualisierung
✅ Comprehensive error handling und Protokollierung
✅ CRUD-Operationen für alle wichtigen Entitäten
✅ DAX query execution und berechnete Measures
✅ Datenimport und Tabellenverwaltung
✅ Gateway integration für externe Datenquellen
✅ Workspace- und Berechtigungsverwaltung
Related MCP server: PowerBI MCP Server
📋 Anforderungen
Node.js 18+
TypeScript
Registrierte Anwendung in Azure AD
Berechtigungen für die Power BI API
🚀 Installation
1. Klonen und Installieren von Abhängigkeiten
git clone <repository-url>
cd powerbi_mcp_server
npm install2. Konfiguration der Azure AD-Anwendung
Gehen Sie zum Azure-Portal → App-Registrierungen
Erstellen Sie eine neue Anwendung oder verwenden Sie eine vorhandene
Fügen Sie im Abschnitt „API-Berechtigungen“ hinzu:
Power BI Service-Berechtigungen:
Dataset.Read.AllDataset.ReadWrite.AllReport.Read.AllWorkspace.Read.All
Microsoft Graph (optional):
User.Read
Erstellen Sie im Abschnitt „Zertifikate & Geheimnisse“ ein neues Client-Geheimnis
Kopieren Sie die Anwendungs- (Client-) ID, die Verzeichnis- (Mandanten-) ID und das Client-Geheimnis
3. Konfiguration der Umgebungsvariablen
Kopieren Sie .env.example in .env und füllen Sie es aus:
cp .env.example .envBearbeiten Sie .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. Projekt erstellen
npm run build🎮 Verwendung
Server starten
npm start
# или для development:
npm run devIntegration mit Claude Desktop
Fügen Sie zur Konfigurationsdatei von Claude Desktop hinzu:
{
"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"
}
}
}
}Verwendung in MCP-kompatiblen Clients
Nach der Verbindung sind die folgenden Tools verfügbar:
Workspaces abrufen
get_workspaces()Datasets abrufen
get_datasets(workspace_id?: string)DAX-Abfrage ausführen
query_dataset(
dataset_id: "your-dataset-id",
dax_query: "EVALUATE VALUES('Table'[Column])",
workspace_id?: "workspace-id"
)Neues Dataset mit Tabelle erstellen
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"
)Daten zu einer Tabelle hinzufügen
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"
)📊 Anwendungsbeispiele
Beispiel 1: Alle Workspaces abrufen
// Tool call: get_workspaces
// Response:
{
"success": true,
"data": [
{
"id": "workspace-guid",
"name": "My Workspace",
"isReadOnly": false,
"isOnDedicatedCapacity": true
}
],
"count": 1
}Beispiel 2: DAX-Abfrage
// 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]
]
}
]
}
}🔧 Entwicklung
Projektstruktur
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 pointEntwicklungsbefehle
npm run build # Сборка TypeScript
npm run dev # Development режим
npm start # Production запуск🛡️ Sicherheit
✅ Secure token storage und automatische Aktualisierung
✅ Credentials oder Token werden niemals protokolliert
✅ Validierung aller eingehenden Parameter
✅ HTTPS für alle API-Aufrufe
✅ Fehlerbehandlung für alle Szenarien
📝 Protokollierung
Der Server verwendet Winston für die Protokollierung. Die Protokollierungsebene wird über die Variable LOG_LEVEL konfiguriert:
error– nur Fehlerwarn– Warnungen und Fehlerinfo– Informationsmeldungen (Standard)debug– detaillierte Debug-Informationen
❗ Troubleshooting
Problem: „Authentication failed“
Lösung: Überprüfen Sie die Azure AD-Anmeldeinformationen und -Berechtigungen
Problem: „Dataset not found“
Lösung: Stellen Sie sicher, dass der Dienstprinzipal Zugriff auf Workspace/Dataset hat
Problem: „DAX query failed“
Lösung: Überprüfen Sie die DAX-Abfragesyntax und die Zugriffsrechte auf das Dataset
Problem: „MCP connection failed“
Lösung: Stellen Sie sicher, dass der Server ordnungsgemäß gestartet und über stdio erreichbar ist
📖 Zusätzliche Ressourcen
📄 Lizenz
ISC License
🤝 Beitrag zum Projekt
Pull Requests und Issue-Meldungen sind willkommen. Bevor Sie Änderungen vornehmen:
Stellen Sie sicher, dass alle Tests bestanden werden
Befolgen Sie den Code-Stil des Projekts
Aktualisieren Sie die Dokumentation bei Bedarf
Erstellt für das Model Context Protocol-Ökosystem 🚀
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-