From fabric-consumption
Executes read-only DAX queries on Microsoft Fabric Power BI semantic models via MCP ExecuteQuery tool to discover metadata (tables, columns, measures, relationships) and retrieve data.
npx claudepluginhub microsoft/skills-for-fabric --plugin fabric-consumptionThis skill uses the workspace's default tool permissions.
> **Update Check — ONCE PER SESSION (mandatory)**
Manages Power BI semantic models in Fabric workspaces via az rest CLI: create from TMDL, download/update definitions, refresh datasets, configure permissions, deploy across pipelines.
Manages Microsoft Fabric resources including workspaces, semantic models, reports, notebooks, lakehouses using fab CLI for deployment, job execution, data querying, OneLake file management, and automation.
Authors Power BI semantic models: creates/edits DAX measures/tables/relationships, analyzes best practices, deploys to Fabric, manages PBIP/TMDL, troubleshoots performance.
Share bugs, ideas, or general feedback.
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
| 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) |
INFO.VIEW.* as available to any user with read access to the semantic model; assume other INFO.* functions may require elevated permissions.INFO.VIEW.* / INFO.* for metadata discovery before writing data queries.artifactId) before iterative query refinement.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).INFO.VIEW.TABLES() for a fast table inventory.INFO.VIEW.COLUMNS() and INFO.VIEW.MEASURES() for semantic details.INFO.VIEW.RELATIONSHIPS() to validate joins and filter behavior.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 | 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 |
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.
ExecuteQuery is not available in the active tool list.ExecuteQuery is exposed.INFO.* fail with authorization or privilege-related errors.INFO.* functions require elevated semantic model permissions beyond standard read access.INFO.VIEW.* functions for read-oriented discovery.INFO.VIEW.* and INFO.* queries return broad object/property surfaces that are often unnecessary for the current task.INFO DAX functions to retrieve role memberships
INFO.ROLEMEMBERSHIPS() returns empty or incomplete results.INFO functions cannot reliably surface them.For the full query catalog (including dependency patterns), see discovery-queries.md.
EVALUATE
INFO.VIEW.TABLES()
ORDER BY [Name]
DEFINE
MEASURE 'Sales'[Total Sales] = SUM('Sales'[Amount])
EVALUATE
SUMMARIZECOLUMNS(
'Customer'[Customer Name],
"Total Sales", [Total Sales]
)
ORDER BY [Total Sales] DESC