Pbirb MCP Server

MCP server for editing Power BI Report Builder paginated reports (RDL)

Local serverstdioPython

What is the Pbirb MCP server?

MCP server for editing Power BI Report Builder paginated reports (RDL). Exposed over MCP by the pbirb mcp server, that capability becomes something an assistant can invoke while it works, not something you go and do afterwards.

What it actually does

An MCP server for editing Power BI Report Builder paginated reports (.rdl) through Claude (Desktop, CLI, or any MCP client). 140+ tools cover the gaps that otherwise force hand-written XML: report creation, data sources and datasets, calculated fields, dataset and tablix filters, groupings (row, column, matrix), sorting, charts, headers and footers, body composition, layout containers, positioning, styling, page setup, pagination, advanced parameters, embedded images, interactivity (actions, tooltips, document map), transactions, and validation.

Its toolset

Everything the assistant can do here goes through one of these:

  • describe_report — Top-level inventory: data sources, datasets, parameters, tablixes, page setup
  • get_parameters — Report parameters with data type, prompt, and flags (multi-value, hidden, nullable, allow-blank)
  • get_tablixes — Tablix layout: columns, row/column groups, sort expressions, filters, visibility
  • get_expression_reference — Cheat-sheet of common RDL expression patterns (count_where, sum_where, iif_format helpers build these)
  • set_datasource_connection — Repoint a at a Power BI XMLA endpoint. DataProvider=SQL (the AS provider id)
  • update_dataset_query — Replace // with a DAX expression
  • add_query_parameter — Append (e.g. =Parameters!DateFrom.Value)
  • update_query_parameter — Change the value expression of an existing query parameter
  • remove_query_parameter — Drop a query parameter (and clean up empty )
  • refresh_dataset_fields — Re-derive the list from the query's column metadata
  • add_tablix_filter — Append a . Operators: Equal, NotEqual, GreaterThan, In, Between, Like, TopN, ..
  • remove_tablix_filter — Remove by ordinal index from list_tablix_filters

Adding it to your client

Installation goes through your MCP client rather than a global install: point it at pbirb-mcp on PyPI and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

When to reach for it

Among the database access options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Pbirb's toolset — describe_report, get_parameters, get_tablixes and 11 more — is a fair guide to whether it matches your workflow. It is maintained by mafaq229; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Pbirb's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

Caveats

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Pbirb.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the pbirb mcp server does with a few real requests.

Available tools

ToolWhat it does
describe_reportTop-level inventory: data sources, datasets, parameters, tablixes, page setup
get_parametersReport parameters with data type, prompt, and flags (multi-value, hidden, nullable, allow-blank)
get_tablixesTablix layout: columns, row/column groups, sort expressions, filters, visibility
get_expression_referenceCheat-sheet of common RDL expression patterns (count_where, sum_where, iif_format helpers build these)
set_datasource_connectionRepoint a <DataSource> at a Power BI XMLA endpoint. DataProvider=SQL (the AS provider id).
update_dataset_queryReplace <DataSet>/<Query>/<CommandText> with a DAX expression
add_query_parameterAppend <QueryParameter> (e.g. =Parameters!DateFrom.Value)
update_query_parameterChange the value expression of an existing query parameter
remove_query_parameterDrop a query parameter (and clean up empty <QueryParameters>)
refresh_dataset_fieldsRe-derive the <Fields> list from the query's column metadata
add_tablix_filterAppend a <Filter>. Operators: Equal, NotEqual, GreaterThan, In, Between, Like, TopN, ...
remove_tablix_filterRemove by ordinal index from list_tablix_filters
convert_to_matrixPromote a table to a matrix (row + column groups) — see [docs/MATRIX-cookbook.md](docs/MATRIX-cookbook.md)
set_tablix_cornerSet the matrix corner cell text/expression

How to install the Pbirb MCP server

{
  "mcpServers": {
    "pbirb": {
      "command": "uvx",
      "args": ["pbirb-mcp"]
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Example prompts to try

  • Use Pbirb to describe report.
  • Use Pbirb to get parameters.
  • Use Pbirb to get tablixes.

Frequently asked questions

It connects Pbirb to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (describe_report, get_parameters, get_tablixes, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Pbirb directly.