mcpField
S
semantic-model-consumption

semantic-model-consumption

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

semantic-model-consumption について

semantic-model-consumption は、Power BI セマンティックモデルを調査し、DAX クエリを実行する読み取り専用スキルです。FabricIQ MCP ツールでモデルを発見し、INFO 関数でメタデータを段階的に調べます。

主な機能

  1. 01セマンティックモデルとスキーマの発見
  2. 02INFO 関数によるメタデータ調査
  3. 03読み取り専用 DAX クエリの実行
  4. 04オブジェクト依存関係とリレーションの確認
  5. 05必要なメタデータの絞り込みと射影

活用シーン

  1. 01モデル内のテーブル、列、メジャーの一覧化
  2. 02リレーションとフィルター動作の確認
  3. 03メジャーやオブジェクトの依存関係の追跡
  4. 04分析用のモデルデータのクエリ

MCP 対応

このスキルは FabricIQ MCP サーバーの DiscoverArtifacts、GetSemanticModelSchema、ExecuteQuery などを呼び出し、モデルの発見、スキーマの確認、DAX クエリの実行を行います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/microsoft/skills-for-fabric --skill semantic-model-consumption

インストール後、Claude Code で/semantic-model-consumptionを入力して読み込まれたか確認します。

同梱ファイル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 セマンティックモデルの利用

目次

タスクリファレンス備考
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 を使った検出、トークン/オーディエンスのパターン。

必須/推奨/回避

必ず行うこと
  • 検出と実行には MCP ツールを呼び出します — DiscoverArtifacts を使用してセマンティックモデルの GUID を見つけ、ExecuteQuery を使用して DAX クエリを実行します。これらは MCP ツールの呼び出しであり、シェルコマンドではありません。検出や呼び出しに az rest、Get-Command、PowerShell スクリプトを使用しないでください。
  • このスキルは読み取り専用にします。メタデータの検出と分析用 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

クエリの実行

FabricIQ MCP server のツールを直接使用し、MCP ツールの呼び出しとして実行します。

パラメーター説明
artifactId対象のセマンティックモデルの GUID
daxQueries1~4 個の DAX クエリの配列(各クエリには単一の EVALUATE ステートメントを含める必要があります)
maxRows任意。既定値は 250、クエリごとの最大行数は 1,000 です
artifact ID の確認方法
  1. 推奨:searchQuery にモデル名を、artifactTypes: ["SemanticModel"] に設定して、DiscoverArtifacts(MCP ツール)を呼び出します。
  2. MCP による検出を利用できない場合のみの代替手段:Fabric REST(az rest)経由で解決します。ワークスペース内の SemanticModel 型のアイテムを一覧表示し、displayName で絞り込みます。
クエリの実行

ExecuteQuery MCP ツールを直接呼び出します。

ExecuteQuery(
  artifactId = "<SEMANTIC_MODEL_GUID>",
  daxQueries = ["EVALUATE SUMMARIZECOLUMNS(...)"]
)
最初にスキーマを取得する

DAX を記述する前に、GetSemanticModelSchema(artifactId = "<SEMANTIC_MODEL_GUID>") を呼び出して、テーブル、列、メジャーの定義を取得します。

トラブルシューティング

  • MCP サーバーで ExecuteQuery 機能を利用できません
    • 問題: アクティブなツール一覧に ExecuteQuery がないため、クエリの実行を開始できません。
    • 原因: FabricIQ MCP サーバーが登録されていない、読み込まれていない、または現在のクライアントセッションのツールメタデータが古くなっています。
    • 解決策: アクティブな MCP サーバー/ツールの一覧を確認し、ExecuteQuery が公開されていることを確かめてください。
  • 高度な INFO 関数で権限エラーが発生します
    • 問題: INFO.* に対するクエリが、認証または権限に関するエラーで失敗します。
    • 原因: 多くの INFO.* 関数には、標準的な読み取りアクセス権を超えるセマンティックモデルの昇格されたアクセス許可が必要です。
    • 解決策: 読み取り中心の探索には、まず INFO.VIEW.* 関数を使用してください。
  • メタデータの出力量が多すぎて、目的を絞った分析ができません
    • 問題: メタデータの全行セットを返すとプロパティが多すぎて、作業コンテキストが圧迫されます。
    • 原因: 範囲を限定していない INFO.VIEW.* および INFO.* クエリは、現在のタスクには不要な場合が多い、広範なオブジェクト/プロパティの情報を返します。
    • 解決策: discovery-queries.md § Scope Estimation Queries の範囲推定クエリを使用して範囲を推定し、出力スキーマを調べてから、discovery-queries.md § Narrowing Results (Projection + Filtering) の例に従って射影とフィルタリングで結果を絞り込んでください。
  • ロールメンバーシップの取得に INFO DAX 関数を使用しないでください
    • 問題: INFO.ROLEMEMBERSHIPS() が空の結果、または不完全な結果を返します。
    • 原因: ロールメンバーはモデル定義ではなく、デプロイ後にサービスレベル(Entra ID)で割り当てられるため、DAX INFO 関数では確実に取得できません。
    • 解決策: ロールメンバーシップ管理に関する最新のガイダンスは、ロールメンバーシップの管理に関するドキュメントを参照してください。

例

依存関係のパターンを含むクエリカタログ全体については、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

コメント