AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Power Automate Governance

skill-ninihen1-power-automate-mcp-skills-power-automate-governance · by ninihen1

>-

No reviews yet
0 installs
22 views
0.0% view→install

Install

$ agentstack add skill-ninihen1-power-automate-mcp-skills-power-automate-governance

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-ninihen1-power-automate-mcp-skills-power-automate-governance)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Power Automate Governance? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Power Automate Governance with FlowStudio MCP

Classify, tag, and govern Power Automate flows at scale through the FlowStudio MCP cached store — without Dataverse, without the CoE Starter Kit, and without the Power Automate portal.

This skill uses the same store_* tool family as power-automate-monitoring, but with a different intent: governance writes metadata (update_store_flow) and reads for audit and classification outcomes. Monitoring reads the same tools for operational health outcomes. Don't try to memorize which skill "owns" which tool — pick by what the user is doing. For health checks and failure-rate dashboards, load power-automate-monitoring instead.

> ⚠️ Pro+ subscription required. This skill calls store_* tools that > only work for FlowStudio for Teams or MCP Pro+ subscribers. > > If the user does not have Pro+ access: the first store_* tool call > will return a 403/404 error. When that happens: > 1. STOP calling store tools > 2. Tell the user governance features require a Pro+ subscription > 3. Link them to https://mcp.flowstudio.app/pricing > > Discovery: load tool schemas via the meta-tools rather than tools/list — > call tool_search with query: "skill:governance" for the canonical bundle, > or query: "select:update_store_flow" for a single tool. This skill covers > workflow patterns and field semantics — things tool_search cannot tell you. > If this document disagrees with a real API response, the API wins.


Critical: How to Extract Flow IDs

list_store_flows returns id in format .. You must split on the first . to get environmentName and flowName for all other tools:

id = "Default-."
environmentName = "Default-"    (everything before first ".")
flowName = ""                  (everything after first ".")

Also: skip entries that have no displayName or have state=Deleted — these are sparse records or flows that no longer exist in Power Automate. If a deleted flow has monitor=true, suggest disabling monitoring (update_store_flow with monitor=false) to free up a monitoring slot (standard plan includes 20).


The Write Tool: update_store_flow

update_store_flow writes governance metadata to the Flow Studio cache only — it does NOT modify the flow in Power Automate. These fields are not visible via get_live_flow or the PA portal. They exist only in the Flow Studio store and are used by Flow Studio's scanning pipeline and notification rules.

This means:

  • ownerTeam / supportEmail — sets who Flow Studio considers the

governance contact. Does NOT change the actual PA flow owner.

  • rule_notify_email — sets who receives Flow Studio failure/missing-run

notifications. Does NOT change Microsoft's built-in flow failure alerts.

  • monitor / critical / businessImpact — Flow Studio classification

only. Power Automate has no equivalent fields.

Merge semantics — only fields you provide are updated. Returns the full updated record (same shape as get_store_flow).

Required parameters: environmentName, flowName. All other fields optional.

Settable Fields

| Field | Type | Purpose | |---|---|---| | monitor | bool | Enable run-level scanning (standard plan: 20 flows included) | | rule_notify_onfail | bool | Send email notification on any failed run | | rule_notify_onmissingdays | number | Send notification when flow hasn't run in N days (0 = disabled) | | rule_notify_email | string | Comma-separated notification recipients | | description | string | What the flow does | | tags | string | Classification tags (also auto-extracted from description #hashtags) | | businessImpact | string | Low / Medium / High / Critical | | businessJustification | string | Why the flow exists, what process it automates | | businessValue | string | Business value statement | | ownerTeam | string | Accountable team | | ownerBusinessUnit | string | Business unit | | supportGroup | string | Support escalation group | | supportEmail | string | Support contact email | | critical | bool | Designate as business-critical | | tier | string | Standard or Premium | | security | string | Security classification or notes |

> Caution with security: The security field on get_store_flow > contains structured JSON (e.g. {"triggerRequestAuthenticationType":"All"}). > Writing a plain string like "reviewed" will overwrite this. To mark a > flow as security-reviewed, use tags instead.


Governance Workflows

1. Compliance Detail Review

Identify flows missing required governance metadata.

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)

Common compliance fields: description, businessImpact, businessJustification, ownerTeam, supportEmail, monitor, rule_notify_onfail, critical. Ask for the user's policy before flagging.

2. Orphaned Resource Detection

Find flows owned by deleted or disabled Azure AD accounts.

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 does not transfer actual PA ownership; use the admin center or PowerShell for that. Some orphaned-looking flows are system-generated; tag them instead of reassigning when appropriate. Store coverage is only as fresh as the latest scan.

3. Archive Score Calculation

Compute an inactivity score (0-7) per flow to identify cleanup candidates.

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 ")
   → 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

This changes Flow Studio governance contacts, not actual PA ownership. Power Apps ownership changes are manual/admin-center work.

8. Security Review

Review flows for potential security concerns using cached store data.

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 signals: security.triggerRequestAuthenticationType, sharingType, connections, referencedResources, tier. Never overwrite the structured security field; tag reviewed flows instead.

9. Environment Governance

Audit environments for compliance and sprawl.

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. Governance Dashboard

Generate a tenant-wide governance summary.

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

Field Reference: get_store_flow Fields Used in Governance

All fields below are confirmed present on the get_store_flow response. Fields marked with * are also available on list_store_flows (cheaper).

| Field | Type | Governance use | |---|---|---| | displayName | string | Archive score (test/demo name detection) | | state | string | Archive score, lifecycle management | | tier | string | License audit (Standard vs Premium) | | monitor | bool | Is this flow being actively monitored? | | critical | bool | Business-critical designation (settable via updatestoreflow) | | businessImpact | string | Compliance classification | | businessJustification | string | Compliance attestation | | ownerTeam | string | Ownership accountability | | supportEmail | string | Escalation contact | | rule_notify_onfail | bool | Failure alerting configured? | | rule_notify_onmissingdays | number | SLA monitoring configured? | | rule_notify_email | string | Alert recipients | | description | string | Documentation completeness | | tags | string | Classification — list_store_flows shows description-extracted hashtags only; store tags written by update_store_flow require get_store_flow to read back | | runPeriodTotal | number | Activity level | | runPeriodFailRate | number | Health status | | runLast | ISO string | Last run timestamp | | scanned | ISO string | Data freshness | | deleted | bool | Lifecycle tracking | | createdTime | ISO string | Archive score (age) | | lastModifiedTime * | ISO string | Archive score (staleness) | | owners | JSON string | Orphan detection, ownership audit — parse with json.loads() | | connections | JSON string | Connector audit, tier — parse with json.loads() | | complexity | JSON string | Archive score (simplicity) — parse with json.loads() | | security | JSON string | Auth type audit — parse with json.loads(), contains triggerRequestAuthenticationType | | sharingType | string | Oversharing detection (top-level, NOT inside security) | | referencedResources | JSON string | URL audit — parse with json.loads() |


Related Skills

  • power-automate-monitoring — Health checks, failure rates, inventory (read-only)
  • power-automate-mcp — Foundation skill: connection setup, MCP helper, tool discovery
  • power-automate-debug — Deep diagnosis with action-level inputs/outputs
  • power-automate-build — Build and deploy flow definitions

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.