Power BI Fabric workspace report management tools. Provides tools for reading and writing Power BI reports in Fabric workspaces, including report definitions, metadata, and PBIP file generation.
Server has 12 tools with complete input schemas and descriptions. Naming follows verb_noun convention (list_, get_, create_, update_, delete_, download_, apply_, validate_). Descriptions are detailed (100-300 chars) and explain WHAT, WHEN, and prerequisites. However, output schemas are not documented, LLMs cannot predict response structure for chaining. Parameters lack enums for constrained values (e.g., format, target_type). Error handling is minimal, no recovery guidance or actionable error messages. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Composition is sound: tools are single-responsibility and chainable via IDs. Security: TOKEN is injected server-side (good), but no rate limiting, audit logging, or permission gates visible.
Apply a theme.json to a Power BI report (local or published). This tool can: 1. Apply a local theme.json file to a local PBIP report 2. Apply a local theme.json file to a published Fabric report 3. Copy a theme from one published report to another 4. Copy a theme from a published report to a local PBIP The theme will be properly integrated into the report structure, updating both: - The theme file in StaticResources/SharedResources/BaseThemes/ - The report.json references in themeCollection and resourcePackages
Create a new blank PBIP report structure locally. Generates a complete, valid PBIP folder structure with minimal required files that can be opened in Power BI Desktop. Useful for creating new reports from scratch or as a template. The created structure includes report.json, pages.json, and all required metadata files. Returns paths to the created PBIP folder and files.
Create new Power BI report in Fabric workspace. Three creation methods: 1. Upload from local: Provide local_pbip_path to upload a PBIP folder 2. Copy existing: Provide source_workspace_id and source_report_id to duplicate 3. Create with definition: Provide definition object with report structure 4. Create blank: Provide only display_name for empty report Returns the new report's ID and metadata for further operations.
Delete Power BI report from Fabric workspace. Permanently removes the report from the workspace. Requires confirm=true as a safety measure to prevent accidental deletion. This action cannot be undone - the report will be permanently deleted. Returns success status confirming deletion.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nested objects) for downstream tool chaining. E.g., list_reports returns metadata but structure is undocumented.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools like delete_report and update_report_definition are marked DESTRUCTIVE/WRITE in metadata but lack MCP annotations to signal risk to clients.
Constrained parameters lack enums. 'format' (PBIR vs others), 'target_type' (local vs published), 'strict_mode' (boolean) should use enum/boolean types in schema, not free-form strings. Invites hallucinated values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Extract and download theme.json from a Power BI report. Extracts the active theme (custom or base) from a report and saves it as a standalone theme.json file. The extracted theme can be applied to other reports using apply_theme_json. Provide either local_pbip_path OR (workspace_id + report_id) OR definition. Returns the path to the extracted theme.json file.
Create local PBIP folder structure from Fabric report. Downloads a thin report (connected to service dataset) and creates a complete PBIP folder structure that can be opened in Power BI Desktop for editing. Provide either: - workspace_id + report_id: Fetch from Fabric API - definition: Use pre-fetched definition object Creates .pbip metadata file and .Report folder with all pages, visuals, and configuration. Use this to enable local editing of Fabric reports in Power BI Desktop.
Get Power BI report definition from Fabric workspace. Retrieves the complete report structure including pages, visuals, bookmarks, and configuration. Returns base64-encoded parts that can be decoded to access JSON definitions. Use pagination for large reports, metadata_only=true to see file structure without content, or file_filter to get specific files (e.g., 'pages.json', 'report.json'). Requires workspace_id and report_id (GUIDs).
Get the underlying dataset/model ID from a Power BI report. Extracts the dataset ID that a report is connected to, whether the report is local (PBIP) or published in Fabric. Useful for understanding report dependencies and data connections. Provide either local_pbip_path OR (workspace_id + report_id) OR definition. Returns the model/dataset ID and connection information.
List all reports in a Power BI Fabric workspace. Retrieves report metadata including IDs, names, and descriptions from the specified workspace. Use this to discover available reports before performing operations like download or update. Requires workspace_id (GUID format) from your Fabric workspace URL.
Update Power BI report metadata in Fabric workspace. Only updates the report's display name and description metadata. Does NOT modify report content, pages, or visuals. For content changes, use update_report_definition instead. Returns success status and updated metadata.
Update complete Power BI report definition/content in Fabric workspace. Replaces the entire report content including pages, visuals, bookmarks, and configuration. Provide either: - definition: API definition object with base64-encoded parts - local_pbip_path: Path to local PBIP folder to upload Use this after modifying a downloaded report locally or to push changes from Power BI Desktop.
Validate Power BI report definition against official schemas. Checks a report definition (local PBIP or published) against Microsoft's official JSON schemas for Power BI reports. Validates structure, required fields, and data types. Provide either local_pbip_path OR (workspace_id + report_id) OR definition. Returns validation results with any schema violations or warnings.
Error handling lacks recovery guidance. No actionable error messages (e.g., 'Token expired. Re-authenticate via az login'). Errors return {success: false, error: string} but do not guide LLM on retry vs user action.
Mutually exclusive parameters not documented. E.g., create_report accepts definition OR source_workspace_id+source_report_id OR local_pbip_path OR none (blank). Descriptions do not state these are mutually exclusive, risking ambiguous calls.