Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
microsoft avatar

Search Consumption Cli

  • 90 installs
  • 886 repo stars
  • Updated July 23, 2026
  • microsoft/skills-for-fabric

search-consumption-cli is an agent skill for finding Fabric items across workspaces using the Catalog Search API.

About

The search-consumption-cli skill discovers Microsoft Fabric items across workspaces using the Catalog Search API when the containing workspace is unknown. It searches by display name, description, or workspace name text with optional OData-style type filters such as Lakehouse, Report, or SemanticModel, returning item and workspace IDs for downstream API calls. Authentication requires Catalog.Read.All scope via az rest with JSON bodies written to temp files to avoid shell quoting issues. Agentic workflow asks for item keywords, runs search, disambiguates multiple matches by presenting name type and workspace, then returns ids for follow-on skills. Pagination uses continuationToken until null with pageSize up to one thousand. MUST rules include disambiguation before assuming a match and avoiding workspace-only searches because the API returns items not workspaces. AVOID guidance covers inventing filter syntax beyond eq, ne, or, and parentheses, and assuming Dataflow Gen1 or Gen2 appear in catalog index yet. Triggers include which workspace has, find item across workspaces, discover items, and search for semantic models or lakehouses tenant-wide.

  • Searches Fabric items across workspaces via Catalog Search API.
  • Returns item id and hierarchy.workspace.id for downstream CLI skills.
  • Supports type filters and empty search to list all items of a type.
  • Requires temp-file JSON bodies and Catalog.Read.All authentication.
  • Disambiguates multiple matches before returning IDs to other workflows.

Search Consumption Cli by the numbers

  • 90 all-time installs (skills.sh)
  • Ranked #3,010 of 4,386 Backend & APIs skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

search-consumption-cli capabilities & compatibility

Capabilities
cross workspace catalog text search · odata style type filtering · continuation token pagination · match disambiguation with workspace context · id extraction for downstream fabric skills
Works with
azure
Use cases
data analysis · orchestration
From the docs

What search-consumption-cli says it does

Find and discover Microsoft Fabric items across workspaces when the workspace is unknown.
SKILL.md
npx skills add https://github.com/microsoft/skills-for-fabric --skill search-consumption-cli

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs90
repo stars886
Security audit2 / 3 scanners passed
Last updatedJuly 23, 2026
Repositorymicrosoft/skills-for-fabric

How do I find a Fabric item and its workspace when I only know the name or type?

Find Fabric items across workspaces with Catalog Search API when workspace ID is unknown.

Who is it for?

Fabric users who need cross-workspace item discovery before running other Fabric CLI skills.

Skip if: Skip for workspace-only lookup, Dataflow Gen1 or Gen2 search, or authoring new Fabric items.

When should I use this skill?

User asks which workspace has an item, wants to find items by name, or list items of a type tenant-wide.

What you get

Resolved item and workspace IDs from catalog search with disambiguated matches for downstream API calls.

Files

SKILL.mdMarkdownGitHub ↗
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-updates skill (e.g., /fabric-skills:check-updates).
- Claude Code / Cowork / Cursor / Windsurf / Codex: read the local package.json version, then compare it against the remote version via git fetch origin main --quiet && git show origin/main:package.json (or the GitHub API). If the remote version is newer, show the changelog and update instructions.
- Skip if the check was already performed earlier in this session.
CRITICAL NOTES
1. The Catalog Search API finds items, not workspaces. To find a workspace by name, use GET /v1/workspaces (see COMMON-CLI.md § Resolve Workspace Properties by Name).
2. The search text matches against item display name, description, and workspace name.
3. Dataflow (Gen1) and Dataflow (Gen2) are not supported.

Catalog Search — CLI Skill

Prerequisite Knowledge

  • COMMON-CORE.md — Fabric REST API patterns, auth
  • COMMON-CLI.md — CLI implementation (az, curl, jq)

Table of Contents

TaskReferenceNotes
Search for an ItemSKILL.md § Search for an ItemBy name, description, or workspace name
List All Items of a TypeSKILL.md § List All Items of a TypeEmpty search + type filter
PaginationSKILL.md § PaginationContinuation token pattern
Agentic WorkflowSKILL.md § Agentic Workflow
ExamplesSKILL.md § Examples
Gotchas and TroubleshootingSKILL.md § Gotchas and Troubleshooting

---

Must/Prefer/Avoid

MUST DO

  • Authenticate first — see COMMON-CORE.md § Authentication & Token Acquisition and COMMON-CLI.md § Authentication Recipes. The Catalog Search API requires Catalog.Read.All scope.
  • Write the JSON body to a temp file — avoids shell quoting issues with filter strings.
  • Disambiguate — if multiple results match, present display name, type, and workspace name and ask the user to confirm.

PREFER

  • Catalog Search over list-and-filter — single cross-workspace call, no need to resolve workspace first.
  • Type filters — narrow results with "filter": "Type eq 'Lakehouse'" to reduce noise.
  • Empty search with type filter — to list all items of a type across workspaces.
  • `jq` for extracting IDs from the response — cleaner than JMESPath for nested hierarchy.workspace.

AVOID

  • Searching for workspaces — the Catalog Search API returns items, not workspaces. Use GET /v1/workspaces instead (see COMMON-CLI.md § Resolve Workspace Properties by Name).
  • Inventing filter syntax — only eq, ne, or, and parentheses are supported.
  • Assuming all item types are supported — Dataflow (Gen1) and Dataflow (Gen2) are not returned yet.

