Microsoft Power BI icon

CONNECT APP

Build with Microsoft Power BI

Visualize any data and integrate the visuals into the apps you use every day with Power BI, a unified platform for self-service and business intelligence.

Data Analytics

  • OAuth

MCP

Give your agent Microsoft Power BI tools

Every Microsoft Power BI action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Microsoft Power BI account for each tool call — you store no tokens.

// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": "{project_id}",
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "microsoft_power_bi",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// e.g. run Add Rows to Dataset Table:
const result = await mcp.callTool({
  name: "microsoft_power_bi-add-rows-dataset-table",
  arguments: {
    datasetId: "Dataset ID",
    tableName: "Table Name",
  },
})

API PROXY

Call the Microsoft Power BI API directly

For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Microsoft Power BI API with the connected user's credentials attached. You store no tokens and write no refresh logic.

const resp = await pd.proxy.get({
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  accountId: "apn_xxxxxxx",
  url: "https://api.powerbi.com/v1.0/myorg/groups",
})

// Any allowed Microsoft Power BI endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.

SDK

Run Microsoft Power BI actions from your backend

Connect a user's Microsoft Power BI account once, then run Add Rows to Dataset Table on their behalf from your own code — TypeScript, Python, or plain HTTP.

import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "microsoft_power_bi-add-rows-dataset-table",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    microsoft_power_bi: { authProvisionId: "apn_xxxxxxx" },
    datasetId: "Dataset ID",
    tableName: "Table Name",
  },
})

TOOLS

Microsoft Power BI actions

On-demand operations your product or agent can configure and run on behalf of a connected user.

REFERENCE

App details

Reference metadata for the Microsoft Power BI connector in the Pipedream registry.

App slug
microsoft_power_bi
Authentication
OAuth
Categories
Data Analytics
Actions
15
Triggers
3
API proxy
Available

OAuth scopes

These are the scopes Pipedream's managed Microsoft Power BI OAuth client requests when one of your users connects an account. Supply your own OAuth client to request a different set.

  • offline_access
  • https://analysis.windows.net/powerbi/api/App.Read.All
  • https://analysis.windows.net/powerbi/api/Dashboard.Read.All
  • https://analysis.windows.net/powerbi/api/Workspace.Read.All
  • https://analysis.windows.net/powerbi/api/Dataset.ReadWrite.All
  • https://analysis.windows.net/powerbi/api/Report.Read.All
  • https://analysis.windows.net/powerbi/api/Report.ReadWrite.All