powerbi-consumption-cli
Installation
SKILL.md
Update Check — ONCE PER SESSION (mandatory) The first time this skill is used in a session, run the check-updates skill before proceeding.
- GitHub Copilot CLI / VS Code: invoke the
check-updatesskill.- Claude Code / Cowork / Cursor / Windsurf / Codex: compare local vs remote package.json version.
- Skip if the check was already performed earlier in this session.
CRITICAL NOTES
- To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering
- To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering
Power BI Semantic Model Consumption — CLI Skill
Table of Contents
| Task | Reference | Notes |
|---|---|---|
| Finding Workspaces and Items in Fabric | COMMON-CLI.md § Finding Workspaces and Items in Fabric | Mandatory — READ link first [needed for finding workspace id by its name or item id by its name, item type, and workspace id] |
| Fabric Topology & Key Concepts | COMMON-CORE.md § Fabric Topology & Key Concepts | Hierarchy; Finding Things in Fabric |
| Environment URLs | COMMON-CORE.md § Environment URLs | Production (Public Cloud) |
| Authentication & Token Acquisition | COMMON-CORE.md § Authentication & Token Acquisition | Wrong audience = 401; covers token audiences, delegated vs app permissions, OAuth flows, identity types, and Entra app registration |
| Core Control-Plane REST APIs | COMMON-CORE.md § Core Control-Plane REST APIs | Includes workspace/item CRUD, resolve-by-name, pagination, LRO polling, and rate-limiting patterns |
| OneLake Data Access | COMMON-CORE.md § OneLake Data Access | Requires storage.azure.com token, not Fabric token; covers URL structure, ADLS Gen2 parity, and shortcuts |
| Job Execution | COMMON-CORE.md § Job Execution | Run On-Demand Job; Get / Cancel Job |
| Capacity Management | COMMON-CORE.md § Capacity Management | List Capacities; Assign Workspace to Capacity |
| Gotchas, Best Practices & Troubleshooting | COMMON-CORE.md § Gotchas, Best Practices & Troubleshooting | Common Errors; Best Practices |
| Tool Selection Rationale | COMMON-CLI.md § Tool Selection Rationale | |
| Authentication Recipes | COMMON-CLI.md § Authentication Recipes | az login flows, environment detection, token acquisition, and debugging |
Fabric Control-Plane API via az rest |
COMMON-CLI.md § Fabric Control-Plane API via az rest |
Always pass --resource; includes workspace/item operations, pagination, and LRO patterns |
OneLake Data Access via curl |
COMMON-CLI.md § OneLake Data Access via curl |
Use curl not az rest (different token audience); file list/read/upload/delete and directory creation |
| SQL / TDS Data-Plane Access | COMMON-CLI.md § SQL / TDS Data-Plane Access | sqlcmd (Go) connect, query, CSV export, service principal auth, and connection parameter discovery |
| Job Execution (CLI) | COMMON-CLI.md § Job Execution | Run notebooks/pipelines, refresh semantic models, check/cancel jobs |
| OneLake Shortcuts | COMMON-CLI.md § OneLake Shortcuts | Create a Shortcut; List Shortcuts; Delete a Shortcut |
| Capacity Management (CLI) | COMMON-CLI.md § Capacity Management | List Capacities; Assign Workspace to Capacity |
| Composite Recipes | COMMON-CLI.md § Composite Recipes | End-to-end workspace→lakehouse→file, SQL endpoint→query, and notebook execution recipes |
| Gotchas & Troubleshooting (CLI-Specific) | COMMON-CLI.md § Gotchas & Troubleshooting (CLI-Specific) | |
| Quick Reference | COMMON-CLI.md § Quick Reference | az rest Template; Token Audience ↔ CLI Tool Matrix |
| Prerequisites | SKILL.md § Prerequisites | |
| Must/Prefer/Avoid | SKILL.md § Must/Prefer/Avoid | Guardrails for read-only semantic model usage. MUST DO; PREFER; AVOID |
| Metadata Discovery | SKILL.md § Metadata Discovery | INFO.VIEW.* and INFO.* functions. |
| Recommended Discovery Order | SKILL.md § Recommended Discovery Order | Preferred order for metadata exploration |
| Frequently Used INFO Functions | SKILL.md § Frequently Used INFO Functions | High-usage function list for first-pass discovery |
| Complete INFO Function Catalog (Dynamic) | discovery-queries.md § Complete INFO Function Catalog (Dynamic) | |
| Metadata Object → INFO Function Map | SKILL.md § Metadata Object → INFO Function Map | Inlined mapping for object-focused discovery |
| Query Execution | SKILL.md § Query Execution | ExecuteQuery usage shape |
| Troubleshooting | SKILL.md § Troubleshooting | Resolve common execution and metadata issues |
| Examples | SKILL.md § Examples | Sample Metadata Query; Sample Data Query |
| Scope Estimation Queries | discovery-queries.md § Scope Estimation Queries | |
| INFO Output Columns | discovery-queries.md § INFO Output Columns | INFO.VIEW.* (preferred first-pass metadata); Critical INFO.* (deep metadata / diagnostics) |
| Narrowing Results (Projection + Filtering) | discovery-queries.md § Narrowing Results (Projection + Filtering) | |
| Deep Metadata Queries | discovery-queries.md § Deep Metadata Queries | |
| Dependency Discovery | discovery-queries.md § Dependency Discovery | Dependency rowset for a DAX query; Dependency rows scoped to a measure; Reverse dependencies (what references a measure) |
Prerequisites
- COMMON-CORE.md — Fabric concepts, authentication, and control-plane API context.
- COMMON-CLI.md — CLI-oriented discovery and token/audience patterns.
Must/Prefer/Avoid
MUST DO
- Keep this skill read-only: metadata discovery and analytical DAX queries only.
- Treat DAX data queries and
INFO.VIEW.*as available to any user with read access to the semantic model; assume otherINFO.*functions may require elevated permissions. - Resolve workspace and semantic model item identity dynamically; do not hardcode IDs.
- Use DAX
INFO.VIEW.*/INFO.*for metadata discovery before writing data queries.
PREFER
- Validate semantic model scope early (
artifactId) before iterative query refinement. - Discover semantic model schema progressively: use filtered and projected
INFO.VIEW.*/INFO.*calls (e.g.,SELECTCOLUMNS+FILTER) to fetch only the information directly relevant to the current task instead of retrieving the full schema up front. See discovery-queries.md § Narrowing Results (Projection + Filtering). - Keep guidance provider-agnostic so tool endpoint migration is low risk.
AVOID
- Model-change operations in this skill.
Recommended Discovery Order
- Run the discovery-queries.md § Scope Estimation Queries to estimate metadata scope (table, column, measure, and relationship counts) before deep discovery.
- Start with
INFO.VIEW.TABLES()for a fast table inventory. - Expand to
INFO.VIEW.COLUMNS()andINFO.VIEW.MEASURES()for semantic details. - Use
INFO.VIEW.RELATIONSHIPS()to validate joins and filter behavior. - Use the full query catalog in discovery-queries.md for deeper patterns.
Frequently Used INFO Functions
INFO.VIEW.TABLESINFO.VIEW.MEASURESINFO.VIEW.COLUMNSINFO.VIEW.RELATIONSHIPSINFO.PARTITIONSINFO.MODELINFO.STORAGETABLECOLUMNSEGMENTSINFO.DEPENDENCIESINFO.EXPRESSIONSINFO.ROLESINFO.STORAGETABLECOLUMNSINFO.CALCULATIONGROUPSINFO.CALCULATIONITEMSINFO.CULTURESINFO.OBJECTTRANSLATIONSINFO.USERDEFINEDFUNCTIONSINFO.REFRESHPOLICIESINFO.ATTRIBUTEHIERARCHYSTORAGESINFO.COLUMNPARTITIONSTORAGESINFO.COLUMNSTORAGESINFO.DICTIONARYSTORAGESINFO.HIERARCHYSTORAGESINFO.PARTITIONSTORAGESINFO.RELATIONSHIPINDEXSTORAGESINFO.RELATIONSHIPSTORAGESINFO.SEGMENTMAPSTORAGESINFO.SEGMENTSTORAGESINFO.STORAGEFOLDERSINFO.STORAGEFILESINFO.TABLESTORAGESINFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGESINFO.DELTATABLEMETADATASTORAGESINFO.PARQUETFILESTORAGESINFO.STORAGETABLES
Metadata Object → INFO Function Map
| Metadata Object | Primary INFO functions |
|---|---|
| Model | INFO.MODEL |
| Tables | INFO.VIEW.TABLES |
| Columns | INFO.VIEW.COLUMNS, INFO.GROUPBYCOLUMNS, INFO.RELATEDCOLUMNDETAILS |
| Measures | INFO.VIEW.MEASURES, INFO.FORMATSTRINGDEFINITIONS, INFO.DETAILROWSDEFINITIONS |
| Relationships | INFO.VIEW.RELATIONSHIPS |
| Partitions | INFO.PARTITIONS, INFO.EXPRESSIONS, INFO.QUERYGROUPS, INFO.REFRESHPOLICIES, INFO.DATACOVERAGEDEFINITIONS |
| Security roles & permissions | INFO.ROLES, INFO.TABLEPERMISSIONS, INFO.COLUMNPERMISSIONS |
| Hierarchies | INFO.HIERARCHIES, INFO.LEVELS, INFO.ATTRIBUTEHIERARCHIES, INFO.VARIATIONS |
| Calculation groups/items | INFO.CALCULATIONGROUPS, INFO.CALCULATIONITEMS, INFO.CALCULATIONEXPRESSIONS |
| Perspectives | INFO.PERSPECTIVES, INFO.PERSPECTIVETABLES, INFO.PERSPECTIVECOLUMNS, INFO.PERSPECTIVEHIERARCHIES, INFO.PERSPECTIVEMEASURES |
| Calendars | INFO.CALENDARS, INFO.CALENDARCOLUMNGROUPS, INFO.CALENDARCOLUMNREFERENCES |
| Cultures | INFO.CULTURES |
| Object translations | INFO.OBJECTTRANSLATIONS |
| Functions | INFO.USERDEFINEDFUNCTIONS |
| Dependencies / lineage | INFO.DEPENDENCIES, INFO.CHANGEDPROPERTIES, INFO.EXCLUDEDARTIFACTS |
| Storage internals / size | INFO.STORAGEFOLDERS, INFO.STORAGEFILES, INFO.TABLESTORAGES, INFO.COLUMNSTORAGES, INFO.PARTITIONSTORAGES, INFO.SEGMENTMAPSTORAGES, INFO.DICTIONARYSTORAGES, INFO.COLUMNPARTITIONSTORAGES, INFO.SEGMENTSTORAGES, INFO.RELATIONSHIPSTORAGES, INFO.RELATIONSHIPINDEXSTORAGES, INFO.ATTRIBUTEHIERARCHYSTORAGES, INFO.HIERARCHYSTORAGES, INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES, INFO.DELTATABLEMETADATASTORAGES, INFO.PARQUETFILESTORAGES, INFO.STORAGETABLES, INFO.STORAGETABLECOLUMNS, INFO.STORAGETABLECOLUMNSEGMENTS |
Query Execution
Use a single ExecuteQuery capability with payload concepts:
artifactId: target semantic model identifier.daxQuery: direct DAX query text.
Temporary implementation note: current query integration is expected to be replaced before release by a public HTTP endpoint exposing
ExecuteQuery.
Troubleshooting
- ExecuteQuery capability is unavailable in the MCP server
- Issue: Query execution cannot start because
ExecuteQueryis not available in the active tool list. - Cause: The Fabric MCP server is not registered, not loaded, or the current client session has stale tool metadata.
- Fix: Verify the active MCP server/tool inventory and confirm
ExecuteQueryis exposed.
- Issue: Query execution cannot start because
- Advanced INFO functions return permission errors
- Issue: Queries against
INFO.*fail with authorization or privilege-related errors. - Cause: Many
INFO.*functions require elevated semantic model permissions beyond standard read access. - Fix: Start with
INFO.VIEW.*functions for read-oriented discovery.
- Issue: Queries against
- Metadata output volume is too large for focused analysis
- Issue: Returning full metadata rowsets introduces too many properties and crowds the working context.
- Cause: Unbounded
INFO.VIEW.*andINFO.*queries return broad object/property surfaces that are often unnecessary for the current task. - Fix: Use the scope estimation queries in discovery-queries.md § Scope Estimation Queries to estimate scope and inspect output schemas, then narrow results with projection and filtering as shown in discovery-queries.md § Narrowing Results (Projection + Filtering).
- Do not use
INFODAX functions to retrieve role memberships- Issue:
INFO.ROLEMEMBERSHIPS()returns empty or incomplete results. - Cause: Role members are assigned at the service level (Entra ID) after deployment, not in the model definition — so DAX
INFOfunctions cannot reliably surface them. - Fix: Use the Power BI REST API instead. See powerbi-authoring-cli § Security Role Memberships.
- Issue:
Examples
For the full query catalog (including dependency patterns), see discovery-queries.md.
Sample Metadata Query
EVALUATE
INFO.VIEW.TABLES()
ORDER BY [Name]
Sample Data Query
DEFINE
MEASURE 'Sales'[Total Sales] = SUM('Sales'[Amount])
EVALUATE
SUMMARIZECOLUMNS(
'Customer'[Customer Name],
"Total Sales", [Total Sales]
)
ORDER BY [Total Sales] DESC
Weekly Installs
20
Repository
microsoft/skill…r-fabricGitHub Stars
301
First Seen
1 day ago
Security Audits