powerbi-health-mcp
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-health-mcpRun a health check on my Power BI tenant and prioritize issues."
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-health-mcp
An AI-powered Power BI dataset health monitor, built with Claude + MCP.
This demo project connects Claude to a simulated Power BI tenant through the Model Context Protocol (MCP) and turns it into a dataset health analyst. Instead of clicking through refresh histories workspace by workspace, you ask:
"Run a health check on my Power BI tenant. What's broken, why, and what should I fix first?"
...and Claude calls the MCP tools, correlates refresh failures with gateway status, and answers with a prioritized action plan.
flowchart LR
A[Claude Desktop] -- MCP (stdio) --> B[powerbi-health-mcp\nFastMCP server]
B --> C[(Mock Power BI tenant\n3 workspaces, 7 datasets,\n2 gateways)]
B -. same tool surface as .-> D[Power BI REST API]Why mock data?
The point of the demo is the AI + MCP workflow, not tenant setup. The
server ships with a realistic mock tenant (refresh histories are generated
relative to now, so the demo always looks live) and requires zero
credentials — clone and run. The tool surface intentionally mirrors the
real Power BI REST API (groups, datasets, refreshes, gateways), so
swapping the mock layer for requests calls with a service principal token
is a contained change.
Related MCP server: PowerBI Analyst MCP
What's in the mock tenant
Dataset | Workspace | Seeded problem |
Sales Master | Sales Analytics | none — healthy |
Regional Pipeline | Sales Analytics | failing 3 days — expired SQL credentials |
P&L Consolidated | Finance Reporting | refresh timeout at 120 min (no incremental refresh) |
AP Aging | Finance Reporting | none — healthy |
Budget vs Actuals FY24 | Finance Reporting | stale 21 days — owner left the company |
Plant Telemetry | Operations | failing — its gateway has been offline 30h |
Logistics KPIs | Operations | intermittent failures — memory pressure on shared capacity |
A good health-check answer should find all five problems, notice that Plant Telemetry's failures are a gateway issue rather than a dataset issue, and flag the orphaned owner on the stale dataset.
MCP tools exposed
Tool | Purpose |
| One-shot overview: counts by health state, problem datasets, offline gateways |
| Workspaces with capacity type |
| Datasets with owner, schedule, health state (optional workspace filter) |
| Per-dataset run history with durations and error messages |
| Gateway status + which datasets depend on each |
| Simulated on-demand refresh — fails again until the root cause is "fixed" |
Health states: HEALTHY, DEGRADED (recent intermittent failures),
FAILING (latest run failed), STALE (no successful refresh in 7+ days).
Setup
Requires Python 3.10+.
git clone https://github.com/<you>/powerbi-health-mcp.git
cd powerbi-health-mcp
pip install -r requirements.txt
# quick smoke test without any MCP client:
python server.py --selftestConnect to Claude Desktop
Add to claude_desktop_config.json
(Settings → Developer → Edit Config), then restart Claude Desktop:
{
"mcpServers": {
"powerbi-health": {
"command": "python",
"args": ["/absolute/path/to/powerbi-health-mcp/server.py"]
}
}
}A ready-to-edit copy is in
claude_desktop_config.example.json.
Demo prompts to try
The health check — "Use the powerbi-health tools to run a full health check on the tenant. Group problems by root cause and give me a prioritized fix list."
Root-cause reasoning — "Plant Telemetry keeps failing. Is the problem the dataset or something upstream?" (Claude should correlate it with the offline gateway.)
The skeptic test — "Trigger a refresh of Regional Pipeline and tell me if that fixed it." (It won't — broken credentials — and Claude should say so instead of declaring victory.)
The report — "Write a Monday-morning status email to the BI team summarizing tenant health, with owners to contact for each issue."
Findings
My honest take on what worked and what didn't lives in FINDINGS.md — filled in after testing this with a real-world use case, as promised in the LinkedIn post that started this.
Roadmap
Real Power BI REST API mode behind the same tool surface (service principal auth)
execute_daxtool via theexecuteQueriesendpointScheduled health snapshots + trend comparison ("what got worse this week?")
License
MIT — see LICENSE.
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
- 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/ramalakshmi0505/powerbi-health-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server