Skip to main content
Glama
gurvinder-dhillon

PowerBI MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
POWERBI_CLIENT_IDYesAzure AD Client ID
POWERBI_TENANT_IDYesAzure AD Tenant ID
POWERBI_CLIENT_SECRETYesAzure AD Client Secret

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_workspacesA

Get list of PowerBI workspaces (also called groups) accessible to the service principal.

This tool retrieves all workspaces that the configured service principal has access to. Workspaces are containers for dashboards, reports, datasets, and dataflows in PowerBI.

Use this when you need to:

  • Discover available workspaces

  • Find a workspace ID for further operations

  • List all accessible PowerBI workspaces

Parameters:

  • top (optional): Maximum number of workspaces to return (1-5000, for pagination)

  • skip (optional): Number of workspaces to skip (for pagination)

  • format: Response format - "json" or "markdown" (default: "markdown")

  • detail: Detail level - "concise" or "detailed" (default: "concise")

Returns: List of workspaces with their IDs, names, and optionally detailed metadata.

Example usage:

  • Get first 10 workspaces: top=10

  • Get concise markdown list: format="markdown", detail="concise"

  • Get detailed JSON: format="json", detail="detailed"

Error handling:

  • If authentication fails, check your service principal credentials

  • If no workspaces returned, ensure service principal has workspace access

  • For permission errors, verify service principal is enabled in PowerBI admin portal

get_reportsA

Get PowerBI reports from a workspace.

Returns report information including:

  • Report name and ID

  • Web URL for viewing

  • Embed URL for embedding

  • Associated dataset ID

Useful for discovering available reports and getting report URLs.

Parameters:

  • workspace_id (optional): Workspace ID. Omit to get reports from "My workspace"

  • format: Response format - "json" or "markdown" (default: "markdown")

  • detail: Detail level - "concise" or "detailed" (default: "concise")

Returns: List of reports with their IDs, names, and optionally URLs and dataset IDs.

Example usage:

  • Get reports from My workspace: (omit workspace_id)

  • Get reports from specific workspace: workspace_id="abc123"

  • Get detailed info with URLs: detail="detailed"

Error handling:

  • If workspace_id not found, verify the ID using get_workspaces

  • For permission errors, ensure service principal has read access

  • Empty list means no reports in the workspace or no access

get_datasetsA

Get list of datasets from a specific workspace or My workspace.

Datasets in PowerBI contain the data model, including tables, columns, relationships, and measures. This tool retrieves all datasets accessible in the specified workspace.

Use this when you need to:

  • List all datasets in a workspace

  • Find a dataset ID for querying

  • Discover available data sources

  • Check dataset refresh status and configuration

Parameters:

  • workspace_id (optional): Workspace (group) ID. If not provided, returns datasets from "My workspace"

  • format: Response format - "json" or "markdown" (default: "markdown")

  • detail: Detail level - "concise" or "detailed" (default: "concise")

Returns: List of datasets with their IDs, names, and optionally detailed metadata including refresh status, storage mode, and configuration details.

Example usage:

  • Get datasets from specific workspace: workspace_id="abc123..."

  • Get datasets from My workspace: (omit workspace_id)

  • Get detailed info: detail="detailed"

Error handling:

  • If workspace_id not found, verify the ID is correct using get_workspaces

  • For permission errors, ensure service principal has read access to the workspace

  • Empty list means no datasets in the workspace or no access

get_datasetA

Get detailed information about a specific dataset.

Retrieves comprehensive metadata about a PowerBI dataset including configuration, refresh settings, and data source information.

Use this when you need to:

  • Get detailed metadata about a specific dataset

  • Check dataset configuration and capabilities

  • Verify dataset refresh settings

  • Understand dataset storage mode and requirements

Parameters:

  • dataset_id (required): The unique identifier of the dataset

  • workspace_id (optional): Workspace (group) ID. Omit for datasets in "My workspace"

  • format: Response format - "json" or "markdown" (default: "json")

Returns: Detailed dataset information including:

  • Dataset name and ID

  • Configuration details

  • Refresh capabilities and requirements

  • Storage mode

  • Creation date

  • Identity requirements

Example usage:

  • Get dataset from My workspace: dataset_id="dataset123"

  • Get dataset from specific workspace: dataset_id="dataset123", workspace_id="workspace456"

