powerbi-consumption-cli について
powerbi-consumption-cli は、DAX クエリで Power BI セマンティックモデルを読み取り専用で調べるスキルです。テーブル一覧から詳細なモデル情報へ段階的に進み、対象を絞ったクエリとモデル変更の回避を案内します。
主な機能
- 01テーブル、列、メジャー、リレーションシップの調査
- 02DAX INFO.VIEW と INFO 関数の利用
- 03範囲を絞ったメタデータ・依存関係クエリ
- 04分析用 DAX クエリの実行
- 05読み取り専用操作に限定
活用シーン
- 01分析前のセマンティックモデルの棚卸し
- 02メジャーやリレーションシップの確認
- 03モデルオブジェクト間の依存関係の追跡
- 04セマンティックモデルへのデータクエリ
MCP 対応
README では、ExecuteQuery を Fabric MCP サーバー経由で利用できる想定とし、機能がない場合のトラブルシューティングを記載しています。このスキル自体を MCP サーバーやクライアントとは説明していません。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ microsoft/ skills-for-fabric --skill powerbi-consumption-cliインストール後、Claude Code で/powerbi-consumption-cliを入力して読み込まれたか確認します。
同梱ファイルreferences/discovery-queries.md
詳細
更新の確認 — セッションごとに1回(必須) このスキルをセッション中に初めて使用する際は、続行する前に check-updates スキルを実行してください。
- GitHub Copilot CLI / VS Code:
check-updatesスキルを呼び出してください。- Claude Code / Cowork / Cursor / Windsurf / Codex:ローカルとリモートの package.json のバージョンを比較してください。
- セッション中にすでに確認済みの場合はスキップしてください。
重要な注意事項
- ワークスペース名から詳細(ID を含む)を取得するには、すべてのワークスペースを一覧表示し、その後、JMESPath フィルタリングを使用してください。
- ワークスペース ID、アイテムの種類、アイテム名からアイテムの詳細(ID を含む)を取得するには、そのワークスペース内の該当する種類のアイテムをすべて一覧表示し、その後、JMESPath フィルタリングを使用してください。
Power BI セマンティックモデルの利用 — CLI スキル
目次
| タスク | リファレンス | 備考 |
|---|---|---|
| Fabric のワークスペースとアイテムを検索する | COMMON-CLI.md § Fabric のワークスペースとアイテムを検索する | 必須 — 最初にリンクを読むこと [名前によるワークスペース ID の検索、または名前、アイテムの種類、ワークスペース ID によるアイテム ID の検索に必要です] |
| Fabric のトポロジと主要な概念 | COMMON-CORE.md § Fabric のトポロジと主要な概念 | 階層構造、Fabric 内の項目の検索 |
| 環境 URL | COMMON-CORE.md § 環境 URL | 本番環境(パブリッククラウド) |
| 認証とトークンの取得 | COMMON-CORE.md § 認証とトークンの取得 | オーディエンスが正しくないと 401 が発生します。トークンのオーディエンス、委任アクセス許可とアプリケーションアクセス許可、OAuth フロー、ID の種類、Entra アプリの登録について説明します |
| コア コントロール プレーン REST API | COMMON-CORE.md § コア コントロール プレーン REST API | ワークスペース/アイテムの CRUD、名前による解決、ページネーション、LRO のポーリング、レート制限のパターンを含みます |
| OneLake のデータアクセス | COMMON-CORE.md § OneLake のデータアクセス | Fabric トークンではなく、storage.azure.com トークンが必要です。URL 構造、ADLS Gen2 との同等性、ショートカットについて説明します |
| ジョブの実行 | COMMON-CORE.md § ジョブの実行 | オンデマンド ジョブの実行、ジョブの取得/キャンセル |
| キャパシティ管理 | COMMON-CORE.md § キャパシティ管理 | キャパシティの一覧表示、ワークスペースのキャパシティへの割り当て |
| 注意点、ベストプラクティス、トラブルシューティング | COMMON-CORE.md § 注意点、ベストプラクティス、トラブルシューティング | よくあるエラー、ベストプラクティス |
| ツール選定の根拠 | COMMON-CLI.md § ツール選定の根拠 | |
| 認証のレシピ | COMMON-CLI.md § 認証のレシピ | az login のフロー、環境の検出、トークンの取得、デバッグ |
az rest による Fabric コントロール プレーン API | COMMON-CLI.md § az rest による Fabric コントロール プレーン API | 必ず --resource を指定してください。ワークスペース/アイテムの操作、ページネーション、LRO のパターンを含みます |
curl による OneLake のデータアクセス | COMMON-CLI.md § curl による OneLake のデータアクセス | az rest ではなく curl を使用します(トークンのオーディエンスが異なるため)。ファイルの一覧表示/読み取り/アップロード/削除、ディレクトリの作成 |
| SQL/TDS データ プレーン アクセス | COMMON-CLI.md § SQL/TDS データ プレーン アクセス | sqlcmd(Go)による接続、クエリ、CSV エクスポート、サービス プリンシパル認証、接続パラメーターの特定 |
| ジョブの実行(CLI) | COMMON-CLI.md § ジョブの実行 | ノートブック/パイプラインの実行、セマンティック モデルの更新、ジョブの確認/キャンセル |
| OneLake ショートカット | COMMON-CLI.md § OneLake ショートカット | ショートカットの作成、ショートカットの一覧表示、ショートカットの削除 |
| キャパシティ管理(CLI) | COMMON-CLI.md § キャパシティ管理 | キャパシティの一覧表示、ワークスペースのキャパシティへの割り当て |
| 複合レシピ | COMMON-CLI.md § 複合レシピ | ワークスペース→レイクハウス→ファイル、SQL エンドポイント→クエリ、ノートブックの実行を一貫して行うレシピ |
| 注意点とトラブルシューティング(CLI 固有) | COMMON-CLI.md § 注意点とトラブルシューティング(CLI 固有) | |
| クイックリファレンス | COMMON-CLI.md § クイックリファレンス | az rest のテンプレート、トークンのオーディエンス ↔ CLI ツールの対応表 |
| 前提条件 | SKILL.md § 前提条件 | |
| 必須/推奨/回避 | SKILL.md § 必須/推奨/回避 | 読み取り専用のセマンティック モデル使用に関するガードレール。必須事項、推奨事項、回避事項 |
| メタデータの探索 | SKILL.md § メタデータの探索 | INFO.VIEW.* 関数と INFO.* 関数。 |
| 推奨される探索順序 | SKILL.md § 推奨される探索順序 | メタデータを調査する際の推奨順序 |
| よく使われる INFO 関数 | SKILL.md § よく使われる INFO 関数 | 初回探索で使用頻度の高い関数の一覧 |
| INFO 関数の全カタログ(動的) | discovery-queries.md § INFO 関数の全カタログ(動的) | |
| メタデータ オブジェクト → INFO 関数の対応表 | SKILL.md § メタデータ オブジェクト → INFO 関数の対応表 | オブジェクトを中心に探索するためのインライン対応表 |
| クエリの実行 | SKILL.md § クエリの実行 | ExecuteQuery の使用形式 |
| トラブルシューティング | SKILL.md § トラブルシューティング | よくある実行およびメタデータの問題の解決 |
| 例 | SKILL.md § 例 | メタデータ クエリの例、データ クエリの例 |
| スコープ推定クエリ | discovery-queries.md § スコープ推定クエリ | |
| INFO の出力列 | discovery-queries.md § INFO の出力列 | INFO.VIEW.(初回のメタデータ探索に推奨)、重要な INFO.(詳細なメタデータ/診断) |
| 結果の絞り込み(射影+フィルター処理) | discovery-queries.md § 結果の絞り込み(射影+フィルター処理) | |
| 詳細なメタデータ クエリ | discovery-queries.md § 詳細なメタデータ クエリ | |
| 依存関係の探索 | discovery-queries.md § 依存関係の探索 | DAX クエリの依存関係行セット、メジャーに限定した依存関係の行、逆方向の依存関係(メジャーを参照しているもの) |
前提条件
- COMMON-CORE.md — Fabric の概念、認証、コントロールプレーン API のコンテキスト。
- COMMON-CLI.md — CLI を使った検出、トークン/オーディエンスのパターン。
必須/推奨/回避
必ず行うこと
- このスキルは読み取り専用にしてください。メタデータの検出と分析用 DAX クエリのみを行います。
- DAX データクエリと
INFO.VIEW.*は、セマンティックモデルへの読み取りアクセス権を持つすべてのユーザーが利用できるものとして扱ってください。それ以外のINFO.*関数には、昇格された権限が必要な場合があることを想定してください。 - ワークスペースとセマンティックモデルアイテムの ID は動的に解決してください。ID をハードコードしないでください。
- データクエリを作成する前に、メタデータの検出に DAX
INFO.VIEW.*/INFO.*を使用してください。
推奨事項
- 反復的にクエリを改良する前に、セマンティックモデルのスコープ(
artifactId)を早い段階で検証してください。 - セマンティックモデルのスキーマは段階的に検出してください。スキーマ全体を最初から取得するのではなく、フィルターと射影を使った
INFO.VIEW.*/INFO.*呼び出し(例:SELECTCOLUMNSとFILTER)で、現在のタスクに直接関係する情報だけを取得してください。discovery-queries.md § 結果の絞り込み(射影+フィルタリング)を参照してください。 - ツールエンドポイントの移行リスクが低くなるよう、ガイダンスはプロバイダーに依存しないものにしてください。
回避すること
- このスキルでのモデル変更操作。
推奨される検出順序
- 詳細な検出に進む前に、discovery-queries.md § スコープ推定クエリを実行し、テーブル、列、メジャー、リレーションシップの数からメタデータの範囲を推定します。
- まず
INFO.VIEW.TABLES()を使って、テーブルの一覧をすばやく取得します。 INFO.VIEW.COLUMNS()とINFO.VIEW.MEASURES()を使って、セマンティックモデルの詳細情報を確認します。INFO.VIEW.RELATIONSHIPS()を使って、結合とフィルターの動作を検証します。- より高度なパターンについては、discovery-queries.mdのクエリカタログ全体を参照してください。
よく使用する INFO 関数
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
メタデータオブジェクト → INFO 関数マップ
| メタデータオブジェクト | 主な INFO 関数 |
|---|---|
| モデル | INFO.MODEL |
| テーブル | INFO.VIEW.TABLES |
| 列 | INFO.VIEW.COLUMNS、INFO.GROUPBYCOLUMNS、INFO.RELATEDCOLUMNDETAILS |
| メジャー | INFO.VIEW.MEASURES、INFO.FORMATSTRINGDEFINITIONS、INFO.DETAILROWSDEFINITIONS |
| リレーションシップ | INFO.VIEW.RELATIONSHIPS |
| パーティション | INFO.PARTITIONS、INFO.EXPRESSIONS、INFO.QUERYGROUPS、INFO.REFRESHPOLICIES、INFO.DATACOVERAGEDEFINITIONS |
| セキュリティロールとアクセス許可 | INFO.ROLES、INFO.TABLEPERMISSIONS、INFO.COLUMNPERMISSIONS |
| 階層 | INFO.HIERARCHIES、INFO.LEVELS、INFO.ATTRIBUTEHIERARCHIES、INFO.VARIATIONS |
| 計算グループ/項目 | INFO.CALCULATIONGROUPS、INFO.CALCULATIONITEMS、INFO.CALCULATIONEXPRESSIONS |
| パースペクティブ | INFO.PERSPECTIVES、INFO.PERSPECTIVETABLES、INFO.PERSPECTIVECOLUMNS、INFO.PERSPECTIVEHIERARCHIES、INFO.PERSPECTIVEMEASURES |
| カレンダー | INFO.CALENDARS、INFO.CALENDARCOLUMNGROUPS、INFO.CALENDARCOLUMNREFERENCES |
| カルチャ | INFO.CULTURES |
| オブジェクトの翻訳 | INFO.OBJECTTRANSLATIONS |
| 関数 | INFO.USERDEFINEDFUNCTIONS |
| 依存関係/リネージ | INFO.DEPENDENCIES、INFO.CHANGEDPROPERTIES、INFO.EXCLUDEDARTIFACTS |
| ストレージ内部情報/サイズ | 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 |
クエリの実行
次のペイロードの概念を使用する単一の ExecuteQuery 機能を使用します。
artifactId:対象のセマンティックモデル識別子。daxQuery:直接指定する DAX クエリテキスト。
一時的な実装に関する注記:現在のクエリ統合は、リリース前に
ExecuteQueryを公開するパブリック HTTP エンドポイントに置き換えられる予定です。
トラブルシューティング
- MCP サーバーで ExecuteQuery 機能を利用できません
- 問題: アクティブなツール一覧に
ExecuteQueryがないため、クエリの実行を開始できません。 - 原因: Fabric MCP サーバーが登録されていない、読み込まれていない、または現在のクライアントセッションのツールメタデータが古くなっています。
- 対処方法: アクティブな MCP サーバー/ツールの一覧を確認し、
ExecuteQueryが公開されていることを確認してください。
- 問題: アクティブなツール一覧に
- 高度な INFO 関数で権限エラーが発生します
- 問題:
INFO.*に対するクエリが、認証または権限に関連するエラーで失敗します。 - 原因: 多くの
INFO.*関数には、標準の読み取りアクセスを超える、セマンティックモデルの高度な権限が必要です。 - 対処方法: 読み取りを中心とした調査には、まず
INFO.VIEW.*関数を使用してください。
- 問題:
- メタデータの出力が大きすぎて、焦点を絞った分析ができません
- 問題: メタデータの全行セットを返すと、プロパティが多すぎて作業コンテキストを圧迫します。
- 原因: 範囲を限定しない
INFO.VIEW.*およびINFO.*クエリは、現在のタスクには不要なことが多い、広範なオブジェクト/プロパティ情報を返します。 - 対処方法: discovery-queries.md § 範囲の推定クエリのクエリを使用して範囲を推定し、出力スキーマを確認してから、discovery-queries.md § 結果の絞り込み(射影+フィルタリング)に示すように射影とフィルタリングで結果を絞り込んでください。
- ロールメンバーシップの取得に
INFODAX 関数を使用しないでください- 問題:
INFO.ROLEMEMBERSHIPS()が空の結果、または不完全な結果を返します。 - 原因: ロールメンバーはモデル定義ではなく、デプロイ後にサービスレベル(Entra ID)で割り当てられるため、DAX の
INFO関数では確実に取得できません。 - 対処方法: 代わりに Power BI REST API を使用してください。powerbi-authoring-cli § セキュリティロールのメンバーシップを参照してください。
- 問題:
例
依存関係のパターンを含むクエリの全カタログについては、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
コメント
Markdown 対応