powerbi-dashboard-build

powerbi-dashboard-build is a skill for Claude Code from HamadYMarafi/powerbi-agent-mcp. It costs 118 tokens per session (1,529 once invoked), scanned A, original, MIT.

A skill for building Power BI or Microsoft Fabric report pages as PBIR files and deploying them to the user's own tenant through an MCP server. PBIR is the file format used to describe parts of a Power BI report.

In plain words
What is it for?
Use it to create, rebuild, extend, clone, repair, and deploy report pages when the required Power BI connection and workspace details are available.
Why use it?
It provides a defined process for checking the connection, reading the data model, meeting specified visual targets, and verifying the deployed page with screenshots.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the powerbi-agent plugin — 3 skills shipped together

Good fit Use it to create, rebuild, extend, clone, repair, and deploy report pages when the required Power BI connection and workspace details are available.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/hamadymarafi/powerbi-agent-mcp/powerbi-dashboard-build
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add HamadYMarafi/powerbi-agent-mcp --skill powerbi-dashboard-build
Clone the repo
git clone --depth 1 https://github.com/HamadYMarafi/powerbi-agent-mcp

Made for: Claude Code.

Or install powerbi-agent, the plugin that ships this one along with the rest of its 3 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for powerbi-dashboard-build

README.md
[![agentmods](https://agentmods.dev/badge/skills/hamadymarafi/powerbi-agent-mcp/powerbi-dashboard-build/github.svg)](https://agentmods.dev/skills/hamadymarafi/powerbi-agent-mcp/powerbi-dashboard-build)
Your own site
<a href="https://agentmods.dev/skills/hamadymarafi/powerbi-agent-mcp/powerbi-dashboard-build"><img src="https://agentmods.dev/badge/skills/hamadymarafi/powerbi-agent-mcp/powerbi-dashboard-build/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for powerbi-dashboard-build

Your own site · 80×15
<a href="https://agentmods.dev/skills/hamadymarafi/powerbi-agent-mcp/powerbi-dashboard-build"><img src="https://agentmods.dev/badge/skills/hamadymarafi/powerbi-agent-mcp/powerbi-dashboard-build.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 118 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,529 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00118 $0.01529
Opus 5 $0.00059 $0.00764
Sonnet 5 $0.00024 $0.00306
Haiku 4.5 $0.00012 $0.00153

Measured 12d ago against content hash a33e90cf3304, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

powerbi-dashboard-build scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/powerbi-dashboard-build/SKILL.md · 98 lines

How it starts

The opening of the file, as written. The whole thing — 98 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Power BI dashboard build

Build an executive-grade report page as PBIR files and deploy it through the powerbi-agent MCP server. Nothing is "done" until every page has been captured as a screenshot and read against a written Done-criteria table — the see-it doctrine, docs/reference/PLAYBOOK.md 1.3.

Procedure

  1. Call guardrails() (or read the guardrails://rules resource) and hold to it all session: never touch an item you did not create, never trigger a refresh, the model is read-only, the theme is locked once approved, one render pass per deploy, one batched DAX query — not many.
  2. Call connection_status(). Do not proceed on a failed or ambiguous connection; report it back instead of guessing which tenant you are on.
  3. Fill docs/reference/SPEC_TEMPLATE.md before writing any JSON: audience, the one question the page must answer, a per-page visual list with positions, and Done criteria — the expected number for every tile, per page. An agent that cannot hit a Done-criteria number reports it; it does not improvise.
  4. get_model_schema(workspace, model) to see every table, column, measure and calculation item, then one batched run_dax(query, ...) to build the tie-out table: latest traded day, week-to-date, last year same weekday, budget, per channel. One query, not fifteen — docs/reference/PLAYBOOK_PART3.md Step 2.
  5. Start from report-template/ (copy to "ORG-<name>.Report") or call get_report_definition(report, out_dir, workspace) on an existing report into a clone folder. Never edit the original item — that is what the ORG- prefix and the "never touch an item you did not create" guardrail exist to stop.
  6. Split by page: one builder per definition/pages/<page id>/ folder. The main thread alone owns report.json, pages.json, reportExtensions.json, the theme and the deploy — this is what stops two builders writing the same file.
  7. Set date scope per visual with set_date_filters(visual_json, mode, weeks)latest-day for latest-day visuals on model measures, window-weeks for trend charts, this-week for week-to-date matrices, none for cards already bound to self-pinning report measures. Never hand-write a date filter: a plain 'Date'[Date] window under a time-intelligence calculation group returns the whole last-year week instead of one day (see Part 4, trap T1/T3).
  8. Report-only measures go in reportExtensions.json, prefixed RM , never in the model — the model is read-only. Follow docs/reference/measures/README.md: no RM measure references another; its dataType is "Text", never "String"; test each measure alone before shipping it.
  9. Call validate_report(folder, baseline) after every batch. Do not continue past a nonzero error count — fix and re-validate. baseline is report-template (or the original's folder, when you cloned one); it also checks theme byte-identity, overlaps, canvas bounds, date pins present and banned filter kinds.
  10. deploy_report(folder, bind=True) the first time (writes the model binding from config); plain deploy_report(folder) after that. It refuses names without the ORG- prefix and models not in the allowed list — that refusal is correct; do not route around it.
  11. capture_pages(target, out_dir, headless=True, settle_seconds=60), then LOOK at every PNG and read every .txt against the Done criteria — this is the hand-off to the powerbi-dashboard-verify skill. A clean validator run is not a finished page.
  12. At most two fix rounds. After that, report which Done-criteria numbers are still not met and why, instead of a third silent attempt.

Read the full file on GitHub · 98 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 98 lines · 118 tokens per session scan A a33e90cf3304

Subscribe to this mod's changes

powerbi-dashboard-build is a skill published in the GitHub repository HamadYMarafi/powerbi-agent-mcp (1 stars, last pushed 14d ago), licensed MIT. It adds 118 tokens to every session and 1,529 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

dashboard-design

Use this skill first when the user wants to design or plan a dashboard, especially Vizro dashboards. Enforces a 3-step workflow (requirements, layout, visualization) before implementation. Activate when the user asks to create, design, or plan a dashboard. For implementation, use the dashboard-build skill after…

mckinsey/vizro · 71 tokens

wiring-vizro-actions

Use this skill when adding cross-filter, cross-highlight, drill-through, or data export interactions to a Vizro dashboard — both for choosing the right interaction pattern during design and for implementing actions in code. Activate when the user wants clicks on a chart or table to filter or highlight other charts…

mckinsey/vizro · 86 tokens

writing-vizro-yaml

Use this skill when writing or debugging Vizro YAML dashboard configurations — component syntax, datamanager registration, custom function wiring, filter/parameter setup, or AG Grid tables. Activate when the user is building a Vizro app, encountering YAML or runtime errors, or asking about Vizro component patterns.

mckinsey/vizro · 66 tokens

selecting-vizro-charts

Use this skill when choosing chart types, applying Plotly Express conventions, configuring colors, building KPI cards, or adding tables (AG Grid) to Vizro dashboards. Activate when the user asks which chart fits their data, needs custom chart functions, wants to set colors or palettes, is creating KPI metric cards, or…

mckinsey/vizro · 78 tokens

designing-vizro-layouts

Use this skill when designing or building Vizro dashboard layouts — grid configuration, component sizing, filter/parameter placement, selector types, or container patterns. Activate when the user is creating wireframes, defining page structure, placing controls, or sizing charts.

mckinsey/vizro · 58 tokens

dashboard-build

Use this skill to build, implement, and test Vizro dashboards (Phase 2). Activate when the user wants to create a working app, says "just build it", or has data ready for implementation. Requires spec files from the dashboard-design skill (Phase 1), or user confirmation to skip design.

mckinsey/vizro · 65 tokens