mcp-powerBI-to-report
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| POWERBI_TENANT | No | Azure AD tenant ID or domain (e.g., 'vnu.edu.vn'). Required for service principal authentication. | |
| POWERBI_CLIENT_ID | No | Azure application client ID for service principal authentication. | |
| POWERBI_ACCESS_TOKEN | No | Power BI access token for direct authentication. If set, service principal credentials are ignored. | |
| POWERBI_CLIENT_SECRET | No | Azure application client secret for service principal authentication. | |
| POWERBI_KNOWN_WORKSPACES | No | Comma-separated list of known workspace names for CEO mode. | |
| POWERBI_DEFAULT_WORKSPACE | No | Default workspace name for CEO mode. | |
| POWERBI_MODELING_MCP_ARGS | No | Additional arguments for the Modeling MCP command. | |
| POWERBI_REPORT_OUTPUT_DIR | No | Directory to save generated HTML reports. Default: './powerbi-report-output'. | |
| POWERBI_MODELING_MCP_COMMAND | No | Path or command to the Microsoft Power BI Modeling MCP binary. Default: 'npx -y @microsoft/powerbi-modeling-mcp@latest --start'. | |
| POWERBI_DEFAULT_SEMANTIC_MODEL | No | Optional fallback semantic model name if not provided in queries. |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| auth_statusA | Show which Power BI authentication mode is configured without exposing tokens. |
| start_device_loginA | Start delegated user device-code login for Power BI REST API. Use only for one-time local setup; service principal is recommended for production. |
| complete_device_loginA | Poll Microsoft for the pending device-code login and cache the token when authorization is complete. |
| list_workspacesA | List all Fabric/Power BI workspaces visible to the authenticated account through the Power BI REST API. Use this first when the user does not provide a workspace name or id. |
| list_semantic_modelsA | List semantic models in My workspace or in a specific workspace by id. Use list_workspaces first to resolve workspace ids. If workspace discovery is not authenticated and the user did not name a workspace, ask the user which workspace to use. |
| get_catalogA | Return all visible workspaces and semantic models via Power BI REST API. This is the preferred tool for open-ended questions such as 'which model should I use?' or 'what workspaces can I access?'. |
| list_semantic_models_in_workspace_via_modeling_mcpA | Use Microsoft powerbi-modeling-mcp/XMLA auth to list semantic models inside a known workspace name. This is a fallback when REST workspace discovery auth is unavailable. The workspace name must be explicit; if it is missing, ask the user instead of guessing. |
| get_known_workspace_catalogA | List semantic models for manually configured POWERBI_KNOWN_WORKSPACES using Microsoft Modeling MCP. Use this for CEO workflows when REST workspace discovery is unavailable. |
| execute_dax_queryA | Execute a DAX query against a Power BI semantic model using default workspace/model when omitted. This keeps the Microsoft Modeling MCP process alive to reduce repeated login prompts. |
| execute_dax_report_queryA | Execute a DAX query against a Power BI semantic model and return both a concise text answer and a self-contained HTML dashboard/report for executive review. Prefer this tool for boss/CEO business questions. |
| execute_dax_dashboard_queryA | Alias for execute_dax_report_query kept for compatibility with earlier dashboard workflows. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Most tools have distinct purposes, but `execute_dax_dashboard_query` is an explicit alias for `execute_dax_report_query`, creating redundancy. Additionally, multiple tools list semantic models via different methods (`list_semantic_models`, `list_semantic_models_in_workspace_via_modeling_mcp`, `get_catalog`), which could confuse an agent if descriptions are skimmed. However, the descriptions clearly indicate when each is appropriate, so ambiguity is minimal.
All tool names follow a consistent `verb_noun` pattern using snake_case. Verbs like `auth`, `complete`, `execute`, `get`, `list`, and `start` are clear and predictable. Even lengthy names like `list_semantic_models_in_workspace_via_modeling_mcp` adhere to the pattern. No mixing of naming conventions.
With 11 tools, the count is within the typical well-scoped range. However, there is some redundancy: three authentication tools and four listing tools, with an alias that could be merged. Slightly more than necessary for the domain, but justified by different authentication methods and fallback scenarios.
The tool set covers the full workflow for Power BI reporting: authentication, workspace discovery, semantic model listing, and DAX query execution that returns a report. Minor gaps exist, such as no direct tool to list reports or manage models, but the primary purpose of querying and generating reports is well-covered.