Skip to content
Data
Skill

/fabriciq

Answers natural-language business questions over existing Power BI reports and semantic models through the FabricIQ MCP endpoint, discovering artifacts, resolving entities, generating the DAX itself, and returning a plain-language answer. Use when the user asks a data question,

BOOST
From plugin
skills-for-fabric
1.2k25 skills5 agents3 MCP
Install
$ npx -y skills add microsoft/skills-for-fabric --skill fabriciq --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/fabriciq

Context preview

The summary Claude sees to decide when to auto-load this skill.

Answers natural-language business questions over existing Power BI reports and semantic models through the FabricIQ MCP endpoint, discovering artifacts, resolving entities, generating the DAX itself, and returning a plain-language answer. Use when the user asks a data question,

SKILL.md

fabriciq.SKILL.md
name: fabriciq
description: "Answers natural-language business questions over existing Power BI reports and semantic models through the FabricIQ MCP endpoint, discovering artifacts, resolving entities, generating the DAX itself, and returning a plain-language answer. Use when the user asks a data question, including one that says to query the model directly. For DAX the user supplies, or measures to save, use semantic-model-authoring."

> **CRITICAL NOTES** > 1. To find artifact details (including artifact ID) from a search query: use `DiscoverArtifacts` with the search term — do not call workspace/item list APIs > 2. To find the semantic model behind a report: call `GetReportMetadata` and extract the model GUID from the response > 3. When the user provides a Fabric or Power BI URL, or a bare item GUID whose item type you do not already know: call `ResolveFabricItem` to get the canonical item identity before proceeding

Power BI Consumption — FabricIQ Skill

> ⚠️ **STOP — Read this entire skill document in full before taking any action.** Do not begin orchestrating tool calls until you have read and internalized all sections below, including Workflow, DAX Rules, Verified Answers, and Error Recovery. Skipping ahead leads to incorrect queries and missed instructions.

You help users analyze Power BI data. You orchestrate each step: discover artifacts, inspect report and model schemas, resolve values, and execute queries. Uses the FabricIQ MCP server.

Table of Contents

| Task | Reference | Notes | |---|---|---| | Fabric Topology & Key Concepts | [COMMON-CORE.md § Fabric Topology & Key Concepts](../../common/COMMON-CORE.md#fabric-topology--key-concepts) | Hierarchy; Finding Things in Fabric | | Environment URLs | [COMMON-CORE.md § Environment URLs](../../common/COMMON-CORE.md#environment-urls) | Production (Public Cloud) | | Authentication & Token Acquisition | [COMMON-CORE.md § Authentication & Token Acquisition](../../common/COMMON-CORE.md#authentication--token-acquisition) | Wrong audience = 401; covers token audiences, delegated vs app permissions, OAuth flows, identity types, and Entra app registration | | Authentication Recipes | [COMMON-CLI.md § Authentication Recipes](../../common/COMMON-CLI.md#authentication-recipes) | `az login` flows, environment detection, token acquisition, and debugging | | Gotchas, Best Practices & Troubleshooting | [COMMON-CORE.md § Gotchas, Best Practices & Troubleshooting](../../common/COMMON-CORE.md#gotchas-best-practices--troubleshooting) | Common Errors; Best Practices | | Must/Prefer/Avoid | [SKILL.md § Must/Prefer/Avoid](#mustpreferavoid) | Guardrails for Power BI consumption | | Workflow | [SKILL.md § Workflow](#workflow) | FabricIQ orchestration steps |

Available Tools

| Tool | Purpose | |------|---------| | `DiscoverArtifacts(searchQuery, artifactTypes?, maxResults?)` | Search for Power BI reports and semantic models by free text. Call FIRST when the user has not provided an artifact GUID or a Fabric/Power BI URL. Maximum 50 results. Prefer reports over standalone semantic models | | `ResolveFabricItem(fabricItemId=<guid-or-url>)` | Resolve a Fabric or Power BI item to its canonical identity. Accepts a bare item GUID (preferred) or a supported artifact URL, and returns the canonical `fabricItemId`, `itemType`, `workspaceId` when known, and optional next-step instructions. Call when the user pastes a URL or supplies a raw GUID whose item type is not already known. Required for workspace-App URLs (`.../groups/me/apps/<appId>/reports/<reportId>`) where the path-level reportId is the per-app instance ID, not the published-report GUID | | `GetReportMetadata(reportObjectId=<guid>)` | Retrieve report pages, visuals, filters, workspace info. Supports optional `queries` parameter (JMESPath strings) to project a slim subset — pass queries only when a previous call returned an overview/summary instead of full data. On first call, omit queries to see complete metadata | | `GetSemanticModelSchema(artifactId=<guid>)` | Retrieve table/column/measure definitions, relationships, custom AI instructions, and verified answers. Supports optional `queries` parameter (JMESPath). On first call, omit queries to see complete schema | | `ValueSearch(artifactId, searchTerms, scope?)` | Call BEFORE writing a DAX filter on a named entity (customer, product, region, etc.). Returns the column + exact value to filter against so DAX does not guess canonical spelling | | `ExecuteQuery(artifactId=<guid>, daxQueries=[...], maxRows?)` | Execute 1–4 DAX queries (one EVALUATE per entry) and return tabular results. Default 250 rows per query, max 1,000. Set `maxRows` if you need more than the default |

Must/Prefer/Avoid

MUST DO

  • **Read metadata and schema fully before generating queries** — Always read the `GetReportMetadata` and `GetSemanticModelSchema` tool results in full before proceeding. Follow any instructions that these tools provide (e.g., CustomInstructions, VerifiedAnswers). Do not skip, skim, or partially read these results — they contain critical context for correct DAX generation
  • **Always follow Custom Instructions** — CustomInstructions from the semantic model are mandatory rules. Read them in full, apply them to every DAX query you write (e.g., default date filters, required measures, naming rules). If the schema was truncated, retrieve CustomInstructions via JMESPath before writing any DAX
  • **Always check verified answers before writing custom DAX** — After reading the schema, scan ALL verified answer titles and questions for a semantic match to the user's question. If a match exists, use it. Do not write ad-hoc DAX when a verified answer covers the same intent
  • **Source-bound** — never invent facts or use external data; rely only on Power BI artifacts
  • **Always discover first** — call `DiscoverArtifacts` unless you already have the artifact ID, or the user gave a Fabric/Power BI URL or an unidentified GUID, in which case call `ResolveFa
Read more
Ships withskills-for-fabric

Microsoft Fabric Skills are reusable AI assistant instructions for working with Microsoft Fabric. They help GitHub Copilot CLI and compatible AI coding tools understand Fabric workloads, APIs, query patterns, and operational best practices.

Get the whole plugin

Other skills on skills-for-fabric.