Power BI Report MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_TOOLS | No | Tool loading mode: 'all' (default) or 'minimal' to load only 12 core tools at startup | all |
| PBIR_REPORT_PATH | No | Path to a .Report folder to auto-bind at startup (instead of calling pbir_set_report) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pbir_set_reportA | Connect to a different Power BI report (.Report folder or parent .pbip project folder). Use this to switch reports mid-session without restarting the server. |
| pbir_get_reportA | Show the currently connected report path. Includes |
| pbir_list_pagesA | List pages (paginated). Slim default returns id/displayName/width/height/visualCount/isActive/hidden; slim:false adds displayOption. includeVisuals:true (or pageId) embeds per-visual summaries. Top-level |
| pbir_create_pageB | Create a new page in the report. Supports standard, tooltip, and drillthrough page types. |
| pbir_rename_pageC | Rename an existing page |
| pbir_delete_pageA | Delete a page and all its visuals |
| pbir_reorder_pagesC | Set the page order |
| pbir_set_active_pageA | Set which page is active (shown on open) |
| pbir_set_page_visibilityA | Show or hide a page in the navigation pane. Hidden pages still work for drillthrough. |
| pbir_get_report_settingsA | Get the report-level settings and theme configuration |
| pbir_update_report_settingsB | Merge report-level settings. Keys: useStylableVisualContainerHeader, useEnhancedTooltips, exportDataMode (0|1), persistentFilters, keyboardNavigationEnabled, defaultDrillFilterOtherVisuals, allowChangeFilterTypes, useDefaultAggregateDisplayName. |
| pbir_update_page_sizeC | Update the page dimensions |
| pbir_auto_layoutC | Auto-arrange all visuals on a page in a grid. |
| pbir_duplicate_pageA | Duplicate an entire page with all its visuals to a new page |
| pbir_reload_reportA | Reload the report in Power BI Desktop by closing and reopening the .pbip file. SAFETY: closes PBIDesktop.exe, so any unsaved work in Desktop (including modeling-MCP measures/relationships not yet flushed by Desktop autosave) is LOST. Requires confirm:true to proceed — otherwise returns a save-first warning for the agent to relay to the user. |
| pbir_set_filter_paneB | Show or hide the filter pane. |
| pbir_manage_extension_measuresA | Manage extension measures (report-level DAX in reportExtensions.json). Empty file crashes PBI Desktop — tool auto-deletes when empty. |
| pbir_set_page_backgroundB | Set the page canvas background and/or wallpaper. Hex color (#0D1117). Transparency 0-100. |
| pbir_set_visual_interactionA | Set cross-filter interaction (Filter/Highlight/NoFilter) from source visual to target visual. |
| pbir_get_visual_typesA | List available visual types. Default returns slim type list (~150 tokens). Pass verbose:true for per-type data-role bucket metadata (~1,200 tokens). |
| pbir_list_visualsA | List visuals on a page (paginated). Default slim returns id/type/x/y/w/h/title. slim:false includes filterCount. Use limit/offset to page through large pages. Use |
| pbir_get_visualA | Get visual details. Default returns id/type/position/title/bindings summary. verbose:true returns full PBIR JSON. |
| pbir_add_visualA | Add visuals to a page via |
| pbir_delete_visualA | Delete a visual from a page |
| pbir_move_visualB | Move and/or resize a visual on a page |
| pbir_duplicate_visualB | Duplicate an existing visual, optionally to a different page or position |
| pbir_change_visual_typeA | Change the visual type of an existing visual (e.g. barChart to columnChart) while keeping data bindings |
| pbir_set_visual_titleB | Set or update the title of a visual. Can set text, visibility, font, size, alignment. |
| pbir_format_visualA | Format visual properties. Auto-routes title/background/border/padding/dropShadow/visualHeader to container, others to visual; override with target='visual'|'container'. Call |
| pbir_set_datapoint_colorsA | Set data point colors. Series-based charts use metadata mode. Category-based (no Series) requires categoryEntity+categoryProperty. |
| pbir_set_conditional_formatB | Apply conditional formatting to a visual container background or title font. formatType: rules / gradient / clear. ComparisonKind: 0=Eq,1=GT,2=GTE,3=LT,4=LTE,5=NEq. |
| pbir_apply_themeB | Apply a named theme preset to all visuals on a page. Themes: dark, light, corporate, blue-purple. |
| pbir_set_visual_sortA | Set the sort order of a visual. Overrides the auto-sort. Use Table[Column] for field refs. |
| pbir_update_visual_bindingsA | Update the data bindings of an existing visual. Replaces the query state entirely. Supports Table[Column] shorthand: use { "field": "Sales[Net Price]", "type": "measure" } as an alternative to separate entity/property fields. |
| pbir_set_report_themeC | Apply a custom JSON theme. Hex colors. dataColors 6-12 values. visualStyles keyed by visualType or '*'. |
| pbir_get_report_themeA | Get the currently applied theme. Returns base theme name + custom theme JSON if any. |
| pbir_remove_report_themeA | Remove the custom theme from the report, reverting to the default base theme. The theme file is kept in StaticResources but unlinked from report.json. |
| pbir_diff_report_themeA | Compare a proposed theme JSON against the currently applied theme and return what would be added, removed, or changed. Useful for previewing theme changes before applying. |
| pbir_list_report_themesA | List all theme files stored in the report's StaticResources/RegisteredResources/ folder. |
| pbir_audit_theme_complianceA | Audit visuals on a page for theme overrides. Returns summary header + topN findings (default 20). topN:0 = all. |
| pbir_list_filtersA | List filters on a page or visual. Slim mode (default) returns Table[Column] strings. |
| pbir_add_page_filterA | Add a filter to a page or visual. Omit visualId for page-level. topN requires visualId. Types: categorical / topN / relativeDate / advanced (Equals, GreaterThan, Contains, IsBlank, etc; supports And/Or compounds). |
| pbir_remove_filterA | Remove a specific filter by name from a page or visual. |
| pbir_clear_filtersA | Remove ALL filters from a page or a specific visual. |
| pbir_bulk_delete_visualsB | Delete multiple visuals from a page. Set confirmBulk:true when >5. |
| pbir_bulk_update_formatA | Apply the same formatting to multiple visuals. target='container' (title/background/border) or 'visual' (axes/legend/labels). Set confirmBulk:true when >5. |
| pbir_bulk_bindA | Rebind multiple visuals in one call. Replaces existing bindings. Set confirmBulk:true when >5. continueOnError:true validates per-entry — bad bindings don't abort the batch. |
| pbir_list_bookmarksA | List all bookmarks defined in the report. |
| pbir_add_bookmarkA | Create a new bookmark. The bookmark is created with an empty exploration state — open Power BI Desktop to capture the current view state into it. |
| pbir_delete_bookmarkA | Delete a bookmark by ID. |
| pbir_rename_bookmarkB | Rename an existing bookmark. |
| pbir_guideA | Domain knowledge for Power BI report development. Topics discovered live from skills/*.md — call with topic:'list' to enumerate. |
| pbir_layout_gridA | Compute a deterministic rows×cols grid; server owns margin/gap/remainder math. Use this INSTEAD of N pbir_add_visual calls when building a page from scratch. planOnly:true (default) returns the plan; planOnly:false validates bindings+layout then writes in one call. See guide('wireframes') for grid-shape selection. |
| pbir_validate_wireframeA | Validate a page's (or the whole report's) layout against the wireframe rules — margins, gaps, overlap, off-canvas, banner geometry. Returns errors + warnings per visual plus stats (visual count, coverage, bottom edge). Read-only. Pair with pbir_audit_theme_compliance for full project verification. |
| pbir_lookup_theme_propertyA | Query the bundled Power BI theme schema for valid visualStyles property names. No args = list visual types; +visualType = list categories; +category = list properties with types/enums. |
| pbir_model_usageA | Cross-reference the semantic model with the report — shows where every measure and column is used, DAX dependencies, unused fields, and per-page coverage. Also generates an HTML dashboard for visual inspection. Requires a sibling |
| pbir_load_toolsA | List on-demand tools (no args) or activate by name (pass |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| pbir-instructions | |
| pbir-skill-calculations | |
| pbir-skill-elicitation | |
| pbir-skill-errors | |
| pbir-skill-filters | |
| pbir-skill-formatting | |
| pbir-skill-pages | |
| pbir-skill-post-edit-checklist | |
| pbir-skill-report-design | |
| pbir-skill-report | |
| pbir-skill-shapes | |
| pbir-skill-slicers | |
| pbir-skill-svg-visuals | |
| pbir-skill-themes-per-visual | |
| pbir-skill-themes | |
| pbir-skill-token-usage | |
| pbir-skill-visuals | |
| pbir-skill-wireframes |
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/jonathan-pap/powerbi-report-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server