Skip to content

[Feature]: Add Visual Creation and Configuration Operations to Power BI MCP Server #28

Description

@pranjalbishtadsk

**Title: ** [Feature Request]

**Description: **
Request to extend the Power BI MCP server to support programmatic creation and configuration of visuals/reports. Currently, the MCP server provides excellent support for data model operations (tables, measures, relationships, DAX queries) but requires manual visual creation in Power BI Desktop.

**Use Case: **
Current workflow requires switching between MCP and Power BI Desktop GUI:

  1. Use MCP to create data model (tables, measures) ✅
  2. Manually create visuals in Power BI Desktop ❌
  3. Manually configure fields, formatting, filters ❌
  4. Return to MCP for model updates ✅
  5. Manually fix broken visual bindings after model changes ❌

With visual creation support, developers could:

  • Build complete dashboards programmatically via natural language
  • Version control entire reports (not just data models)
  • Automate dashboard deployments in CI/CD pipelines
  • Apply standardized templates and formatting
  • Reproduce dashboards from code

**Example Use Case: **
Built a delay analysis dashboard using MCP for the data model (calculated tables, 9 DAX measures, relationships). All data model work was efficient via MCP, but had to manually create 5 visuals (table, cards, bar chart, matrix, slicer) and configure their properties in the GUI. When we updated a column name, visual field bindings broke and required manual reconfiguration.

**Proposed Operations: **

mcp_powerbi-visual_operations:
- CreateVisual (table, matrix, card, chart, slicer)
- UpdateVisual
- DeleteVisual
- GetVisual
- ListVisuals

mcp_powerbi-page_operations:
- CreatePage
- UpdatePage
- GetPage

mcp_powerbi-interaction_operations:
- SetCrossFilter
- SetVisualInteractions

Example API Call:

{
  "operation": "CreateVisual",
  "pageName": "Dashboard",
  "visualType": "table",
  "fields": {
    "columns": ["TableName[ColumnName]"],
    "values": ["[MeasureName]"]
  },
  "position": {"x": 0, "y": 0, "width": 400, "height": 300},
  "formatting": {
    "conditionalFormatting": {
      "field": "[MeasureName]",
      "rules": [{"min": 0, "max": 100, "color": "#FF0000"}]
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions