Power BI Modeling MCP SSE Bridge
This project is a high-performance SSE (Server-Sent Events) Bridge for the Official Microsoft Power BI Modeling MCP Server. It enables seamless, URL-based interaction with Power BI semantic models from any language (Laravel, Python, Go) without the need for local stdio piping.
๐ฅ Key Innovations
- Auto-Auth (Token Injection): Automatically performs an Azure ROPC flow using your Admin credentials to inject an Access Token. Result: Zero browser popups on your server.
- Dynamic Binary Resolution: Automatically detects your OS and CPU architecture to spawn the correct Microsoft MCP binary.
- Laravel Context Injection: Pass Workspace and Dataset IDs via URL query parameters to maintain session-specific contexts.
- Web-Ready: Perfect for building custom AI Chat interfaces for Power BI.
๐ ๏ธ Installation & Quick Start
1. Requirements
- Node.js v18 or higher.
- Power BI Admin account (Master User) or Service Principal.
2. Setup
git clone https://github.com/nusagates/mcp_pbi.git
cd mcp_pbi
npm install
3. Configuration
Create a .env file from the template:
cp .env.example .env
Fill in your MS_PBI_... credentials. Important: For the password-based login to work without a browser, enable "Allow public client flows" in your Azure App Registration -> Authentication settings.
4. Run
npm start
The bridge will be live at http://localhost:3000/sse.
๐ Laravel Integration Example
Using Laravel's Http facade to interact with the bridge:
use Illuminate\Support\Facades\Http;
// 1. Establish connection context (via Browser/SSE Client)
// URL: http://localhost:3000/sse?workspace_id=abc&dataset_id=123
// 2. Execute a Tool through the bridge
$response = Http::post("http://localhost:3000/messages?sessionId=YOUR_SESSION_ID", [
"jsonrpc" => "2.0",
"id" => 1,
"method" => "tools/call",
"params" => [
"name" => "execute_dax_query",
"arguments" => [
"query" => "EVALUATE TOPN(10, 'YourTable')"
]
]
]);
return $response->json();
๐ก๏ธ Power BI Permissions Checklist
- Azure Portal: App Registration exists with
Tenant.Read.All. - Power BI Admin: "Allow service principals to use Power BI APIs" is ON.
- Workspace: App or User is added as a Member/Contributor.
๐ค Credits
This bridge uses the Microsoft Power BI Modeling MCP Server as its core engine. Special thanks to the Microsoft team for the protocol implementation.
๐ License
MIT License. Feel free to use and contribute!