powerbi-mcp
powerbi-mcp
Interner Node.js-Dienst für den Power BI MCP-Zugriff. Er ist darauf ausgelegt, neben einer Next.js-App zu laufen, normalerweise unter PM2, und nur von der Next.js-Serverebene aus aufgerufen zu werden.
Dieses Projekt repliziert nicht das Google Ads MCP-Repo. Es folgt derselben Idee eines fokussierten MCP-Backends, ist jedoch auf Power BI/Fabric, direkte JSON-RPC-Aufrufe und die Agenten-/Tool-Iteration zugeschnitten, die sich bereits im PBI-Bot-POC bewährt hat.
Was es tut
Ruft den Fabric Power BI MCP-Endpunkt mit einem Benutzer-Bearer-Token auf.
Listet MCP-Tools auf und führt sie über JSON-RPC aus.
Erkennt Power BI-Arbeitsbereiche und semantische Modelle für bessere Modell-Prompts.
Führt eine OpenAI-kompatible Agenten-Schleife aus, die Power BI MCP-Tools aufrufen kann.
Stellt interne HTTP-Endpunkte für ein Next.js-Backend bereit.
Wird mit einer PM2-Prozesskonfiguration namens
powerbi-mcpausgeliefert.
Endpunkte
GET /healthPOST /internal/mcp/toolsPOST /internal/mcp/callPOST /internal/powerbi/catalogPOST /internal/chatPOST /internal/chat/json
Browser-/Proxy-kompatible Routen sind ebenfalls unter /api/* verfügbar:
GET /api/auth/statusGET /api/auth/loginGET /api/auth/callbackGET /api/auth/logoutPOST /api/mcp/toolsPOST /api/mcp/callPOST /api/powerbi/catalogPOST /api/chatPOST /api/chat/json
Alle internen Routen akzeptieren das Power BI-Zugriffstoken des Benutzers in einer dieser Formen:
Authorization: Bearer <power-bi-access-token>x-powerbi-access-token: <power-bi-access-token>JSON-Body-Feld
accessToken
Wenn INTERNAL_API_KEY konfiguriert ist, senden Sie zusätzlich:
x-internal-api-key: <your-internal-key>Installation
cd powerbi-mcp
npm install
cp .env.example .env
npm run checkFüllen Sie .env mit Ihren LiteLLM/OpenAI-kompatiblen Gateway-Einstellungen aus.
Für die Browser-Route setzen Sie Ihren Azure-Redirect-URI auf den Next.js-Proxy-Callback, zum Beispiel:
http://localhost:3000/api/powerbi-mcp/auth/callbackLokal ausführen
npm run devDie Standard-Dienst-URL ist http://127.0.0.1:3101.
Mit PM2 ausführen
pm2 start ecosystem.config.js
pm2 statusErwarteter Prozessname:
powerbi-mcpNext.js Drop-In-Route
Halten Sie die Next.js-Routendateien außerhalb dieses Backend-Repos. In diesem Workspace befinden sie sich im Schwesterordner:
../powerbi-analyst-next-dropin/appKopieren Sie diese Dateien in das tatsächliche ads-next/app-Verzeichnis:
app/Power_BI_Analyst/page.tsxapp/api/powerbi-mcp/[...path]/route.ts
Navigieren Sie dann zu:
/Power_BI_AnalystDer Next.js-Proxy ruft dieses Backend auf unter:
http://127.0.0.1:3101/api/*Next.js Server-Beispiel
Rufen Sie dies nur von einer Server-Route, einer Server-Aktion oder einem API-Handler aus auf. Geben Sie das Power BI-Zugriffstoken nicht an browserseitigen Code weiter, der über Ihren normalen Authentifizierungsfluss hinausgeht.
const response = await fetch("http://127.0.0.1:3101/internal/chat/json", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-internal-api-key": process.env.POWERBI_MCP_INTERNAL_API_KEY,
"Authorization": `Bearer ${powerBiAccessToken}`
},
body: JSON.stringify({
message: "Show total sales this month vs last month",
history: []
})
});
const data = await response.json();Für Streaming-UI-Antworten rufen Sie /internal/chat oder /api/chat auf; dies gibt Server-Sent Events zurück:
data: {"token":"..."}
data: [DONE]Hinweise
Dieser Dienst unterstützt sowohl die Token-Weiterleitung über
/internal/*als auch den Browser-Sitzungsfluss über/api/auth/*.Binden Sie an
127.0.0.1in der Produktion, es sei denn, Sie platzieren dies absichtlich hinter einer privaten Netzwerkgrenze.Setzen Sie
INTERNAL_API_KEYvor der Bereitstellung, damit nur vertrauenswürdige interne Aufrufer den Dienst nutzen können.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/ketangupta1-ai/powerbi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server