Power BI Modeling MCP SSE Bridge
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 install3. Configuration
Create a .env file from the template:
cp .env.example .envFill 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 startThe 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!
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/nusagates/mcp_pbi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server