{"id":"81605d19-b52b-4232-b142-f9c16496e14d","shortId":"2ajDfH","kind":"skill","title":"flowstudio-power-automate-mcp","tagline":">-","description":"# Power Automate via FlowStudio MCP\n\nThis skill lets AI agents read, monitor, and operate Microsoft Power Automate\ncloud flows programmatically through a **FlowStudio MCP server** — no browser,\nno UI, no manual steps.\n\n> **Real debugging examples**: [Expression error in child flow](https://github.com/ninihen1/power-automate-mcp-skills/blob/main/examples/fix-expression-error.md) |\n> [Data entry, not a flow bug](https://github.com/ninihen1/power-automate-mcp-skills/blob/main/examples/data-not-flow.md) |\n> [Null value crashes child flow](https://github.com/ninihen1/power-automate-mcp-skills/blob/main/examples/null-child-flow.md)\n\n> **Requires:** A [FlowStudio](https://mcp.flowstudio.app) MCP subscription (or\n> compatible Power Automate MCP server). You will need:\n> - MCP endpoint: `https://mcp.flowstudio.app/mcp` (same for all subscribers)\n> - API key / JWT token (`x-api-key` header — NOT Bearer)\n> - Power Platform environment name (e.g. `Default-<tenant-guid>`)\n\n---\n\n## Source of Truth\n\n| Priority | Source | Covers |\n|----------|--------|--------|\n| 1 | **Real API response** | Always trust what the server actually returns |\n| 2 | **`tools/list`** | Tool names, parameter names, types, required flags |\n| 3 | **SKILL docs & reference files** | Response shapes, behavioral notes, workflow recipes |\n\n> **Start every new session with `tools/list`.**\n> It returns the authoritative, up-to-date schema for every tool — parameter names,\n> types, and required flags. The SKILL docs cover what `tools/list` cannot tell you:\n> response shapes, non-obvious behaviors, and end-to-end workflow patterns.\n>\n> If any documentation disagrees with `tools/list` or a real API response,\n> the API wins.\n\n---\n\n## Recommended Language: Python or Node.js\n\nAll examples in this skill and the companion build / debug skills use **Python\nwith `urllib.request`** (stdlib — no `pip install` needed). **Node.js** is an\nequally valid choice: `fetch` is built-in from Node 18+, JSON handling is\nnative, and the async/await model maps cleanly onto the request-response pattern\nof MCP tool calls — making it a natural fit for teams already working in a\nJavaScript/TypeScript stack.\n\n| Language | Verdict | Notes |\n|---|---|---|\n| **Python** | ✅ Recommended | Clean JSON handling, no escaping issues, all skill examples use it |\n| **Node.js (≥ 18)** | ✅ Recommended | Native `fetch` + `JSON.stringify`/`JSON.parse`; async/await fits MCP call patterns well; no extra packages needed |\n| PowerShell | ⚠️ Avoid for flow operations | `ConvertTo-Json -Depth` silently truncates nested definitions; quoting and escaping break complex payloads. Acceptable for a quick `tools/list` discovery call but not for building or updating flows. |\n| cURL / Bash | ⚠️ Possible but fragile | Shell-escaping nested JSON is error-prone; no native JSON parser |\n\n> **TL;DR — use the Core MCP Helper (Python or Node.js) below.** Both handle\n> JSON-RPC framing, auth, and response parsing in a single reusable function.\n\n---\n\n## What You Can Do\n\nFlowStudio MCP has two access tiers. **FlowStudio for Teams** subscribers get\nboth the fast Azure-table store (cached snapshot data + governance metadata) and\nfull live Power Automate API access. **MCP-only subscribers** get the live tools —\nmore than enough to build, debug, and operate flows.\n\n### Live Tools — Available to All MCP Subscribers\n\n| Tool | What it does |\n|---|---|\n| `list_live_flows` | List flows in an environment directly from the PA API (always current) |\n| `list_live_environments` | List all Power Platform environments visible to the service account |\n| `list_live_connections` | List all connections in an environment from the PA API |\n| `get_live_flow` | Fetch the complete flow definition (triggers, actions, parameters) |\n| `get_live_flow_http_schema` | Inspect the JSON body schema and response schemas of an HTTP-triggered flow |\n| `get_live_flow_trigger_url` | Get the current signed callback URL for an HTTP-triggered flow |\n| `trigger_live_flow` | POST to an HTTP-triggered flow's callback URL (AAD auth handled automatically) |\n| `update_live_flow` | Create a new flow or patch an existing definition in one call |\n| `add_live_flow_to_solution` | Migrate a non-solution flow into a solution |\n| `get_live_flow_runs` | List recent run history with status, start/end times, and errors |\n| `get_live_flow_run_error` | Get structured error details (per-action) for a failed run |\n| `get_live_flow_run_action_outputs` | Inspect inputs/outputs of any action (or every foreach iteration) in a run |\n| `resubmit_live_flow_run` | Re-run a failed or cancelled run using its original trigger payload |\n| `cancel_live_flow_run` | Cancel a currently running flow execution |\n\n### Store Tools — FlowStudio for Teams Subscribers Only\n\nThese tools read from (and write to) the FlowStudio Azure table — a monitored\nsnapshot of your tenant's flows enriched with governance metadata and run statistics.\n\n| Tool | What it does |\n|---|---|\n| `list_store_flows` | Search flows from the cache with governance flags, run failure rates, and owner metadata |\n| `get_store_flow` | Get full cached details for a single flow including run stats and governance fields |\n| `get_store_flow_trigger_url` | Get the trigger URL from the cache (instant, no PA API call) |\n| `get_store_flow_runs` | Cached run history for the last N days with duration and remediation hints |\n| `get_store_flow_errors` | Cached failed-only runs with failed action names and remediation hints |\n| `get_store_flow_summary` | Aggregated stats: success rate, failure count, avg/max duration |\n| `set_store_flow_state` | Start or stop a flow via the PA API and sync the result back to the store |\n| `update_store_flow` | Update governance metadata (description, tags, monitor flag, notification rules, business impact) |\n| `list_store_environments` | List all environments from the cache |\n| `list_store_makers` | List all makers (citizen developers) from the cache |\n| `get_store_maker` | Get a maker's flow/app counts and account status |\n| `list_store_power_apps` | List all Power Apps canvas apps from the cache |\n| `list_store_connections` | List all Power Platform connections from the cache |\n\n---\n\n## Which Tool Tier to Call First\n\n| Task | Tool | Notes |\n|---|---|---|\n| List flows | `list_live_flows` | Always current — calls PA API directly |\n| Read a definition | `get_live_flow` | Always fetched live — not cached |\n| Debug a failure | `get_live_flow_runs` → `get_live_flow_run_error` | Use live run data |\n\n> ⚠️ **`list_live_flows` returns a wrapper object** with a `flows` array — access via `result[\"flows\"]`.\n\n> Store tools (`list_store_flows`, `get_store_flow`, etc.) are available to **FlowStudio for Teams** subscribers and provide cached governance metadata. Use live tools when in doubt — they work for all subscription tiers.\n\n---\n\n## Step 0 — Discover Available Tools\n\nAlways start by calling `tools/list` to confirm the server is reachable and see\nexactly which tool names are available (names may vary by server version):\n\n```python\nimport json, urllib.request\n\nTOKEN = \"<YOUR_JWT_TOKEN>\"\nMCP   = \"https://mcp.flowstudio.app/mcp\"\n\ndef mcp_raw(method, params=None, cid=1):\n    payload = {\"jsonrpc\": \"2.0\", \"method\": method, \"id\": cid}\n    if params:\n        payload[\"params\"] = params\n    req = urllib.request.Request(MCP, data=json.dumps(payload).encode(),\n        headers={\"x-api-key\": TOKEN, \"Content-Type\": \"application/json\",\n                 \"User-Agent\": \"FlowStudio-MCP/1.0\"})\n    try:\n        resp = urllib.request.urlopen(req, timeout=30)\n    except urllib.error.HTTPError as e:\n        raise RuntimeError(f\"MCP HTTP {e.code} — check token and endpoint\") from e\n    return json.loads(resp.read())\n\nraw = mcp_raw(\"tools/list\")\nif \"error\" in raw:\n    print(\"ERROR:\", raw[\"error\"]); raise SystemExit(1)\nfor t in raw[\"result\"][\"tools\"]:\n    print(t[\"name\"], \"—\", t[\"description\"][:60])\n```\n\n---\n\n## Core MCP Helper (Python)\n\nUse this helper throughout all subsequent operations:\n\n```python\nimport json, urllib.request\n\nTOKEN = \"<YOUR_JWT_TOKEN>\"\nMCP   = \"https://mcp.flowstudio.app/mcp\"\n\ndef mcp(tool, args, cid=1):\n    payload = {\"jsonrpc\": \"2.0\", \"method\": \"tools/call\", \"id\": cid,\n               \"params\": {\"name\": tool, \"arguments\": args}}\n    req = urllib.request.Request(MCP, data=json.dumps(payload).encode(),\n        headers={\"x-api-key\": TOKEN, \"Content-Type\": \"application/json\",\n                 \"User-Agent\": \"FlowStudio-MCP/1.0\"})\n    try:\n        resp = urllib.request.urlopen(req, timeout=120)\n    except urllib.error.HTTPError as e:\n        body = e.read().decode(\"utf-8\", errors=\"replace\")\n        raise RuntimeError(f\"MCP HTTP {e.code}: {body[:200]}\") from e\n    raw = json.loads(resp.read())\n    if \"error\" in raw:\n        raise RuntimeError(f\"MCP error: {json.dumps(raw['error'])}\")\n    text = raw[\"result\"][\"content\"][0][\"text\"]\n    return json.loads(text)\n```\n\n> **Common auth errors:**\n> - HTTP 401/403 → token is missing, expired, or malformed. Get a fresh JWT from [mcp.flowstudio.app](https://mcp.flowstudio.app).\n> - HTTP 400 → malformed JSON-RPC payload. Check `Content-Type: application/json` and body structure.\n> - `MCP error: {\"code\": -32602, ...}` → wrong or missing tool arguments.\n\n---\n\n## Core MCP Helper (Node.js)\n\nEquivalent helper for Node.js 18+ (built-in `fetch` — no packages required):\n\n```js\nconst TOKEN = \"<YOUR_JWT_TOKEN>\";\nconst MCP   = \"https://mcp.flowstudio.app/mcp\";\n\nasync function mcp(tool, args, cid = 1) {\n  const payload = {\n    jsonrpc: \"2.0\",\n    method: \"tools/call\",\n    id: cid,\n    params: { name: tool, arguments: args },\n  };\n  const res = await fetch(MCP, {\n    method: \"POST\",\n    headers: {\n      \"x-api-key\": TOKEN,\n      \"Content-Type\": \"application/json\",\n      \"User-Agent\": \"FlowStudio-MCP/1.0\",\n    },\n    body: JSON.stringify(payload),\n  });\n  if (!res.ok) {\n    const body = await res.text();\n    throw new Error(`MCP HTTP ${res.status}: ${body.slice(0, 200)}`);\n  }\n  const raw = await res.json();\n  if (raw.error) throw new Error(`MCP error: ${JSON.stringify(raw.error)}`);\n  return JSON.parse(raw.result.content[0].text);\n}\n```\n\n> Requires Node.js 18+. For older Node, replace `fetch` with `https.request`\n> from the stdlib or install `node-fetch`.\n\n---\n\n## List Flows\n\n```python\nENV = \"Default-<tenant-guid>\"\n\nresult = mcp(\"list_live_flows\", {\"environmentName\": ENV})\n# Returns wrapper object:\n# {\"mode\": \"owner\", \"flows\": [{\"id\": \"0757041a-...\", \"displayName\": \"My Flow\",\n#   \"state\": \"Started\", \"triggerType\": \"Request\", ...}], \"totalCount\": 42, \"error\": null}\nfor f in result[\"flows\"]:\n    FLOW_ID = f[\"id\"]   # plain UUID — use directly as flowName\n    print(FLOW_ID, \"|\", f[\"displayName\"], \"|\", f[\"state\"])\n```\n\n---\n\n## Read a Flow Definition\n\n```python\nFLOW = \"<flow-uuid>\"\n\nflow = mcp(\"get_live_flow\", {\"environmentName\": ENV, \"flowName\": FLOW})\n\n# Display name and state\nprint(flow[\"properties\"][\"displayName\"])\nprint(flow[\"properties\"][\"state\"])\n\n# List all action names\nactions = flow[\"properties\"][\"definition\"][\"actions\"]\nprint(\"Actions:\", list(actions.keys()))\n\n# Inspect one action's expression\nprint(actions[\"Compose_Filter\"][\"inputs\"])\n```\n\n---\n\n## Check Run History\n\n```python\n# Most recent runs (newest first)\nruns = mcp(\"get_live_flow_runs\", {\"environmentName\": ENV, \"flowName\": FLOW, \"top\": 5})\n# Returns direct array:\n# [{\"name\": \"08584296068667933411438594643CU15\",\n#   \"status\": \"Failed\",\n#   \"startTime\": \"2026-02-25T06:13:38.6910688Z\",\n#   \"endTime\": \"2026-02-25T06:15:24.1995008Z\",\n#   \"triggerName\": \"manual\",\n#   \"error\": {\"code\": \"ActionFailed\", \"message\": \"An action failed...\"}},\n#  {\"name\": \"08584296028664130474944675379CU26\",\n#   \"status\": \"Succeeded\", \"error\": null, ...}]\n\nfor r in runs:\n    print(r[\"name\"], r[\"status\"])\n\n# Get the name of the first failed run\nrun_id = next((r[\"name\"] for r in runs if r[\"status\"] == \"Failed\"), None)\n```\n\n---\n\n## Inspect an Action's Output\n\n```python\nrun_id = runs[0][\"name\"]\n\nout = mcp(\"get_live_flow_run_action_outputs\", {\n    \"environmentName\": ENV,\n    \"flowName\": FLOW,\n    \"runName\": run_id,\n    \"actionName\": \"Get_Customer_Record\"   # exact action name from the definition\n})\nprint(json.dumps(out, indent=2))\n```\n\n---\n\n## Get a Run's Error\n\n```python\nerr = mcp(\"get_live_flow_run_error\", {\n    \"environmentName\": ENV,\n    \"flowName\": FLOW,\n    \"runName\": run_id\n})\n# Returns:\n# {\"runName\": \"08584296068...\",\n#  \"failedActions\": [\n#    {\"actionName\": \"HTTP_find_AD_User_by_Name\", \"status\": \"Failed\",\n#     \"code\": \"NotSpecified\", \"startTime\": \"...\", \"endTime\": \"...\"},\n#    {\"actionName\": \"Scope_prepare_workers\", \"status\": \"Failed\",\n#     \"error\": {\"code\": \"ActionFailed\", \"message\": \"An action failed...\"}}\n#  ],\n#  \"allActions\": [\n#    {\"actionName\": \"Apply_to_each\", \"status\": \"Skipped\"},\n#    {\"actionName\": \"Compose_WeekEnd\", \"status\": \"Succeeded\"},\n#    ...\n#  ]}\n\n# The ROOT cause is usually the deepest entry in failedActions:\nroot = err[\"failedActions\"][-1]\nprint(f\"Root failure: {root['actionName']} → {root['code']}\")\n```\n\n---\n\n## Resubmit a Run\n\n```python\nresult = mcp(\"resubmit_live_flow_run\", {\n    \"environmentName\": ENV,\n    \"flowName\": FLOW,\n    \"runName\": run_id\n})\nprint(result)   # {\"resubmitted\": true, \"triggerName\": \"...\"}\n```\n\n---\n\n## Cancel a Running Run\n\n```python\nmcp(\"cancel_live_flow_run\", {\n    \"environmentName\": ENV,\n    \"flowName\": FLOW,\n    \"runName\": run_id\n})\n```\n\n> ⚠️ **Do NOT cancel a run that shows `Running` because it is waiting for an\n> adaptive card response.** That status is normal — the flow is paused waiting\n> for a human to respond in Teams. Cancelling it will discard the pending card.\n\n---\n\n## Full Round-Trip Example — Debug and Fix a Failing Flow\n\n```python\n# ── 1. Find the flow ─────────────────────────────────────────────────────\nresult = mcp(\"list_live_flows\", {\"environmentName\": ENV})\ntarget = next(f for f in result[\"flows\"] if \"My Flow Name\" in f[\"displayName\"])\nFLOW_ID = target[\"id\"]\n\n# ── 2. Get the most recent failed run ────────────────────────────────────\nruns = mcp(\"get_live_flow_runs\", {\"environmentName\": ENV, \"flowName\": FLOW_ID, \"top\": 5})\n# [{\"name\": \"08584296068...\", \"status\": \"Failed\", ...}, ...]\nRUN_ID = next(r[\"name\"] for r in runs if r[\"status\"] == \"Failed\")\n\n# ── 3. Get per-action failure breakdown ──────────────────────────────────\nerr = mcp(\"get_live_flow_run_error\", {\"environmentName\": ENV, \"flowName\": FLOW_ID, \"runName\": RUN_ID})\n# {\"failedActions\": [{\"actionName\": \"HTTP_find_AD_User_by_Name\", \"code\": \"NotSpecified\",...}], ...}\nroot_action = err[\"failedActions\"][-1][\"actionName\"]\nprint(f\"Root failure: {root_action}\")\n\n# ── 4. Read the definition and inspect the failing action's expression ───\ndefn = mcp(\"get_live_flow\", {\"environmentName\": ENV, \"flowName\": FLOW_ID})\nacts = defn[\"properties\"][\"definition\"][\"actions\"]\nprint(\"Failing action inputs:\", acts[root_action][\"inputs\"])\n\n# ── 5. Inspect the prior action's output to find the null ────────────────\nout = mcp(\"get_live_flow_run_action_outputs\", {\n    \"environmentName\": ENV, \"flowName\": FLOW_ID,\n    \"runName\": RUN_ID, \"actionName\": \"Compose_Names\"\n})\nnulls = [x for x in out.get(\"body\", []) if x.get(\"Name\") is None]\nprint(f\"{len(nulls)} records with null Name\")\n\n# ── 6. Apply the fix ─────────────────────────────────────────────────────\nacts[root_action][\"inputs\"][\"parameters\"][\"searchName\"] = \\\n    \"@coalesce(item()?['Name'], '')\"\n\nconn_refs = defn[\"properties\"][\"connectionReferences\"]\nresult = mcp(\"update_live_flow\", {\n    \"environmentName\": ENV, \"flowName\": FLOW_ID,\n    \"definition\": defn[\"properties\"][\"definition\"],\n    \"connectionReferences\": conn_refs\n})\nassert result.get(\"error\") is None, f\"Deploy failed: {result['error']}\"\n# ⚠️ error key is always present — only fail if it is NOT None\n\n# ── 7. Resubmit and verify ───────────────────────────────────────────────\nmcp(\"resubmit_live_flow_run\", {\"environmentName\": ENV, \"flowName\": FLOW_ID, \"runName\": RUN_ID})\n\nimport time; time.sleep(30)\nnew_runs = mcp(\"get_live_flow_runs\", {\"environmentName\": ENV, \"flowName\": FLOW_ID, \"top\": 1})\nprint(new_runs[0][\"status\"])   # Succeeded = done\n```\n\n---\n\n## Auth & Connection Notes\n\n| Field | Value |\n|---|---|\n| Auth header | `x-api-key: <JWT>` — **not** `Authorization: Bearer` |\n| Token format | Plain JWT — do not strip, alter, or prefix it |\n| Timeout | Use ≥ 120 s for `get_live_flow_run_action_outputs` (large outputs) |\n| Environment name | `Default-<tenant-guid>` (find it via `list_live_environments` or `list_live_flows` response) |\n\n---\n\n## Reference Files\n\n- [MCP-BOOTSTRAP.md](references/MCP-BOOTSTRAP.md) — endpoint, auth, request/response format (read this first)\n- [tool-reference.md](references/tool-reference.md) — response shapes and behavioral notes (parameters are in `tools/list`)\n- [action-types.md](references/action-types.md) — Power Automate action type patterns\n- [connection-references.md](references/connection-references.md) — connector reference guide\n\n---\n\n## More Capabilities\n\nFor **diagnosing failing flows** end-to-end → load the `flowstudio-power-automate-debug` skill.\n\nFor **building and deploying new flows** → load the `flowstudio-power-automate-build` skill.","tags":["flowstudio","power","automate","mcp","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest"],"capabilities":["skill","source-github","skill-flowstudio-power-automate-mcp","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/flowstudio-power-automate-mcp","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 30784 github stars · SKILL.md body (17,133 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:52:21.324Z","embedding":null,"createdAt":"2026-04-18T20:27:41.048Z","updatedAt":"2026-04-22T06:52:21.324Z","lastSeenAt":"2026-04-22T06:52:21.324Z","tsv":"'-02':1521,1529 '-1':1697,1900 '-25':1522,1530 '-32602':1260 '-8':1187 '/1.0':1058,1172,1333 '/mcp':85,1014,1130,1289 '/ninihen1/power-automate-mcp-skills/blob/main/examples/data-not-flow.md)':57 '/ninihen1/power-automate-mcp-skills/blob/main/examples/fix-expression-error.md)':48 '/ninihen1/power-automate-mcp-skills/blob/main/examples/null-child-flow.md)':65 '0':977,1219,1350,1368,1590,2087 '0757041a':1407 '08584296028664130474944675379cu26':1545 '08584296068':1644,1848 '08584296068667933411438594643cu15':1516 '1':113,1022,1098,1136,1296,1797,2083 '120':1178,2118 '13':1524 '15':1532 '18':242,293,1274,1372 '2':124,1621,1827 '2.0':1025,1139,1300 '200':1197,1351 '2026':1520,1528 '24.1995008':1533 '3':133,1864 '30':1064,2069 '38.6910688':1525 '4':1908 '400':1243 '401/403':1228 '42':1416 '5':1511,1846,1942 '6':1992 '60':1110 '7':2049 'aad':549 'accept':328 'access':394,419,939 'account':475,855 'act':1929,1938,1996 'action':498,607,616,622,773,1470,1472,1476,1478,1483,1487,1542,1583,1598,1612,1670,1868,1897,1907,1916,1933,1936,1940,1946,1959,1998,2125,2169 'action-types.md':2165 'actionfail':1539,1667 'actionnam':1607,1646,1659,1673,1679,1703,1887,1901,1969 'actions.keys':1480 'actual':122 'ad':1649,1890 'adapt':1759 'add':568 'agent':15,1054,1168,1329 'aggreg':782 'ai':14 'allact':1672 'alreadi':270 'alter':2112 'alway':117,461,895,907,981,2040 'api':90,96,115,199,202,418,460,488,743,802,899,1045,1159,1320,2100 'app':860,864,866 'appli':1674,1993 'application/json':1051,1165,1253,1326 'arg':1134,1148,1294,1309 'argument':1147,1265,1308 'array':938,1514 'assert':2027 'async':1290 'async/await':249,299 'auth':377,550,1225,2091,2096,2148 'author':2103 'authorit':153 'autom':4,7,22,75,417,2168,2192,2206 'automat':552 'avail':439,953,979,999 'avg/max':788 'avoid':310 'await':1312,1341,1354 'azur':405,673 'azure-t':404 'back':807 'bash':343 'bearer':100,2104 'behavior':140,182,2159 'bodi':508,1183,1196,1255,1334,1340,1978 'body.slice':1349 'break':325 'breakdown':1870 'browser':32 'bug':54 'build':217,338,432,2196,2207 'built':238,1276 'built-in':237,1275 'busi':823 'cach':408,701,716,739,749,766,833,844,869,880,911,961 'call':262,302,334,567,744,885,897,984 'callback':528,547 'cancel':640,647,651,1728,1734,1747,1778 'cannot':174 'canva':865 'capabl':2178 'card':1760,1784 'caus':1686 'check':1075,1249,1491 'child':44,61 'choic':234 'cid':1021,1029,1135,1143,1295,1304 'citizen':840 'clean':252,281 'cloud':23 'coalesc':2002 'code':1259,1538,1655,1666,1705,1894 'common':1224 'companion':216 'compat':73 'complet':494 'complex':326 'compos':1488,1680,1970 'confirm':987 'conn':2005,2025 'connect':478,481,872,877,2092 'connection-references.md':2172 'connectionrefer':2009,2024 'connector':2174 'const':1283,1285,1297,1310,1339,1352 'content':1049,1163,1218,1251,1324 'content-typ':1048,1162,1250,1323 'convertto':315 'convertto-json':314 'core':364,1111,1266 'count':787,853 'cover':112,171 'crash':60 'creat':556 'curl':342 'current':462,526,653,896 'custom':1609 'data':49,410,927,1038,1152 'date':157 'day':756 'debug':39,218,433,912,1790,2193 'decod':1185 'deepest':1690 'def':1015,1131 'default':106,1392,2131 'definit':321,496,564,903,1444,1475,1616,1911,1932,2020,2023 'defn':1919,1930,2007,2021 'deploy':2033,2198 'depth':317 'descript':817,1109 'detail':604,717 'develop':841 'diagnos':2180 'direct':456,900,1431,1513 'disagre':193 'discard':1781 'discov':978 'discoveri':333 'display':1456 'displaynam':1408,1438,1463,1822 'doc':135,170 'document':192 'done':2090 'doubt':969 'dr':361 'durat':758,789 'e':1068,1080,1182,1199 'e.code':1074,1195 'e.g':105 'e.read':1184 'encod':1041,1155 'end':185,187,2184,2186 'end-to-end':184,2183 'endpoint':82,1078,2147 'endtim':1527,1658 'enough':430 'enrich':683 'entri':50,1691 'env':1391,1399,1453,1507,1601,1636,1717,1739,1807,1841,1879,1925,1962,2016,2059,2078 'environ':103,455,465,470,484,827,830,2129,2137 'environmentnam':1398,1452,1506,1600,1635,1716,1738,1806,1840,1878,1924,1961,2015,2058,2077 'equal':232 'equival':1270 'err':1628,1695,1871,1898 'error':42,354,595,600,603,765,923,1089,1093,1095,1188,1204,1211,1214,1226,1258,1345,1360,1362,1417,1537,1548,1626,1634,1665,1877,2029,2036,2037 'error-pron':353 'escap':285,324,349 'etc':951 'everi':145,160,624 'exact':994,1611 'exampl':40,210,289,1789 'except':1065,1179 'execut':656 'exist':563 'expir':1232 'express':41,1485,1918 'extra':306 'f':1071,1192,1209,1420,1426,1437,1439,1699,1810,1812,1821,1903,1985,2032 'fail':610,638,768,772,1518,1543,1565,1579,1654,1664,1671,1794,1832,1850,1863,1915,1935,2034,2043,2181 'failed-on':767 'failedact':1645,1693,1696,1886,1899 'failur':706,786,914,1701,1869,1905 'fast':403 'fetch':235,296,492,908,1278,1313,1377,1387 'field':727,2094 'file':137,2144 'filter':1489 'find':1648,1798,1889,1950,2132 'first':886,1499,1564,2153 'fit':267,300 'fix':1792,1995 'flag':132,167,704,820 'flow':24,45,53,62,312,341,436,450,452,491,495,502,518,521,535,538,545,555,559,570,578,584,598,614,632,649,655,682,696,698,713,721,730,747,764,780,792,798,813,891,894,906,917,921,930,937,942,947,950,1389,1397,1405,1410,1423,1424,1435,1443,1446,1447,1451,1455,1461,1465,1473,1504,1509,1596,1603,1632,1638,1714,1719,1736,1741,1767,1795,1800,1805,1815,1818,1823,1838,1843,1875,1881,1923,1927,1957,1964,2014,2018,2056,2061,2075,2080,2123,2141,2182,2200 'flow/app':852 'flownam':1433,1454,1508,1602,1637,1718,1740,1842,1880,1926,1963,2017,2060,2079 'flowstudio':2,9,28,68,390,396,659,672,955,1056,1170,1331,2190,2204 'flowstudio-mcp':1055,1169,1330 'flowstudio-power-automate-build':2203 'flowstudio-power-automate-debug':2189 'flowstudio-power-automate-mcp':1 'foreach':625 'format':2106,2150 'fragil':346 'frame':376 'fresh':1237 'full':414,715,1785 'function':385,1291 'get':400,424,489,500,519,524,582,596,601,612,711,714,728,733,745,762,778,845,848,904,915,919,948,1235,1449,1502,1559,1594,1608,1622,1630,1828,1836,1865,1873,1921,1955,2073,2121 'github.com':47,56,64 'github.com/ninihen1/power-automate-mcp-skills/blob/main/examples/data-not-flow.md)':55 'github.com/ninihen1/power-automate-mcp-skills/blob/main/examples/fix-expression-error.md)':46 'github.com/ninihen1/power-automate-mcp-skills/blob/main/examples/null-child-flow.md)':63 'govern':411,685,703,726,815,962 'guid':2176 'handl':244,283,372,551 'header':98,1042,1156,1317,2097 'helper':366,1113,1117,1268,1271 'hint':761,777 'histori':589,751,1493 'http':503,516,533,543,1073,1194,1227,1242,1347,1647,1888 'http-trigger':515,532,542 'https.request':1379 'human':1773 'id':1028,1142,1303,1406,1425,1427,1436,1568,1588,1606,1641,1722,1744,1824,1826,1844,1852,1882,1885,1928,1965,1968,2019,2062,2065,2081 'impact':824 'import':1007,1123,2066 'includ':722 'indent':1620 'input':1490,1937,1941,1999 'inputs/outputs':619 'inspect':505,618,1481,1581,1913,1943 'instal':227,1384 'instant':740 'issu':286 'item':2003 'iter':626 'javascript/typescript':274 'js':1282 'json':243,282,316,351,358,374,507,1008,1124,1246 'json-rpc':373,1245 'json.dumps':1039,1153,1212,1618 'json.loads':1082,1201,1222 'json.parse':298,1366 'json.stringify':297,1335,1363 'jsonrpc':1024,1138,1299 'jwt':92,1238,2108 'key':91,97,1046,1160,1321,2038,2101 'languag':205,276 'larg':2127 'last':754 'len':1986 'let':13 'list':448,451,463,466,476,479,586,694,825,828,834,837,857,861,870,873,890,892,928,945,1388,1395,1468,1479,1803,2135,2139 'live':415,426,437,449,464,477,490,501,520,537,554,569,583,597,613,631,648,893,905,909,916,920,925,929,965,1396,1450,1503,1595,1631,1713,1735,1804,1837,1874,1922,1956,2013,2055,2074,2122,2136,2140 'load':2187,2201 'make':263 'maker':836,839,847,850 'malform':1234,1244 'manual':36,1536 'map':251 'may':1001 'mcp':5,10,29,70,76,81,260,301,365,391,421,442,1011,1016,1037,1057,1072,1085,1112,1127,1132,1151,1171,1193,1210,1257,1267,1286,1292,1314,1332,1346,1361,1394,1448,1501,1593,1629,1711,1733,1802,1835,1872,1920,1954,2011,2053,2072 'mcp-bootstrap.md':2145 'mcp-on':420 'mcp.flowstudio.app':69,84,1013,1129,1240,1241,1288 'mcp.flowstudio.app/mcp':83,1012,1128,1287 'messag':1540,1668 'metadata':412,686,710,816,963 'method':1018,1026,1027,1140,1301,1315 'microsoft':20 'migrat':573 'miss':1231,1263 'mode':1403 'model':250 'monitor':17,676,819 'n':755 'name':104,127,129,163,774,997,1000,1107,1145,1306,1457,1471,1515,1544,1556,1561,1571,1591,1613,1652,1819,1847,1855,1893,1971,1981,1991,2004,2130 'nativ':246,295,357 'natur':266 'need':80,228,308 'nest':320,350 'new':146,558,1344,1359,2070,2085,2199 'newest':1498 'next':1569,1809,1853 'node':241,1375,1386 'node-fetch':1385 'node.js':208,229,292,369,1269,1273,1371 'non':180,576 'non-obvi':179 'non-solut':575 'none':1020,1580,1983,2031,2048 'normal':1765 'note':141,278,889,2093,2160 'notif':821 'notspecifi':1656,1895 'null':58,1418,1549,1952,1972,1987,1990 'object':934,1402 'obvious':181 'older':1374 'one':566,1482 'onto':253 'oper':19,313,435,1121 'origin':644 'out.get':1977 'output':617,1585,1599,1948,1960,2126,2128 'owner':709,1404 'pa':459,487,742,801,898 'packag':307,1280 'param':1019,1031,1033,1034,1144,1305 'paramet':128,162,499,2000,2161 'pars':380 'parser':359 'patch':561 'pattern':189,258,303,2171 'paus':1769 'payload':327,646,1023,1032,1040,1137,1154,1248,1298,1336 'pend':1783 'per':606,1867 'per-act':605,1866 'pip':226 'plain':1428,2107 'platform':102,469,876 'possibl':344 'post':539,1316 'power':3,6,21,74,101,416,468,859,863,875,2167,2191,2205 'powershel':309 'prefix':2114 'prepar':1661 'present':2041 'print':1092,1105,1434,1460,1464,1477,1486,1554,1617,1698,1723,1902,1934,1984,2084 'prior':1945 'prioriti':110 'programmat':25 'prone':355 'properti':1462,1466,1474,1931,2008,2022 'provid':960 'python':206,221,279,367,1006,1114,1122,1390,1445,1494,1586,1627,1709,1732,1796 'quick':331 'quot':322 'r':1551,1555,1557,1570,1573,1577,1854,1857,1861 'rais':1069,1096,1190,1207 'rate':707,785 'raw':1017,1084,1086,1091,1094,1102,1200,1206,1213,1216,1353 'raw.error':1357,1364 'raw.result.content':1367 're':635 're-run':634 'reachabl':991 'read':16,666,901,1441,1909,2151 'real':38,114,198 'recent':587,1496,1831 'recip':143 'recommend':204,280,294 'record':1610,1988 'ref':2006,2026 'refer':136,2143,2175 'references/action-types.md':2166 'references/connection-references.md':2173 'references/mcp-bootstrap.md':2146 'references/tool-reference.md':2155 'remedi':760,776 'replac':1189,1376 'req':1035,1062,1149,1176 'request':256,1414 'request-respons':255 'request/response':2149 'requir':66,131,166,1281,1370 'res':1311 'res.json':1355 'res.ok':1338 'res.status':1348 'res.text':1342 'resp':1060,1174 'resp.read':1083,1202 'respond':1775 'respons':116,138,177,200,257,379,511,1761,2142,2156 'resubmit':630,1706,1712,1725,2050,2054 'result':806,941,1103,1217,1393,1422,1710,1724,1801,1814,2010,2035 'result.get':2028 'return':123,151,931,1081,1221,1365,1400,1512,1642 'reusabl':384 'root':1685,1694,1700,1702,1704,1896,1904,1906,1939,1997 'round':1787 'round-trip':1786 'rpc':375,1247 'rule':822 'run':585,588,599,611,615,629,633,636,641,650,654,688,705,723,748,750,770,918,922,926,1492,1497,1500,1505,1553,1566,1567,1575,1587,1589,1597,1605,1624,1633,1640,1708,1715,1721,1730,1731,1737,1743,1749,1752,1833,1834,1839,1851,1859,1876,1884,1958,1967,2057,2064,2071,2076,2086,2124 'runnam':1604,1639,1643,1720,1742,1883,1966,2063 'runtimeerror':1070,1191,1208 'schema':158,504,509,512 'scope':1660 'search':697 'searchnam':2001 'see':993 'server':30,77,121,989,1004 'servic':474 'session':147 'set':790 'shape':139,178,2157 'shell':348 'shell-escap':347 'show':1751 'sign':527 'silent':318 'singl':383,720 'skill':12,134,169,213,219,288,2194,2208 'skill-flowstudio-power-automate-mcp' 'skip':1678 'snapshot':409,677 'solut':572,577,581 'sourc':107,111 'source-github' 'stack':275 'start':144,794,982,1412 'start/end':592 'starttim':1519,1657 'stat':724,783 'state':793,1411,1440,1459,1467 'statist':689 'status':591,856,1517,1546,1558,1578,1653,1663,1677,1682,1763,1849,1862,2088 'stdlib':224,1382 'step':37,976 'stop':796 'store':407,657,695,712,729,746,763,779,791,810,812,826,835,846,858,871,943,946,949 'strip':2111 'structur':602,1256 'subscrib':89,399,423,443,662,958 'subscript':71,974 'subsequ':1120 'succeed':1547,1683,2089 'success':784 'summari':781 'sync':804 'systemexit':1097 't06':1523,1531 'tabl':406,674 'tag':818 'target':1808,1825 'task':887 'team':269,398,661,957,1777 'tell':175 'tenant':680 'text':1215,1220,1223,1369 'throughout':1118 'throw':1343,1358 'tier':395,883,975 'time':593,2067 'time.sleep':2068 'timeout':1063,1177,2116 'tl':360 'token':93,1010,1047,1076,1126,1161,1229,1284,1322,2105 'tool':126,161,261,427,438,444,658,665,690,882,888,944,966,980,996,1104,1133,1146,1264,1293,1307 'tool-reference.md':2154 'tools/call':1141,1302 'tools/list':125,149,173,195,332,985,1087,2164 'top':1510,1845,2082 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'totalcount':1415 'tri':1059,1173 'trigger':497,517,522,534,536,544,645,731,735 'triggernam':1535,1727 'triggertyp':1413 'trip':1788 'true':1726 'truncat':319 'trust':118 'truth':109 'two':393 'type':130,164,1050,1164,1252,1325,2170 'ui':34 'up-to-d':154 'updat':340,553,811,814,2012 'url':523,529,548,732,736 'urllib.error.httperror':1066,1180 'urllib.request':223,1009,1125 'urllib.request.request':1036,1150 'urllib.request.urlopen':1061,1175 'use':220,290,362,642,924,964,1115,1430,2117 'user':1053,1167,1328,1650,1891 'user-ag':1052,1166,1327 'usual':1688 'utf':1186 'uuid':1429 'valid':233 'valu':59,2095 'vari':1002 'verdict':277 'verifi':2052 'version':1005 'via':8,799,940,2134 'visibl':471 'wait':1756,1770 'weekend':1681 'well':304 'win':203 'work':271,971 'worker':1662 'workflow':142,188 'wrapper':933,1401 'write':669 'wrong':1261 'x':95,1044,1158,1319,1973,1975,2099 'x-api-key':94,1043,1157,1318,2098 'x.get':1980 'z':1526,1534","prices":[{"id":"f5b95b9b-37b4-49b4-91ee-38ea6348aec9","listingId":"81605d19-b52b-4232-b142-f9c16496e14d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:27:41.048Z"}],"sources":[{"listingId":"81605d19-b52b-4232-b142-f9c16496e14d","source":"github","sourceId":"github/awesome-copilot/flowstudio-power-automate-mcp","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/flowstudio-power-automate-mcp","isPrimary":false,"firstSeenAt":"2026-04-18T21:49:24.535Z","lastSeenAt":"2026-04-22T06:52:21.324Z"},{"listingId":"81605d19-b52b-4232-b142-f9c16496e14d","source":"skills_sh","sourceId":"github/awesome-copilot/flowstudio-power-automate-mcp","sourceUrl":"https://skills.sh/github/awesome-copilot/flowstudio-power-automate-mcp","isPrimary":true,"firstSeenAt":"2026-04-18T20:27:41.048Z","lastSeenAt":"2026-04-22T06:40:19.711Z"}],"details":{"listingId":"81605d19-b52b-4232-b142-f9c16496e14d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"flowstudio-power-automate-mcp","github":{"repo":"github/awesome-copilot","stars":30784,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-04-21T22:20:21Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"50c002dc97a69dfb9638003ff7f303dcab6ac72c","skill_md_path":"skills/flowstudio-power-automate-mcp/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/flowstudio-power-automate-mcp"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"flowstudio-power-automate-mcp","description":">-"},"skills_sh_url":"https://skills.sh/github/awesome-copilot/flowstudio-power-automate-mcp"},"updatedAt":"2026-04-22T06:52:21.324Z"}}