powerbi-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@powerbi-mcp-serverList all Power BI workspaces I have access to."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
powerbi-mcp
An MCP server that connects Claude (and any MCP-compatible client) to Microsoft Power BI via the Power BI REST API using a Service Principal.
Tools exposed
Tool | Description |
| List all workspaces the SP has access to |
| List datasets in a workspace (or all) |
| Run a DAX query against a dataset and get results |
| Trigger an on-demand dataset refresh |
| List reports in a workspace (or all) |
| Get all pages in a report |
| Get all visuals on a report page |
Related MCP server: Power BI MCP for Claude
Prerequisites
Azure App Registration with these Power BI API permissions (Application, not Delegated):
Dataset.Read.AllDataset.ReadWrite.All(for refresh)Report.Read.AllWorkspace.Read.All
In Power BI Admin Portal → Tenant settings, enable:
Allow service principals to use Power BI APIs
Add the security group containing your App Registration
Add the service principal as a Member or Admin to the workspaces you want to access.
Setup
# Clone and install
git clone <this-repo>
cd powerbi-mcp-server
pip install -e .
# Copy and fill in credentials
cp .env.example .env
# Edit .env with your tenant ID, client ID, client secretConfigure in Claude Code / Claude Desktop
Add this to your MCP configuration (~/.claude/claude_desktop_config.json for Desktop, or claude mcp add for Claude Code):
{
"mcpServers": {
"powerbi": {
"command": "python",
"args": ["-m", "powerbi_mcp"],
"env": {
"POWERBI_TENANT_ID": "your-tenant-id",
"POWERBI_CLIENT_ID": "your-client-id",
"POWERBI_CLIENT_SECRET": "your-client-secret"
}
}
}
}Or using uv (no install needed):
{
"mcpServers": {
"powerbi": {
"command": "uvx",
"args": ["--from", "/path/to/powerbi-mcp-server", "powerbi-mcp"],
"env": {
"POWERBI_TENANT_ID": "...",
"POWERBI_CLIENT_ID": "...",
"POWERBI_CLIENT_SECRET": "..."
}
}
}
}Claude Code CLI
claude mcp add powerbi \
--command python \
--args "-m powerbi_mcp" \
-e POWERBI_TENANT_ID=your-tenant-id \
-e POWERBI_CLIENT_ID=your-client-id \
-e POWERBI_CLIENT_SECRET=your-client-secretExample prompts
Once connected, you can ask Claude:
"List all Power BI workspaces I have access to."
"Run this DAX query on dataset abc-123: EVALUATE SUMMARIZE(Sales, Sales[Region], "Total", SUM(Sales[Amount]))"
"Refresh the dataset named 'Monthly Sales' in the Finance workspace."
"Show me all the pages and visuals in the Executive Dashboard report."
Development
pip install -e ".[dev]"
python -m powerbi_mcp # runs the MCP server via stdioMaintenance
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/Divyansh-dev12/powerbi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server