The MCP server connects Claude AI to Power BI Desktop, enabling AI-driven querying and analysis of Power BI models. It lets users explore data, run DAX queries, and retrieve metadata seamlessly within Claude. The integration runs locally on Windows, using Python and .NET for smooth communication.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"powerbi": {
"args": [
"C:\\Path\\To\\Your\\powerbi_mcp_server.py"
],
"command": "C:\\Path\\To\\Your\\venv\\Scripts\\python.exe"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A Model Context Protocol (MCP) server that enables Claude to interact with Power BI Desktop through the XMLA endpoint using Analysis Services.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
MCP Python SDK: WebSocket server transport does not support Host/Origin validation
### Summary In affected versions, the deprecated WebSocket server transport (`mcp.server.websocket.websocket_server`) accepted the WebSocket handshake without applying any `Host` or `Origin` header validation. The `TransportSecuritySettings` mechanism that the SSE and Streamable HTTP transports use for this purpose was not wired into the WebSocket transport, so there was no SDK-level way to restrict which origins could connect. ### Am I affected? Only if a developer's application server exposes
MCP Python SDK: HTTP transports serve session requests without verifying the authenticated principal
### Summary In affected versions, the SSE and Streamable HTTP server transports routed incoming requests to an existing session based only on the session identifier, without verifying that the request was authenticated as the same principal that created the session. Anyone who learned or guessed a session ID could send JSON-RPC messages on that session, regardless of which bearer token the request carried. ### Am I affected? Only if a developer's application server uses an HTTP transport (SSE,
MCP Python SDK: Experimental task handlers allow any client to access and cancel other clients' tasks
### Summary In affected versions, the default request handlers installed by the experimental tasks feature (`server.experimental.enable_tasks()`) did not check which session created a task before acting on it. On a server with more than one connected client, any client could observe, read results from, and cancel tasks belonging to other clients. ### Am I affected? Only if the developer's application server calls `server.experimental.enable_tasks()`. If `grep -r enable_tasks` over their codebas
Model Context Protocol (MCP) Python SDK does not enable DNS rebinding protection by default
### Description The Model Context Protocol (MCP) Python SDK does not enable DNS rebinding protection by default for HTTP-based servers. When an HTTP-based MCP server is run on localhost without authentication using `FastMCP` with streamable HTTP or SSE transport, and has not configured `TransportSecuritySettings`, a malicious website could exploit DNS rebinding to bypass same-origin policy restrictions and send requests to the local MCP server. This could allow an attacker to invoke tools or ac
MCP Python SDK vulnerability in the FastMCP Server causes validation error, leading to DoS
A validation error in the MCP SDK can cause an unhandled exception when processing malformed requests, resulting in service unavailability (500 errors) until manually restarted. Impact may vary depending on the deployment conditions, and presence of infrastructure-level resilience measures. Thank you to Rich Harang for reporting this issue.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in analytics
MCP server that enables AI agents to perform comprehensive web audits using Google Lighthouse with 13+ tools for performance, accessibility, SEO, and security analysis.
MCP server for Dynatrace Managed to access logs, events, and metrics.
An MCP server that provides [describe what your server does]
MCP server for Yandex.Direct API — campaigns, ads, statistics, keywords. Bearer token auth.
MCP Security Weekly
Get CVE alerts and security updates for Power BI Custom MCP Server With Python Claude AI Integration and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A Model Context Protocol (MCP) server that enables Claude to interact with Power BI Desktop through the XMLA endpoint using Analysis Services.
This MCP server allows Claude to:
git clone <your-repo-url>
cd Claude-Power-BI-Integration
python -m venv venv
Windows:
venv\Scripts\activate
Linux/Mac:
source venv/bin/activate
pip install mcp pythonnet
Add the following configuration to your Claude Desktop config file:
Location: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"powerbi": {
"command": "C:\\Path\\To\\Your\\venv\\Scripts\\python.exe",
"args": [
"C:\\Path\\To\\Your\\powerbi_mcp_server.py"
]
}
}
}
Example Configuration:
{
"mcpServers": {
"powerbi": {
"command": "D:\\Job Preparation\\Personnel Work\\Python - Technology\\VS Code Python Code\\Claude-Power BI-Intergration\\venv\\Scripts\\python.exe",
"args": [
"D:\\Job Preparation\\Personnel Work\\Python - Technology\\VS Code Python Code\\Claude-Power BI-Intergration\\powerbi_mcp_server.py"
]
}
}
}
Important: Replace the paths with your actual project paths. Use double backslashes (\\) or forward slashes (/) in JSON.
Python executable path:
where python
# Or if in virtual environment
venv\Scripts\python.exe
Script path:
powerbi_mcp_server.pyEnsure Power BI Desktop is running with a report/model open.
After updating the configuration, restart Claude Desktop to load the MCP server.
In Claude, you can ask:
"Can you connect to my Power BI model?"
Claude will use the MCP server to connect and retrieve model information.
The MCP server provides the following tools to Claude:
| Tool | Description |
|---|---|
get_powerbi_models | Get all Power BI models in the active report |
get_model_tables | List all tables in the model |
get_table_columns | Get columns from a specific table |
execute_dax_query | Execute DAX queries against the model |
get_measures | Retrieve all measures (optionally filtered by table) |
get_relationships | Get all relationships in the model |
get_report_pages | Get report pages (limited - requires COM) |
get_page_visuals | Get visuals from a page (limited - requires COM) |
Once configured, you can ask Claude: