mcpField
F
flowstudio-power-automate-governance

flowstudio-power-automate-governance

github.com/githubクラウド・DevOps40.5k777 回インストール1 日前に更新
リポジトリ

flowstudio-power-automate-governance について

FlowStudioのキャッシュストアを使い、Power Automateフローのガバナンス監査とメタデータ更新を行うスキルです。分類、コンプライアンス確認、所有者への対応、テナント全体のガバナンスに利用でき、ストアツールにはFlowStudio for TeamsまたはMCP Pro+の契約が必要です。

主な機能

  1. 01フローのガバナンスメタデータ確認
  2. 02フローの分類とタグ付け
  3. 03監視と通知ルールの設定
  4. 04コネクターとセキュリティ情報の監査
  5. 05テナントガバナンスの集計

活用シーン

  1. 01必須のコンプライアンス項目がないフローの特定
  2. 02無効化されたアカウントに関連するフローの特定
  3. 03監視対象フローのコネクター利用状況の確認
  4. 04テナント全体のガバナンス概要の作成

MCP 対応

FlowStudio MCPのストアツールで、フロー、メーカー、環境、接続のキャッシュデータを読み取り、フローのガバナンスメタデータを更新します。これらのツールにはFlowStudio for TeamsまたはMCP Pro+のアクセス権が必要です。

インストール

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

$npx skills add https://github.com/github/awesome-copilot --skill flowstudio-power-automate-governance

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

詳細

FlowStudio MCP による Power Automate のガバナンス

FlowStudio MCP のキャッシュストアを通じて、大規模な Power Automate フローを分類、タグ付け、管理します。Dataverse、CoE Starter Kit、Power Automate ポータルは不要です。

このスキルは、flowstudio-power-automate-monitoring と同じ store_* ツールファミリーを使用しますが、目的は異なります。ガバナンスではメタデータを書き込み(update_store_flow)、監査と分類の結果を読み取ります。モニタリングでは、同じツールを使って運用状態の結果を読み取ります。どのスキルがどのツールを「担当」するかを覚える必要はありません。ユーザーが何をしようとしているかに応じて選んでください。稼働状況の確認や失敗率ダッシュボードには、代わりに flowstudio-power-automate-monitoring を読み込んでください。

⚠️ Pro+ サブスクリプションが必要です。 このスキルは、FlowStudio for Teams または MCP Pro+ のサブスクライバーのみが利用できる store_* ツールを呼び出します。

ユーザーが Pro+ にアクセスできない場合: 最初の store_* ツール呼び出しで 403/404 エラーが返されます。その場合は:

  1. ストアツールの呼び出しを中止します
  2. ガバナンス機能には Pro+ サブスクリプションが必要であることをユーザーに伝えます
  3. https://mcp.flowstudio.app/pricing を案内します

検出: tools/list ではなくメタツールを使ってツールスキーマを読み込みます。標準のツールセットには tool_search を query: "skill:governance" と指定して呼び出すか、単一のツールには query: "select:update_store_flow" と指定します。このスキルではワークフローのパターンとフィールドの意味を説明します。これらは tool_search では分かりません。このドキュメントと実際の API レスポンスの内容が異なる場合は、API の情報を優先します。


重要:フロー ID の抽出方法

list_store_flows は <environmentId>.<flowId> 形式の id を返します。他のすべてのツールで使用する environmentName と flowName を取得するには、最初の . で分割する必要があります:

id = "Default-<envGuid>.<flowGuid>"
environmentName = "Default-<envGuid>"    (everything before first ".")
flowName = "<flowGuid>"                  (everything after first ".")

また、displayName がないエントリや、state=Deleted のエントリはスキップしてください。これらは不完全なレコードか、Power Automate に存在しなくなったフローです。削除済みのフローで monitor=true の場合は、モニタリング枠を空けるためにモニタリングを無効化するよう提案してください(update_store_flow に monitor=false を指定します。標準プランには 20 枠が含まれます)。


書き込みツール:update_store_flow

update_store_flow はFlowStudio のキャッシュのみにガバナンスメタデータを書き込みます。Power Automate のフロー自体は変更しません。これらのフィールドは get_live_flow や PA ポータルからは確認できません。FlowStudio のストアにのみ存在し、FlowStudio のスキャンパイプラインと通知ルールで使用されます。

つまり、次のとおりです。

  • ownerTeam / supportEmail — FlowStudio がガバナンスの連絡先とみなす相手を設定します。実際の PA フロー所有者は変更しません。
  • rule_notify_email — FlowStudio の失敗通知/実行欠落通知の受信者を設定します。Microsoft 組み込みのフロー失敗アラートは変更しません。
  • monitor / critical / businessImpact — FlowStudio の分類にのみ使用します。Power Automate に相当するフィールドはありません。

マージの動作:指定したフィールドのみが更新されます。更新後のレコード全体を返します(get_store_flow と同じ形式です)。

必須パラメーター:environmentName、flowName。その他のフィールドはすべて任意です。

