Power BI
Full Power BI control via MCP: workspaces, reports, datasets, dashboards, dataflows, apps, gateways, capacities, and deployment pipelines. Run DAX, refresh, export, and deploy via Microsoft OAuth.
Overview
Connect Power BI workspaces, reports, datasets, dashboards, dataflows, apps, gateways, capacities, and deployment pipelines to AI clients via the Power BI REST API. Run DAX queries, refresh models, export reports, manage access, and deploy between pipeline stages.
Prerequisites
- A Microsoft account with access to Power BI (
app.powerbi.com) - Power BI Pro, Premium Per User (PPU), or access to workspaces on Premium capacity
- A stackgate.ai account
- For work/school tenants, IT admin consent may be required for Power BI delegated permissions
Getting credentials
- Open My Integrations → Power BI.
- Click Activate, then Sign in with Microsoft.
- Complete Microsoft OAuth with the account that has Power BI access.
- After connect, use Edit tool access to limit Read vs Write tools if needed.
Work accounts may need your IT administrator to grant admin consent for the stackgate.ai app in Microsoft Entra before connect succeeds. If tools return 401/403 after a hub upgrade that added scopes, reconnect Power BI so Microsoft re-issues a token with the new delegated permissions.
Power BI is a separate connect from Outlook Mail and Outlook Calendar — activate and connect each integration independently.
Using with AI clients
- Dedicated endpoint:
POST /mcp/power-bi - Private gateway:
power-bi__*tools
See Documentation for HTTP authentication and private gateway setup.
Capabilities
The MCP server exposes workspace-scoped Power BI REST APIs (not tenant admin APIs):
- Workspaces: list/get/create/update/delete, manage users
- Reports: pages, datasources, clone, delete, rebind, export to file, update content
- Datasets: DAX executeQueries, refresh/history/schedule, parameters, datasources, users, gateways, take over, push-dataset rows
- Dashboards: tiles, create/delete, clone tiles
- Dataflows: datasources, transactions, refresh, cancel, delete
- Apps, gateways, capacities, deployment pipelines, imports, available features
Tenant Admin APIs and embed-token APIs are intentionally out of scope.
Troubleshooting
- Admin approval required — ask your IT admin to grant tenant consent for stackgate.ai and add Power BI Service delegated permissions in Microsoft Entra.
- Auth errors / missing new tools — reconnect Power BI from My Integrations to refresh scopes.
- 403 on a workspace — the connected account may lack access to that workspace in Power BI.
- execute_dataset_query fails — your Power BI admin may need to enable Dataset Execute Queries REST API under Integration settings in the Power BI admin portal.
- DAX query rate limits — Power BI allows 120 executeQueries calls per minute per user.
- Refresh limit on shared capacity — up to eight dataset refreshes per day including scheduled refreshes.
- Export to file — poll
get_report_export_statusuntil Succeeded, then download fromresourceLocation.
Available tools
-
list_workspaces
List Power BI workspaces the connected account can access.
-
get_workspace
Get metadata for a Power BI workspace by ID.
-
create_workspace
Create a new Power BI workspace.
-
update_workspace
Update a Power BI workspace name or default dataset storage format.
-
delete_workspace
Delete a Power BI workspace. The workspace must be empty.
-
list_workspace_users
List users, groups, and apps with access to a Power BI workspace.
-
add_workspace_user
Grant a user, group, or app access to a Power BI workspace.
-
update_workspace_user
Update a principal access right in a Power BI workspace.
-
remove_workspace_user
Remove a user from a Power BI workspace by email address.
-
list_reports
List reports in a Power BI workspace.
-
get_report
Get a Power BI report by workspace and report ID.
-
list_report_pages
List pages in a Power BI report.
-
get_report_page
Get a single page from a Power BI report by page name.
-
list_report_datasources
List datasources for a Power BI report (typically paginated/RDL reports).
-
clone_report
Clone a Power BI report within or across workspaces.
-
delete_report
Delete a Power BI report from a workspace.
-
rebind_report
Rebind a Power BI report to a different dataset.
-
export_report_to_file
Start an async export of a Power BI report to PDF, PPTX, or PNG. Poll get_report_export_status; when Succeeded the status includes resourceLocation for download.
-
get_report_export_status
Get status of a report export-to-file job. When Succeeded, download from resourceLocation.
-
update_report_content
Update report content from another existing report. Pass payload with sourceType ExistingReport and sourceReport {sourceReportId, sourceWorkspaceId}.
-
list_datasets
List semantic model datasets in a Power BI workspace.
-
get_dataset
Get a Power BI dataset by workspace and dataset ID.
-
list_dataset_datasources
List datasources bound to a Power BI dataset.
-
list_dataset_parameters
List parameters for a Power BI dataset.
-
get_dataset_refresh_history
Get refresh history for a Power BI dataset.
-
get_dataset_refresh_execution_details
Get execution details for a specific dataset refresh request.
-
get_dataset_refresh_schedule
Get the scheduled refresh settings for a Power BI dataset.
-
get_dataset_direct_query_refresh_schedule
Get the DirectQuery/LiveConnection refresh schedule for a Power BI dataset.
-
list_dataset_users
List users with access to a Power BI dataset in a workspace.
-
discover_dataset_gateways
Discover gateways that can be bound to a Power BI dataset.
-
execute_dataset_query
Execute a DAX query against a Power BI dataset (one query per call; 120 requests/min per user).
-
refresh_dataset
Trigger a refresh for a Power BI dataset. Shared capacity allows up to eight refreshes per day.
-
cancel_dataset_refresh
Cancel an in-progress enhanced refresh for a Power BI dataset.
-
update_dataset
Update dataset properties such as target storage mode.
-
delete_dataset
Delete a Power BI dataset from a workspace.
-
update_dataset_parameters
Update dataset parameter values.
-
update_dataset_datasources
Update dataset datasource connection details.
-
update_dataset_refresh_schedule
Update the scheduled refresh settings for a Power BI dataset.
-
take_over_dataset
Transfer dataset ownership to the connected user in a workspace.
-
list_dashboards
List dashboards in a Power BI workspace.
-
get_dashboard
Get a Power BI dashboard by workspace and dashboard ID.
-
list_dashboard_tiles
List tiles on a Power BI dashboard.
-
get_dashboard_tile
Get a tile on a Power BI dashboard.
-
create_dashboard
Create an empty dashboard in a Power BI workspace.
-
delete_dashboard
Delete a Power BI dashboard from a workspace.
-
clone_dashboard_tile
Clone a dashboard tile to the same or another dashboard/workspace/report/dataset.
-
list_dataflows
List dataflows in a Power BI workspace.
-
get_dataflow
Export/get a Power BI dataflow definition JSON from a workspace.
-
list_dataflow_datasources
List datasources for a Power BI dataflow.
-
list_dataflow_transactions
List transactions for a Power BI dataflow.
-
list_upstream_dataflows
List upstream dataflows for a Power BI dataflow in a workspace.
-
refresh_dataflow
Trigger a refresh for a Power BI dataflow.
-
delete_dataflow
Delete a Power BI dataflow from a workspace.
-
cancel_dataflow_transaction
Cancel a dataflow transaction in a workspace.
-
list_apps
List Power BI apps installed for the connected user.
-
get_app
Get a Power BI app by ID.
-
list_app_reports
List reports in a Power BI app.
-
list_app_dashboards
List dashboards in a Power BI app.
-
list_app_tiles
List tiles from a dashboard inside a Power BI app.
-
list_gateways
List on-premises data gateways the connected user can administer.
-
get_gateway
Get an on-premises data gateway by ID.
-
list_gateway_datasources
List datasources on an on-premises data gateway.
-
get_gateway_datasource
Get a datasource on an on-premises data gateway.
-
get_gateway_datasource_status
Get connectivity status for a gateway datasource.
-
list_gateway_datasource_users
List users with access to a gateway datasource.
-
list_capacities
List Power BI capacities accessible to the connected user.
-
assign_workspace_to_capacity
Assign a Power BI workspace to a capacity, or pass empty capacity_id to unassign shared capacity.
-
get_workspace_capacity_assignment_status
Get capacity assignment status for a Power BI workspace.
-
list_capacity_refreshables
List refreshables across capacities the user can access.
-
list_pipelines
List Power BI deployment pipelines the connected user can access.
-
get_pipeline
Get a Power BI deployment pipeline by ID.
-
list_pipeline_stages
List stages in a Power BI deployment pipeline.
-
list_pipeline_stage_artifacts
List artifacts assigned to a deployment pipeline stage.
-
list_pipeline_operations
List recent operations for a Power BI deployment pipeline.
-
get_pipeline_operation
Get details for a Power BI deployment pipeline operation.
-
deploy_pipeline_all
Deploy all supported artifacts from one pipeline stage to the next.
-
deploy_pipeline_selective
Selectively deploy artifacts between Power BI pipeline stages. Pass the full SelectiveDeployRequest as payload.
-
assign_workspace_to_pipeline
Assign a workspace to a deployment pipeline stage.
-
unassign_workspace_from_pipeline
Unassign the workspace from a deployment pipeline stage.
-
list_imports
List import jobs in a Power BI workspace.
-
get_import
Get an import job in a Power BI workspace.
-
list_available_features
List available Power BI features for the connected user.
-
refresh_user_permissions
Refresh the Power BI permissions cache for the connected user after workspace access changes.
-
list_push_dataset_tables
List tables in a push dataset within a workspace.
-
push_dataset_rows
Push rows into a push-dataset table. Pass rows as an array of objects.
-
delete_push_dataset_rows
Delete all rows from a push-dataset table.
MCP endpoint:
https://stackgate.ai/mcp/power-bi
(HTTP) or via the
private gateway.