mcpField
P
powerbi-consumption-cli

powerbi-consumption-cli

github.com/microsoftデータ・データベース1.3k62 回インストール3 週間前に更新
リポジトリ

powerbi-consumption-cli について

powerbi-consumption-cli は、DAX クエリで Power BI セマンティックモデルを読み取り専用で調べるスキルです。テーブル一覧から詳細なモデル情報へ段階的に進み、対象を絞ったクエリとモデル変更の回避を案内します。

主な機能

  1. 01テーブル、列、メジャー、リレーションシップの調査
  2. 02DAX INFO.VIEW と INFO 関数の利用
  3. 03範囲を絞ったメタデータ・依存関係クエリ
  4. 04分析用 DAX クエリの実行
  5. 05読み取り専用操作に限定

活用シーン

  1. 01分析前のセマンティックモデルの棚卸し
  2. 02メジャーやリレーションシップの確認
  3. 03モデルオブジェクト間の依存関係の追跡
  4. 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 のバージョンを比較してください。
  • セッション中にすでに確認済みの場合はスキップしてください。

重要な注意事項

  1. ワークスペース名から詳細(ID を含む)を取得するには、すべてのワークスペースを一覧表示し、その後、JMESPath フィルタリングを使用してください。
  2. ワークスペース ID、アイテムの種類、アイテム名からアイテムの詳細(ID を含む)を取得するには、そのワークスペース内の該当する種類のアイテムをすべて一覧表示し、その後、JMESPath フィルタリングを使用してください。

Power BI セマンティックモデルの利用 — CLI スキル

目次

タスクリファレンス備考
Fabric のワークスペースとアイテムを検索するCOMMON-CLI.md § Fabric のワークスペースとアイテムを検索する必須 — 最初にリンクを読むこと [名前によるワークスペース ID の検索、または名前、アイテムの種類、ワークスペース ID によるアイテム ID の検索に必要です]
Fabric のトポロジと主要な概念COMMON-CORE.md § Fabric のトポロジと主要な概念階層構造、Fabric 内の項目の検索
環境 URLCOMMON-CORE.md § 環境 URL本番環境(パブリッククラウド)
認証とトークンの取得COMMON-CORE.md § 認証とトークンの取得オーディエンスが正しくないと 401 が発生します。トークンのオーディエンス、委任アクセス許可とアプリケーションアクセス許可、OAuth フロー、ID の種類、Entra アプリの登録について説明します
コア コントロール プレーン REST APICOMMON-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 コントロール プレーン APICOMMON-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 § 結果の絞り込み(射影+フィルタリング)を参照してください。
  • ツールエンドポイントの移行リスクが低くなるよう、ガイダンスはプロバイダーに依存しないものにしてください。
回避すること
  • このスキルでのモデル変更操作。

推奨される検出順序

  1. 詳細な検出に進む前に、discovery-queries.md § スコープ推定クエリを実行し、テーブル、列、メジャー、リレーションシップの数からメタデータの範囲を推定します。
  2. まず INFO.VIEW.TABLES() を使って、テーブルの一覧をすばやく取得します。
  3. INFO.VIEW.COLUMNS() と INFO.VIEW.MEASURES() を使って、セマンティックモデルの詳細情報を確認します。
  4. INFO.VIEW.RELATIONSHIPS() を使って、結合とフィルターの動作を検証します。
  5. より高度なパターンについては、discovery-queries.mdのクエリカタログ全体を参照してください。

よく使用する INFO 関数

  • INFO.VIEW.TABLES
  • INFO.VIEW.MEASURES
  • INFO.VIEW.COLUMNS
  • INFO.VIEW.RELATIONSHIPS
  • INFO.PARTITIONS
  • INFO.MODEL
  • INFO.STORAGETABLECOLUMNSEGMENTS
  • INFO.DEPENDENCIES
  • INFO.EXPRESSIONS
  • INFO.ROLES
  • INFO.STORAGETABLECOLUMNS
  • INFO.CALCULATIONGROUPS
  • INFO.CALCULATIONITEMS
  • INFO.CULTURES
  • INFO.OBJECTTRANSLATIONS
  • INFO.USERDEFINEDFUNCTIONS
  • INFO.REFRESHPOLICIES
  • INFO.ATTRIBUTEHIERARCHYSTORAGES
  • INFO.COLUMNPARTITIONSTORAGES
  • INFO.COLUMNSTORAGES
  • INFO.DICTIONARYSTORAGES
  • INFO.HIERARCHYSTORAGES
  • INFO.PARTITIONSTORAGES
  • INFO.RELATIONSHIPINDEXSTORAGES
  • INFO.RELATIONSHIPSTORAGES
  • INFO.SEGMENTMAPSTORAGES
  • INFO.SEGMENTSTORAGES
  • INFO.STORAGEFOLDERS
  • INFO.STORAGEFILES
  • INFO.TABLESTORAGES
  • INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES
  • INFO.DELTATABLEMETADATASTORAGES
  • INFO.PARQUETFILESTORAGES
  • INFO.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 § 結果の絞り込み(射影+フィルタリング)に示すように射影とフィルタリングで結果を絞り込んでください。
  • ロールメンバーシップの取得に INFO DAX 関数を使用しないでください
    • 問題: 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

コメント