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. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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