PBIP Builder MCP Server
Click on "Deploy 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., "@PBIP Builder MCP Server Create a new PBIP project for sales analytics."
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.
PBIP Builder MCP Server
PBIP Builder MCP Server is a local TypeScript MCP server that helps AI coding agents create, inspect, validate, and modify Power BI Project (.pbip) folders. It generates PBIR-style report folders, TMDL semantic model files, report pages, and templated visuals from structured inputs instead of asking an agent to free-write report JSON.
What It Builds
Generated projects follow the Power BI Desktop developer mode layout:
SalesDashboard/
├── SalesDashboard.pbip
├── SalesDashboard.Report/
│ ├── .platform
│ ├── definition.pbir
│ └── definition/
│ ├── version.json
│ ├── report.json
│ └── pages/
│ ├── pages.json
│ └── <PageId>/
│ ├── page.json
│ └── visuals/<VisualId>/
│ ├── visual.json
│ └── mobile.json
└── SalesDashboard.SemanticModel/
├── .platform
├── definition.pbism
└── definition/
├── database.tmdl
├── model.tmdl
├── relationships.tmdl
├── roles/
└── tables/<TableName>.tmdlRelated MCP server: pbi-mcp
Install
npm install
npm run buildRun The MCP Server
npm run devThe server uses stdio transport. A VS Code MCP configuration is included in .vscode/mcp.json.
To restrict writes, set PBIP_ALLOWED_WORKSPACES to one or more workspace roots separated by the OS path delimiter. If unset, writes are limited to process.cwd().
Microsoft JSON Schemas
The schema registry looks for Microsoft schemas under schemas/microsoft-json-schemas. Add a local copy of the Microsoft json-schemas repository there:
git clone https://github.com/microsoft/json-schemas schemas/microsoft-json-schemasWhen schemas are unavailable, validation still checks project structure, JSON parsing, page/visual references, and semantic field bindings, and returns schema warnings rather than failing the project.
Tools
Project tools: pbip_create_project, pbip_open_project, pbip_describe_project, pbip_validate_project, pbip_delete_project, pbip_export_summary.
Semantic model tools: model_add_table, model_update_table, model_delete_table, model_add_column, model_add_measure, model_update_measure, model_delete_measure, model_add_relationship, model_delete_relationship, model_add_role, model_generate_from_schema, model_describe, model_validate.
Report/page/visual tools: report_create, report_update_settings, report_set_theme, report_validate, page_add, page_update, page_delete, page_rename, page_set_size, page_list, visual_add, visual_update, visual_delete, visual_set_position, visual_bind_fields, visual_set_format, visual_set_filter, visual_list, visual_describe.
Blueprint and schema tools: blueprint_generate_project, blueprint_apply, blueprint_validate, blueprint_preview, schema_list, schema_get, schema_validate_json, schema_sync, schema_explain_error.
Example
npm run generate:exampleThis creates examples/generated/SalesDashboard from examples/sales-dashboard-blueprint.json, including one semantic model table, one report page, and five visual types: card, clustered column chart, table, slicer, and line chart.
Testing
npm testTests cover project creation, dry runs, path safety, semantic model generation, page generation, visual generation, blueprint generation, and validation.
Limitations
This is the MVP local generator. Fabric publishing, refresh, live data source setup, custom visuals, advanced formatting, page duplication, visual duplication, and automatic Power BI Desktop repair workflows are intentionally left for later phases. Final compatibility should still be confirmed by opening generated .pbip files in Power BI Desktop.
Available Tools
52 toolsblueprint_applyC
Apply a high-level dashboard blueprint to an existing PBIP project.
Inputs: projectPath (required), blueprint (required), dryRun.
blueprint_generate_projectC
Create a PBIP project from a high-level dashboard blueprint.
Inputs: workspacePath (required), blueprint (required), overwrite, dryRun.
blueprint_previewB
Return a dry-run preview of files changed by a blueprint.
Inputs: projectPath (required), blueprint (required).
blueprint_validateC
Validate the high-level dashboard blueprint shape.
Inputs: blueprint (required).
model_add_columnC
Add a column to an existing TMDL table.
Inputs: projectPath (required), tableName (required), column (required), dryRun.
model_add_measureC
Add a measure to an existing TMDL table.
Inputs: projectPath (required), tableName (required), measureName (required), expression (required), +2 more.
model_add_relationshipC
Add a relationship to relationships.tmdl.
Inputs: projectPath (required), relationship (required), dryRun.
model_add_roleC
Add or replace a simple row-level-security role in definition/roles/*.tmdl.
Inputs: projectPath (required), name (required), table (required), filterExpression (required), +1 more.
model_add_tableD
Add a TMDL table file with columns and measures.
Inputs: projectPath (required), tableName (required), columns, dryRun.
model_delete_measureC
Delete a measure from a TMDL table.
Inputs: projectPath (required), tableName (required), measureName (required), dryRun.
model_delete_relationshipC
Delete a relationship by name.
Inputs: projectPath (required), relationshipName (required), dryRun.
model_delete_tableC
Delete a table TMDL file.
Inputs: projectPath (required), tableName (required), dryRun.
model_describeC
Describe semantic model tables, relationships, and roles.
Inputs: projectPath (required).
model_generate_from_schemaC
Generate model tables from a simple schema object.
Inputs: projectPath (required), tables (required), dryRun.
model_update_measureC
Replace or create a measure on an existing TMDL table.
Inputs: projectPath (required), tableName (required), measureName (required), expression (required), +2 more.
model_update_tableC
Replace an existing TMDL table definition.
Inputs: projectPath (required), table (required), dryRun.
model_validateC
Validate the semantic model in the context of the PBIP project.
Inputs: projectPath (required).
page_addC
Add a report page and register it in pages.json.
Inputs: projectPath (required), displayName (required), name, width, +2 more.
page_deleteC
Delete a page folder and unregister it from pages.json.
Inputs: projectPath (required), pageName (required), dryRun.
page_duplicateC
Duplicate a page. Planned for Phase 2.
Inputs: projectPath (required), pageName (required), dryRun.
page_listC
List report pages.
Inputs: projectPath (required).
page_renameC
Rename a page display name.
Inputs: projectPath (required), pageName (required), displayName (required), dryRun.
page_set_sizeC
Set page canvas width and height.
Inputs: projectPath (required), pageName (required), width (required), height (required), +1 more.
page_updateB
Update page display name, size, or filters.
Inputs: projectPath (required), pageName (required), displayName, width, +3 more.
pbip_create_projectC
Create a new PBIP project with PBIR report and TMDL semantic model folders.
Inputs: workspacePath (required), projectName (required), semanticModelMode, reportFormat, +2 more.
pbip_delete_projectB
Delete a PBIP project folder. Requires confirmDelete=true.
Inputs: projectPath (required), confirmDelete (required), dryRun.
pbip_describe_projectC
Describe report pages, visuals, tables, columns, and measures in a PBIP project.
Inputs: projectPath (required).
pbip_export_summaryC
Export a structured JSON summary of a PBIP project.
Inputs: projectPath (required).
pbip_open_projectB
Open an existing PBIP project path and return a structured summary.
Inputs: projectPath (required).
pbip_validate_projectC
Validate PBIP project structure, JSON files, schemas where available, and semantic references.
Inputs: projectPath (required).
report_add_bookmarkD
report_add_bookmark is reserved for structured report filter/bookmark support after the MVP generator is stable.
Inputs: projectPath (required), dryRun.
report_add_filterD
report_add_filter is reserved for structured report filter/bookmark support after the MVP generator is stable.
Inputs: projectPath (required), dryRun.
report_createC
Create or repair the report PBIR skeleton files.
Inputs: projectPath (required), dryRun.
report_remove_filterD
report_remove_filter is reserved for structured report filter/bookmark support after the MVP generator is stable.
Inputs: projectPath (required), dryRun.
report_set_themeC
Set a theme reference in report.json.
Inputs: projectPath (required), theme (required), dryRun.
report_update_settingsC
Merge settings into report.json.
Inputs: projectPath (required), settings (required), dryRun.
report_validateC
Validate the report files in a PBIP project.
Inputs: projectPath (required).
schema_explain_errorB
Explain a schema validation error in agent-readable terms.
Inputs: error.
schema_getC
Return one locally available Microsoft JSON schema.
Inputs: schemaType (required).
schema_listA
List locally available Microsoft JSON schemas.
Inputs: no named parameters.
schema_syncC
Explain how to sync Microsoft JSON schemas into the local schemas folder.
Inputs: no named parameters.
schema_validate_jsonC
Validate JSON against a locally available Microsoft schema type.
Inputs: schemaType (required), json.
visual_addC
Add a visual from a reusable template and bind fields or measures.
Inputs: projectPath (required), pageName (required), visualType (required), position (required), +6 more.
visual_bind_fieldsC
Replace a visual's semantic model bindings.
Inputs: projectPath (required), pageName (required), visualName (required), bindings (required), +1 more.
visual_deleteD
Delete a visual folder.
Inputs: projectPath (required), pageName (required), visualName (required), dryRun.
visual_describeC
Describe one visual.
Inputs: projectPath (required), pageName (required), visualName (required).
visual_duplicateC
Duplicate a visual. Planned for Phase 2.
Inputs: projectPath (required), pageName (required), visualName (required), dryRun.
visual_listC
List visuals on a page.
Inputs: projectPath (required), pageName (required).
visual_set_filterC
Set visual-level filters.
Inputs: projectPath (required), pageName (required), visualName (required), filters (required), +1 more.
visual_set_formatC
Set formatting objects on a visual.
Inputs: projectPath (required), pageName (required), visualName (required), format (required), +1 more.
visual_set_positionC
Set a visual position and size.
Inputs: projectPath (required), pageName (required), visualName (required), position (required), +1 more.
visual_updateC
Merge raw structured updates into a visual.json file.
Inputs: projectPath (required), pageName (required), visualName (required), updates (required), +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 52 tools
Tools are grouped by clear prefixes (blueprint_, model_, page_, etc.) with distinct verb-noun actions. Even similar tools like blueprint_apply and blueprint_generate_project have descriptions clarifying their different targets (existing vs. new projects). No significant overlap.
All tools use a consistent prefix_verb_noun pattern in snake_case. Verbs are standard (add, delete, update, list, etc.) and uniformly applied across groups. No mixing of styles or irregular naming.
52 tools is high for an MCP server. There is some redundancy (e.g., separate page_rename, page_set_size, and page_update) and several reserved, non-functional tools (e.g., report_add_bookmark, visual_duplicate). This bloat reduces appropriateness despite serving a complex domain.
The tool set covers core CRUD for models, pages, visuals, and report settings, plus blueprint and schema utilities. Missing features like bookmark management are noted as reserved, and there is no deployment or export tool, but the primary editing lifecycle is well-represented.
Maintenance
Related MCP Connectors
Forge designed Power BI projects (.pbip) from your agent, bound to your own semantic model.
Manage SysML2 projects; check, evaluate, verify, query, document and diagram models.
Find Power Apps PCF controls, read their docs, and validate pcfhub.json manifests.
Markdown to editable PowerPoint, Word, PDF; checks, edits and previews RDLC/RDL reports.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceLocal MCP server for editing Power BI Project reports saved in PBIR format.GPL 2.0
- AlicenseAqualityBmaintenanceEnables local Power BI project (.pbip) automation, including model (TMDL) and report (PBIR) layer manipulation, without cloud dependencies. Provides 56 tools for building, editing, and validating reports and measures through natural language prompts.13MIT
- AlicenseNot gradedqualityCmaintenanceEnables validating, publishing, rendering, and diagnosing Power BI RDL reports, including workspace/report discovery, datasource inspection, export to multiple formats, and failure-mode diagnosis.MIT
- AlicenseBqualityCmaintenanceEnables MCP-compatible AI clients to build and modify Power BI reports through natural language, including pages, visuals, themes, filters, and formatting using local PBIR files without REST API keys or the Power BI service.57MIT