Error handling:

  • If dataset_id not found (404), verify the ID using get_datasets

  • For permission errors, ensure service principal has read access

  • Check workspace_id matches the workspace containing the dataset

get_refresh_historyA

Get refresh history for a PowerBI dataset.

Shows recent refresh operations including:

  • Status (Completed, Failed, Unknown)

  • Start and end times

  • Request ID and refresh type

  • Error messages (for failed refreshes)

Useful for monitoring data freshness and troubleshooting refresh failures.

Parameters:

  • dataset_id (required): The dataset ID

  • workspace_id (optional): Workspace ID. Omit for datasets in "My workspace"

  • top: Number of refresh records to return (default: 5, max: 60)

  • format: Response format - "markdown" or "json" (default: "markdown")

Returns: Formatted refresh history with status, timestamps, and error details for failed refreshes.

Example usage:

  • Get last 5 refreshes: dataset_id="abc123"

  • Get last 10 refreshes: dataset_id="abc123", top=10

  • Check specific workspace: dataset_id="abc123", workspace_id="workspace456"

Error handling:

  • If dataset_id not found, verify the ID using get_datasets

  • For permission errors, ensure service principal has read access

get_parametersA

Get parameters defined in a PowerBI dataset.

Returns parameter definitions including:

  • Name and data type

  • Current value

  • Whether parameter is required

  • Suggested values (if defined)

Useful for discovering available parameters before querying parameterized datasets.

Note: Not supported for datasets with SQL, Oracle, Teradata, SAP HANA DirectQuery connections or datasets modified via XMLA endpoint.

Parameters:

  • dataset_id (required): The dataset ID

  • workspace_id (optional): Workspace ID. Omit for datasets in "My workspace"

  • format: Response format - "markdown" or "json" (default: "markdown")

  • detail: Detail level - "concise" or "detailed" (default: "concise")

Returns: Formatted parameter information with names, types, values, and suggested values.

Example usage:

  • Get all parameters: dataset_id="abc123"

  • Get detailed info: dataset_id="abc123", detail="detailed"

  • Check specific workspace: dataset_id="abc123", workspace_id="workspace456"

Error handling:

  • If dataset_id not found, verify the ID using get_datasets

  • "Not supported" errors indicate dataset type limitations

  • Empty result means no parameters are defined

query_datasetA

Execute DAX (Data Analysis Expressions) queries against a PowerBI dataset.

This tool allows you to query dataset tables using DAX, PowerBI's formula language. DAX queries can retrieve data, perform calculations, and apply filters.

Use this when you need to:

  • Retrieve data from dataset tables

  • Perform calculations and aggregations

  • Filter and analyze dataset data

  • Get specific rows or aggregated results

DAX Query Syntax:

  • Basic table query: EVALUATE TableName

  • Filtered query: EVALUATE FILTER(TableName, TableName[Column] = "Value")

  • Aggregation: EVALUATE SUMMARIZE(TableName, TableName[Column], "Total", SUM(TableName[Amount]))

  • Top N: EVALUATE TOPN(10, TableName, TableName[Column], DESC)

Parameters:

  • dataset_id (required): The unique identifier of the dataset to query

  • dax_query (required): DAX query to execute (must start with EVALUATE)

  • workspace_id (optional): Workspace (group) ID. Omit for "My workspace"

  • format: Response format - "json" or "markdown" (default: "markdown")

Returns: Query results as a table with rows and columns. Markdown format presents results as formatted tables. Results are limited to 100 rows in markdown view.

Example queries:

  1. Get all rows: "EVALUATE 'Sales'"

  2. Filter data: "EVALUATE FILTER('Sales', 'Sales'[Year] = 2024)"

  3. Aggregate: "EVALUATE SUMMARIZE('Sales', 'Sales'[Category], "Total", SUM('Sales'[Amount]))"

  4. Top 10: "EVALUATE TOPN(10, 'Sales', 'Sales'[Amount], DESC)"

Error handling:

  • For syntax errors, check your DAX query starts with EVALUATE

  • If table/column not found, use get_dataset to see available schema

  • For large result sets, add filters or use TOPN to limit rows

  • Timeout errors suggest simplifying the query or adding filters

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gurvinder-dhillon/powerbi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server