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
📋 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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Project portfolio management for PMOs. Alternative to Microsoft Project Online. OAuth + PAT.
*Updated June 17th 2025** Manage your Microsoft 365 services effortlessly. Create and manage distr…
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mavline/powerbi_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server