設定可能なフィールド
フィールド型用途
monitorbool実行レベルのスキャンを有効にします(標準プラン:20 フローを含む)
rule_notify_onfailbool実行が失敗した場合にメール通知を送信します
rule_notify_onmissingdaysnumberフローが N 日間実行されていない場合に通知します(0 = 無効)
rule_notify_emailstring通知先をカンマ区切りで指定します
descriptionstringフローの動作内容
tagsstring分類タグ(説明文の #hashtags からも自動抽出されます)
businessImpactstring低/中/高/重大
businessJustificationstringフローが存在する理由と、自動化するプロセス
businessValuestringビジネス価値の説明
ownerTeamstring責任を負うチーム
ownerBusinessUnitstring事業部門
supportGroupstringサポートのエスカレーショングループ
supportEmailstringサポート連絡先のメールアドレス
criticalboolビジネスクリティカルとして指定します
tierstring標準またはプレミアム
securitystringセキュリティ分類または注記

security に関する注意: get_store_flow の security フィールドには、 構造化された JSON(例:{"triggerRequestAuthenticationType":"All"})が含まれます。 "reviewed" のようなプレーンな文字列を書き込むと、この値が上書きされます。フローを セキュリティレビュー済みとしてマークするには、代わりに tags を使用してください。


ガバナンスのワークフロー

1. コンプライアンス詳細レビュー

必須のガバナンスメタデータが不足しているフローを特定します。

1. Ask the user which compliance fields they require
2. list_store_flows
3. For each active flow: split id, call get_store_flow, check required fields
4. Report non-compliant flows with missing fields listed
5. For updates: ask for values, then update_store_flow(...provided fields)

一般的なコンプライアンスフィールド:description、businessImpact、 businessJustification、ownerTeam、supportEmail、monitor、 rule_notify_onfail、critical。フラグを設定する前に、ユーザーのポリシーを確認してください。

2. 孤立したリソースの検出

削除済み、または無効化された Azure AD アカウントが所有するフローを検索します。

1. list_store_makers
2. Filter where deleted=true AND ownerFlowCount > 0
3. list_store_flows → collect all flows
4. For each active flow: split id, get_store_flow, parse owners JSON
5. Match owner principalId against orphaned maker id
6. Reassign governance contact or stop/tag for decommission

update_store_flow では実際の PA 所有者は変更されません。変更には管理センター または PowerShell を使用してください。孤立しているように見えるフローの中には、システムによって生成されたものもあります。適切な場合は再割り当てせずにタグを付けてください。ストアの情報は最新のスキャン時点までの内容です。

3. アーカイブスコアの計算

フローごとに非アクティブスコア(0~7)を計算し、整理候補を特定します。

1. list_store_flows
2. For each active flow: split id, get_store_flow
3. Add 1 point each: created≈modified, test/demo/temp/copy name, age >12mo,
   stopped/suspended, no owners, no recent runs, complexity.actions < 5
4. Score 5-7: recommend archive; 3-4: tag #archive-review; 0-2: active
5. For confirmed archive: set_live_flow_state(..., "Stopped") and append #archived

MCP によるアーカイブでは、フローを停止してタグを付けます。削除にはポータルまたは管理者用 PowerShell が必要です。

4. コネクタの監査

監視対象のフロー全体で、どのコネクタが使用されているかを監査します。DLP の影響分析やプレミアムライセンスの計画に役立ちます。

1. list_store_flows(monitor=true)
2. For each active flow: split id, get_store_flow, parse connections JSON
3. Group by apiName; flag Premium tier, HTTP connectors, custom connectors
4. Report inventory to user

可能な場合は監視対象のフローに範囲を絞ってください。get_store_flow の呼び出しには時間がかかります。 list_store_connections で一覧表示されるのは接続インスタンスであり、フローごとのコネクタ使用状況ではありません。DLP ポリシーは公開されていないため、コネクタの分類はユーザーに確認してください。

5. 通知ルールの管理

大規模なフロー群の監視とアラートを設定します。

Enable failure alerts on all critical flows:
1. list_store_flows(monitor=true)
2. For each active flow: split id, get_store_flow
3. If critical=true and rule_notify_onfail is false, update_store_flow(...,
   rule_notify_onfail=true, rule_notify_email="[email protected]")

Enable missing-run detection for scheduled flows:
1. list_store_flows(monitor=true)
2. For active Recurrence flows: get_store_flow
3. If rule_notify_onmissingdays is 0/missing, update_store_flow(...,
   rule_notify_onmissingdays=2)

monitor=true を一括で有効にする前に、監視の上限を確認してください。 critical=true のフローがない場合は、アラートを設定する前にガバナンス上のギャップとして報告してください。

6. 分類とタグ付け

コネクタの種類、ビジネス機能、リスクレベルに基づいてフローを一括分類します。

Auto-tag by connector:
1. list_store_flows
2. For each active flow: split id, get_store_flow, parse connections JSON
3. Map apiName values to tags (#sharepoint, #teams, #email, #custom-connector)
4. Read existing store tags, append new tags, update_store_flow(tags=...)

ストアのタグと説明文のハッシュタグは別々のシステムです。tags= はストアのタグを上書きするため、読み取り、追加、書き込みの順に行ってください。指示がない限り、計算済みの tier を上書きしないでください。

7. 作成者のオフボーディング

従業員が退職する際は、その従業員のフローとアプリを特定し、FlowStudio のガバナンス連絡先と通知先を再割り当てします。

1. get_store_maker(makerKey="<departing-user-aad-oid>")
   → check ownerFlowCount, ownerAppCount, deleted status
2. list_store_flows → collect all flows
3. For each active flow: split id, get_store_flow, parse owners JSON
4. Flag flows whose owner principalId matches the departing user's OID
5. list_store_power_apps → filter ownerId
6. For kept flows: update ownerTeam/supportEmail/rule_notify_email; consider
   add_live_flow_to_solution before account deletion
7. For retired flows: set_live_flow_state(..., "Stopped") and tag #decommissioned
8. Report: flows reassigned, flows migrated to solutions, flows stopped,
   apps needing manual reassignment

これは FlowStudio のガバナンス連絡先を変更するもので、実際の PA 所有者は変更されません。Power Apps の所有者の変更は、手動または管理センターで行う必要があります。

8. セキュリティレビュー

キャッシュされたストアデータを使用して、潜在的なセキュリティ上の懸念がないかフローを確認します。

1. list_store_flows(monitor=true)
2. For each active flow: split id, get_store_flow
3. Parse security/connections/referencedResources JSON; read sharingType top-level
4. Report findings; for reviewed flows append #security-reviewed tag

セキュリティシグナル:security.triggerRequestAuthenticationType、sharingType、 connections、referencedResources、tier。構造化された security フィールドは決して上書きしないでください。レビュー済みのフローには、代わりにタグを付けてください。

9. 環境のガバナンス

コンプライアンスと乱立状況について環境を監査します。

1. list_store_environments
   Skip entries without displayName (tenant-level metadata rows)
2. Flag:
   - Developer environments
   - Non-managed environments
   - Environments where service account lacks admin access (isAdmin=false)
3. list_store_flows → group by environmentName
4. list_store_connections → group by environmentName
10. ガバナンスダッシュボード

テナント全体のガバナンス概要を生成します。

Efficient metrics (list calls only):
1. total_flows = len(list_store_flows())
2. monitored = len(list_store_flows(monitor=true))
3. with_onfail = len(list_store_flows(rule_notify_onfail=true))
4. makers/apps/envs/conns = list_store_makers/list_store_power_apps/list_store_environments/list_store_connections
5. Compute monitoring %, notification %, orphan count, high-failure count

Detailed metrics (require get_store_flow per flow — expensive for large tenants):
- Compliance %: flows with businessImpact set / total active flows
- Undocumented count: flows without description
- Tier breakdown: group by tier field

フィールドリファレンス:ガバナンスで使用する get_store_flow のフィールド

以下のすべてのフィールドが get_store_flow のレスポンスに含まれていることを確認済みです。 * が付いたフィールドは list_store_flows でも利用できます(低コストです)。

フィールド型ガバナンスでの用途
displayName *stringアーカイブスコア(テスト/デモ名の検出)
state *stringアーカイブスコア、ライフサイクル管理
tierstringライセンス監査(Standard と Premium の比較)
monitor *boolこのフローは継続的に監視されていますか?
criticalboolビジネス上の重要性の指定(update_store_flow で設定可能)
businessImpactstringコンプライアンス分類
businessJustificationstringコンプライアンス証明
ownerTeamstring所有責任
supportEmailstringエスカレーション先の連絡先
rule_notify_onfailbool失敗アラートは設定されていますか?
rule_notify_onmissingdaysnumberSLA 監視は設定されていますか?
rule_notify_emailstringアラートの送信先
descriptionstringドキュメントの充実度
tagsstring分類 — list_store_flows で表示されるのは説明文から抽出されたハッシュタグのみです。update_store_flow で書き込まれたストアタグを読み戻すには、get_store_flow が必要です
runPeriodTotal *numberアクティビティレベル
runPeriodFailRate *numberヘルスステータス
runLastISO string最終実行のタイムスタンプ
scannedISO stringデータの鮮度
deletedboolライフサイクルの追跡
createdTime *ISO stringアーカイブスコア(経過時間)
lastModifiedTime *ISO stringアーカイブスコア(古さ)
ownersJSON string孤立したフローの検出、所有権監査 — json.loads() で解析します
connectionsJSON stringコネクタ監査、ティア — json.loads() で解析します
complexityJSON stringアーカイブスコア(単純さ) — json.loads() で解析します
securityJSON string認証タイプの監査 — json.loads() で解析します。triggerRequestAuthenticationType を含みます
sharingTypestring過剰共有の検出(最上位フィールドであり、security 内ではありません)
referencedResourcesJSON stringURL 監査 — json.loads() で解析します

関連スキル

  • flowstudio-power-automate-monitoring — ヘルスチェック、失敗率、インベントリ(読み取り専用)
  • flowstudio-power-automate-mcp — 基礎スキル:接続のセットアップ、MCP ヘルパー、ツールの検出
  • flowstudio-power-automate-debug — アクションレベルの入力/出力を用いた詳細な診断
  • flowstudio-power-automate-build — フロー定義の構築とデプロイ

コメント