---

Search for an Item

cat > /tmp/body.json << 'EOF'
{"search": "SalesLakehouse", "filter": "Type eq 'Lakehouse'", "pageSize": 10}
EOF
az rest --method post \
  --resource "https://api.fabric.microsoft.com" \
  --url "https://api.fabric.microsoft.com/v1/catalog/search" \
  --body @/tmp/body.json

The search text matches against item display name, description and workspace name. Type filtering is optional. The response includes id, type, displayName, description, and hierarchy.workspace (with id and displayName) for each match.

Extract item and workspace IDs

az rest --method post \
  --resource "https://api.fabric.microsoft.com" \
  --url "https://api.fabric.microsoft.com/v1/catalog/search" \
  --body @/tmp/body.json \
  --query "value[0].{itemId:id, workspaceId:hierarchy.workspace.id, name:displayName}" \
  --output json

---

Filter Examples

GoalFilter
Only lakehousesType eq 'Lakehouse'
Reports or semantic modelsType eq 'Report' or Type eq 'SemanticModel'
Exclude notebooksType ne 'Notebook'

For the full list of supported item types, see the Catalog Search API reference.

---

List All Items of a Type

Use an empty search string with a type filter (pageSize max is 1000):

cat > /tmp/body.json << 'EOF'
{"search": "", "filter": "Type eq 'Lakehouse'", "pageSize": 100}
EOF
az rest --method post \
  --resource "https://api.fabric.microsoft.com" \
  --url "https://api.fabric.microsoft.com/v1/catalog/search" \
  --body @/tmp/body.json

---

Pagination

If the response includes a non-null continuationToken, pass it in the next request:

cat > /tmp/body.json << 'EOF'
{"search": "", "filter": "Type eq 'Lakehouse'", "pageSize": 100, "continuationToken": "<token>"}
EOF
az rest --method post \
  --resource "https://api.fabric.microsoft.com" \
  --url "https://api.fabric.microsoft.com/v1/catalog/search" \
  --body @/tmp/body.json

Continue until continuationToken is null.

---

Agentic Workflow

1. Ask — user provides an item name, type, or description keywords. 2. Search — call Catalog Search with the user's input and optional type filter. 3. Disambiguate — if multiple matches, present results (name, type, workspace) and ask the user to pick. 4. Return — provide the search results, include the item id and hierarchy.workspace.id for downstream use.

---

Examples

Find a specific report

cat > /tmp/body.json << 'EOF'
{"search": "Monthly Sales Revenue", "filter": "Type eq 'Report'", "pageSize": 10}
EOF
az rest --method post \
  --resource "https://api.fabric.microsoft.com" \
  --url "https://api.fabric.microsoft.com/v1/catalog/search" \
  --body @/tmp/body.json \
  --query "value[].{name:displayName, type:type, workspace:hierarchy.workspace.displayName}" \
  --output table

List all semantic models across workspaces

cat > /tmp/body.json << 'EOF'
{"search": "", "filter": "Type eq 'SemanticModel'", "pageSize": 1000}
EOF
az rest --method post \
  --resource "https://api.fabric.microsoft.com" \
  --url "https://api.fabric.microsoft.com/v1/catalog/search" \
  --body @/tmp/body.json

Save search results to file

cat > /tmp/body.json << 'EOF'
{"search": "", "filter": "Type eq 'Lakehouse'", "pageSize": 1000}
EOF
az rest --method post \
  --resource "https://api.fabric.microsoft.com" \
  --url "https://api.fabric.microsoft.com/v1/catalog/search" \
  --body @/tmp/body.json \
  --query "value[].{name:displayName, type:type, workspace:hierarchy.workspace.displayName, id:id}" \
  --output json > /tmp/search_results.json

---

Gotchas and Troubleshooting

SymptomCauseFix
401 UnauthorizedWrong token audience or expired sessionVerify --resource "https://api.fabric.microsoft.com". Run az login.
InvalidPageSizepageSize outside 1–1000Use a value between 1 and 1000.
InvalidFilterBad filter syntaxOnly eq, ne, or, and parentheses. Don't mix eq with and, or ne with or. Don't mix eq and ne in the same filter.
TypeNotFoundUnrecognized item type in filterCheck spelling (case-sensitive). See API reference for valid types.
FilterTooManyValuesFilter has more than 500 valuesReduce the number of type values in the filter.
InvalidRequestMissing request bodyEnsure --body points to a valid JSON file.
Empty results for known itemItem type not supportedDataflow Gen1/Gen2 are excluded. Use GET /v1/workspaces/{id}/items instead.
New item not foundCatalog index propagation delayNewly created items can take up to 24 hours to appear in search results. Verify the item exists via GET /v1/workspaces/{id}/items instead.
Too many resultsSearch text too broadAdd a type filter or use more specific search text.

Related skills

FAQ

Can search-consumption-cli find workspaces by name?

No. Catalog Search returns items. Use GET /v1/workspaces to resolve workspace names.

Why are Dataflow items missing from search results?

Dataflow Gen1 and Gen2 are not supported in Catalog Search yet; list workspace items instead.

Is search-consumption-cli safe to install?

Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.