PowerBI Analyst MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| POWERBI_CLIENT_ID | Yes | The application (client) ID from your Azure AD app registration. | |
| POWERBI_TENANT_ID | Yes | The directory (tenant) ID from your Azure AD app registration. Required for most organizations to ensure authentication targets the correct tenant. | |
| POWERBI_OUTPUT_DIR | No | Override the default output directory (~/powerbi_output) where large DAX query results are saved as CSV files. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| authenticateA | Authenticate with Power BI using the OAuth 2.0 device code flow. Call this tool first if you have never logged in, or if a previous call returned "Not authenticated". The tool uses a two-step flow:
Your credentials are cached locally so you will not need to repeat this step until the refresh token expires (~90 days). |
| logoutA | Sign out of Power BI by clearing the cached credentials. After logging out, call |
| list_workspacesA | List all Power BI workspaces (groups) the authenticated user is a member of. Returns workspace id, name, type, and capacity information.
Use the |
| list_appsA | List all Power BI apps installed for the authenticated user. Returns each app's id, name, description, publisher, last update time,
and — most importantly — the Use the If no apps are installed, try |
| list_datasetsA | List all datasets (semantic models) in a Power BI workspace. Returns dataset id, name, configured-by, web URL, is-refreshable flag,
and the target storage mode (Import / DirectQuery / etc.).
Use the |
| get_dataset_infoA | Return detailed metadata for a single Power BI dataset. Includes name, owner, refresh schedule, storage mode, web URL, and more. Also returns the last 5 refresh history entries so you can see data freshness. |
| list_tablesA | List all visible tables in a Power BI dataset. Hidden tables and internal Power BI system tables (names starting with '$')
are excluded. Use the returned table names in |
| list_measuresB | List measures defined in a Power BI dataset. Returns each measure's name, parent table, description, and format string. Optionally filter by table name. |
| list_columnsA | List columns (dimensions) in a Power BI dataset. Returns each column's name, parent table, description, data type, and whether it is a key column. Optionally filter by table name. |
| execute_daxA | Execute a DAX query against a Power BI dataset and return the result rows. The query must start with EVALUATE (standard DAX query syntax). Results are returned as a JSON array of objects, with column names as keys. Small results (<= 50 rows) are returned inline as JSON.
Large results (> 50 rows) are automatically saved to a CSV file and a
compact summary is returned with the file path, column names, row count,
and a preview of the first 5 rows. Use Every successful execution is logged to a local history file for
auditability and cross-session reuse. Use Limitations imposed by the Power BI API:
Tips:
|
| read_query_resultA | Read a page of rows from a CSV file saved by Use this tool when Returns rows for the requested slice together with pagination metadata:
Example workflow:
|
| search_query_historyA | Search the local query history log for prior DAX executions. Every successful
Results are returned newest-first. Use |
| delete_query_log_entryA | Remove a single entry from the query history log. Use this when a query produced incorrect or misleading results and should not appear in future history searches. The associated CSV file (if any) is NOT deleted — only the log entry is removed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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/mbrummerstedt/powerbi-analyst-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server