All skills
github avatar

/flowstudio-power-automate-mcp

@0ccadfd official
by githubgithub/awesome-copilot40k stars
5,040

Foundation skill for Power Automate via FlowStudio MCP — auth setup, the reusable MCP helper (Python + Node.js), tool discovery via `list_skills` / `tool_search`, and oversized-response handling. Load this skill first when connecting an agent to Power Automate. For specialized workflows, load `flowstudio-power-automate-build`, `flowstudio-power-automate-debug`, `flowstudio-power-automate-monitoring` (Pro+), or `flowstudio-power-automate-governance` (Pro+) — each contains the workflow narrative, this skill provides the plumbing they all rely on. Requires a FlowStudio MCP subscription or compatible server — see https://mcp.flowstudio.app

Use this Skill: https://skilld.dev/gh/github/awesome-copilot/flowstudio-power-automate-mcp

This session only. Nothing lands on disk.

referencesaction-types.md

≈988 tokens on demand. Your agent reads this file only when SKILL.md points to it.

FlowStudio MCP — Action Types Reference

Compact lookup for recognising action types returned by get_live_flow. Use this to read and understand existing flow definitions.

For full copy-paste construction patterns, see the flowstudio-power-automate-build skill.


How to Read a Flow Definition

Every action has "type", "runAfter", and "inputs". The runAfter object declares dependencies: {"Previous": ["Succeeded"]}. Valid statuses: Succeeded, Failed, Skipped, TimedOut.


Action Type Quick Reference

Type Purpose Key fields to inspect Output reference
Compose Store/transform a value inputs (any expression) outputs('Name')
InitializeVariable Declare a variable inputs.variables[].{name, type, value} variables('name')
SetVariable Update a variable inputs.{name, value} variables('name')
IncrementVariable Increment a numeric variable inputs.{name, value} variables('name')
AppendToArrayVariable Push to an array variable inputs.{name, value} variables('name')
If Conditional branch expression.and/or, actions, else.actions —
Switch Multi-way branch expression, cases.{case, actions}, default —
Foreach Loop over array foreach, actions, operationOptions item() / items('Name')
Until Loop until condition expression, limit.{count, timeout}, actions —
Wait Delay inputs.interval.{count, unit} —
Scope Group / try-catch actions (nested action map) result('Name')
Terminate End run inputs.{runStatus, runError} —
OpenApiConnection Connector call (SP, Outlook, Teams…) inputs.host.{apiId, connectionName, operationId}, inputs.parameters outputs('Name')?['body/...']
OpenApiConnectionWebhook Webhook wait (approvals, adaptive cards) same as above body('Name')?['...']
Http External HTTP call inputs.{method, uri, headers, body} outputs('Name')?['body']
Response Return to HTTP caller inputs.{statusCode, headers, body} —
Query Filter array inputs.{from, where} body('Name') (filtered array)
Select Reshape/project array inputs.{from, select} body('Name') (projected array)
Table Array → CSV/HTML string inputs.{from, format, columns} body('Name') (string)
ParseJson Parse JSON with schema inputs.{content, schema} body('Name')?['field']
Expression Built-in function (e.g. ConvertTimeZone) kind, inputs body('Name')

Connector Identification

When you see type: OpenApiConnection, identify the connector from host.apiId:

apiId suffix Connector
shared_sharepointonline SharePoint
shared_office365 Outlook / Office 365
shared_teams Microsoft Teams
shared_approvals Approvals
shared_office365users Office 365 Users
shared_flowmanagement Flow Management

The operationId tells you the specific operation (e.g. GetItems, SendEmailV2, PostMessageToConversation). The connectionName maps to a GUID in properties.connectionReferences.


Common Expressions (Reading Cheat Sheet)

Expression Meaning
@outputs('X')?['body/value'] Array result from connector action X
@body('X') Direct body of action X (Query, Select, ParseJson)
@item()?['Field'] Current loop item's field
@triggerBody()?['Field'] Trigger payload field
@variables('name') Variable value
@coalesce(a, b) First non-null of a, b
@first(array) First element (null if empty)
@length(array) Array count
@empty(value) True if null/empty string/empty array
@union(a, b) Merge arrays — first wins on duplicates
@result('Scope') Array of action outcomes inside a Scope

Source: SKILL.md on GitHub

2 warnings16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill provides a foundation for connecting an AI agent to the FlowStudio MCP server for Power Automate management. It includes reusable helper functions and instructions for handling large data payloads. The low-risk rating is due to the inherent nature of third-party data ingestion and communication with a service outside the core trusted infrastructure.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: MEDIUM · 1 issue

  • Runlayer6mo

    4/5 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 0ccadfd. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 20 hours ago.

Activeupdated 4 weeks ago

README badge

README badge for github/awesome-copilot/flowstudio-power-automate-mcp

Provides authentication setup, JSON-RPC request/response handling, and tool discovery for Power Automate via FlowStudio MCP server. Load this skill first when connecting an agent to Power Automate; specialized workflow skills (build, debug, monitoring, governance) depend on it.

Generated from the current SKILL.md.

Do I need a FlowStudio subscription to use this skill?
Yes. This skill requires a FlowStudio MCP subscription or compatible Power Automate MCP server, along with an MCP endpoint, API key, and Power Platform environment name.
What should I load first when connecting an agent to Power Automate?
Load this foundation skill first. It provides auth setup, the MCP helper, and tool discovery. Then load one of the specialized skills (build, debug, monitoring, or governance) based on what the user is trying to accomplish.
Does this skill work with Python and Node.js?
Yes. The skill includes recommended helpers for both Python (using urllib.request) and Node.js 18+ (using built-in fetch). PowerShell is not recommended for flow operations due to JSON truncation issues.
How do I discover which tools are available?
Call `list_skills` for available bundles, then use `tool_search` with `query: "skill:<name>"` to load the full schema set for a specific bundle, or use free-text search for ambiguous requests.
What do I do if a tool response is too large for the context window?
The harness saves oversized responses to a file and returns the path. Parse the file by reading it as JSON, then parsing the escaped payload inside it; always extract only the fields you need and pass `actionName` to `get_live_flow_run_action_outputs` to limit results.

Generated from the current SKILL.md. These answers refresh after source changes.