Skip to main content
Glama
Mavline

PowerBI MCP Server

by Mavline

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 Workspaces

  • get_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 Datasets

  • query_dataset – Ausführen von DAX-Abfragen auf das Dataset

  • refresh_dataset – Starten der Dataset-Aktualisierung

  • get_refresh_history – Abrufen des Aktualisierungsverlaufs des Datasets

🏗️ WORKSPACE-Verwaltung (3 Tools):

  • create_workspace – Erstellen neuer Workspaces

  • delete_workspace – Löschen von Workspaces

  • add_workspace_user – Hinzufügen von Benutzern mit Zugriffsrechten

📊 DATASET-Verwaltung (3 Tools):

  • create_dataset – Erstellen von Datasets mit Tabellen und Schema

  • delete_dataset – Löschen von Datasets

  • update_dataset – Aktualisieren der Dataset-Konfiguration

🗃️ TABLE-Verwaltung (3 Tools):

  • create_table – Erstellen von Tabellen in Datasets

  • delete_table – Löschen von Tabellen

  • update_table – Ändern der Tabellenstruktur

📋 COLUMN-Verwaltung (3 Tools):

  • add_column – Hinzufügen von Spalten mit Datentypen

  • delete_column – Löschen von Spalten

  • update_column – Ändern von Spalteneigenschaften

🧮 MEASURE-Verwaltung (3 Tools):

  • create_measure – Erstellen berechneter Measures (DAX)

  • delete_measure – Löschen von Measures

  • update_measure – Aktualisieren von DAX-Ausdrücken

📈 REPORT-Verwaltung (3 Tools):

  • create_report – Erstellen neuer Berichte

  • delete_report – Löschen von Berichten

  • clone_report – Klonen von Berichten

📥 DATA-Import (2 Tools):

  • add_table_rows – Hinzufügen von Daten zu Tabellen

  • clear_table_rows – Leeren von Tabellendaten

🌐 GATEWAY-Verwaltung (2 Tools):

  • get_gateways – Abrufen der Liste der Gateways

  • get_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 install

2. Konfiguration der Azure AD-Anwendung

  1. Gehen Sie zum Azure-Portal → App-Registrierungen

  2. Erstellen Sie eine neue Anwendung oder verwenden Sie eine vorhandene

  3. Fügen Sie im Abschnitt „API-Berechtigungen“ hinzu:

    • Power BI Service-Berechtigungen:

      • Dataset.Read.All

      • Dataset.ReadWrite.All

      • Report.Read.All

      • Workspace.Read.All

    • Microsoft Graph (optional):

      • User.Read

  4. Erstellen Sie im Abschnitt „Zertifikate & Geheimnisse“ ein neues Client-Geheimnis

  5. 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 .env

Bearbeiten 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=info

4. Projekt erstellen

npm run build

🎮 Verwendung

Server starten

npm start
# или для development:
npm run dev

Integration 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 point

Entwicklungsbefehle

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 Fehler

  • warn – Warnungen und Fehler

  • info – 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:

  1. Stellen Sie sicher, dass alle Tests bestanden werden

  2. Befolgen Sie den Code-Stil des Projekts

  3. Aktualisieren Sie die Dokumentation bei Bedarf


Erstellt für das Model Context Protocol-Ökosystem 🚀

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all MCP Connectors

Latest Blog Posts

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