FlowStudio MCP Tools for Power Automate
Overview
FlowStudio MCP, the MCP server for Power Automate, provides 30+ tools organized into two tiers. Live tools are available to all MCP subscribers and call the Power Automate API directly, data is always current. Store tools need the Pro+ plan and read from the FlowStudio data store, the same Azure Storage backend that powers FlowStudio for Teams monitoring, enriched with governance metadata and run statistics.
A small number of tools are tagged RETIRED: they still answer if an agent calls them, but agents no longer see them listed. Each row names the tool to use instead.
Flow delete and restore are off until you switch them on in the Agent tools card on your dashboard. Your agent cannot see them while they are off, and it reads the tool list once when it connects, so reconnect it after changing the switch. The Power Apps canvas app tools (Preview) are included in every account.
Your agent can discover all available tools automatically by calling tools/list at the start of a session. This returns the authoritative schema for every tool, parameter names, types, and required flags.
Live Tools, All Plans
These tools call the Power Automate API directly. Data is always real-time.
Environment and Connection Discovery
| Tool | What it does |
|---|---|
| list_live_environments | List all Power Platform environments visible to your account. Returns environment IDs, display names, regions, and SKUs. Use the id value as environmentName in all other tools. |
| list_live_connections | List all connections in an environment. Returns connection IDs, connector names, status, and creator info. Use the id value as connectionName in connection references. |
| create_live_connection | Create a connection, or sign an expired one in again. The agent gives you a sign-in link, or a sign-in card where your chat app shows one. You sign in yourself; the agent never signs in for you. Connectors that take a key or account details instead of a sign-in are refused: create those in Power Automate. |
| test_live_connection | Test a connection, or run one read on it and get the raw reply: a GET operation, or a lookup the connector itself declares for a dropdown, list, schema or folder picker. Anything else is refused before a call is made. Through mcp.flowstudio.app/mcp/oauth (the ChatGPT plugin) it runs the connection test only. |
Connector Discovery
Use these when building or modifying a flow, they tell the agent what operations a connector exposes and how to fill dynamic dropdown parameters (Team IDs, SharePoint site IDs, etc.).
| Tool | What it does |
|---|---|
| describe_live_connector | Describe a connector and its operations. Use mode=summary (default) for a compact operation catalog, or pass an operationId to get expanded inputs, outputs, and dynamic-parameter metadata. Mode=full returns the raw OpenAPI metadata. |
| resolve_live_parameters | Look up the values an action's inputs take, the way the flow designer does: dropdown options, list and table columns, folder and file pickers, and people. Pass a display name and get back the value to write into the flow. Reads only; it never runs the action. Replaces get_live_dynamic_options, which still answers but is no longer listed. |
Flow Management
| Tool | What it does |
|---|---|
| list_live_flows | List flows in an environment. Returns flow IDs, display names, state, trigger type, and timestamps. The response includes a flows array, access via result["flows"]. With mode=admin and includeDeleted=true it also returns deleted flows, with state Deleted, the only listing that does. |
| get_live_flow | Fetch the complete flow definition, triggers, actions, parameters, and connection references. This is the full JSON you would see in the Power Automate code view. On a large flow, ask for depth: "summary" to get the action tree without inputs, then name the actions you need. includeTriggerUrl: true also returns an HTTP trigger’s URL; treat it as a credential, because anyone holding it can run the flow. |
| update_live_flow | Create a new flow or update an existing flow definition. Pass the full definition and connection references. Omit flowName to create; include it to update. |
| set_live_flow_state | Start or stop a flow. Use this instead of update_live_flow for state changes. |
| add_live_flow_to_solution | Migrate a non-solution flow into a solution for ALM. |
Run Inspection and Debugging
| Tool | What it does |
|---|---|
| get_live_flow_runs | List recent run history with status, timestamps, trigger name, and error summary. Returns newest first. Default: 30 runs; supports higher values with auto-pagination. Filter with status (for example Failed), startedAfter and startedBefore. When there are no runs it reports the trigger checks, so “nothing ran” can be told apart from “the trigger has been failing”. |
| get_live_flow_run_error | Get structured error details for a failed run. Returns per-action failure breakdown with error codes and messages. The last entry in failedActions is typically the root cause. |
| get_live_flow_run_action_outputs | Inspect the inputs and outputs of any action in a run. Omit actionName to get all actions; provide it to get one. Supports loop iteration inspection. With trigger: true it returns the run’s trigger inputs and outputs, and with a checkId it reads a trigger check that never became a run. An output over 1 MB comes back as its size and a link instead of the content. |
Run Execution
| Tool | What it does |
|---|---|
| trigger_live_flow | POST to an HTTP-triggered flow’s callback URL. Only works for Request (HTTP) triggers. AAD authentication is handled automatically. |
| resubmit_live_flow_run | Re-run a failed or cancelled run using its original trigger payload. |
| cancel_live_flow_run | Cancel a currently running flow execution. Do not cancel runs waiting for an adaptive card response, that status is normal. |
HTTP Trigger Tools (Retired)
Both are retired. They still answer if an agent calls them; use get_live_flow instead.
| Tool | What it does |
|---|---|
| RETIREDget_live_flow_http_schema | Use get_live_flow instead: the trigger’s inputs.schema and any Response actions are in the definition. |
| RETIREDget_live_flow_trigger_url | Use get_live_flow with includeTriggerUrl: true instead. |
Delete and Restore
OFF BY DEFAULTBoth tools are hidden until you turn on Let your agent delete flows in the Agent tools card on your dashboard, then reconnect your agent.
| Tool | What it does |
|---|---|
| delete_live_flow | Delete a cloud flow. Needs confirmDisplayName, the flow’s exact display name from get_live_flow, and a reason, which goes in the audit log. Returns the flow id: keep it, restore needs it. If you only want the flow to stop running, use set_live_flow_state instead. |
| restore_live_flow | Restore a deleted flow by its id. Take the id from the delete response, or, with an admin account, from list_live_flows with mode=admin and includeDeleted=true. Restore can finish asynchronously, so confirm with get_live_flow. |
|
Note: The agent has to read the flow and repeat its display name back before a delete goes through, so it cannot delete a flow it only guessed at. Keep the flow id from the delete response: without it, only an environment admin can find the deleted flow again. Microsoft keeps a deleted flow for 21 days. After that it cannot be restored, including by Microsoft support, so restore promptly. |
Store Tools, Pro+ Plan
These tools read from the FlowStudio data store, the same Azure Storage backend used by FlowStudio for Teams. This includes governance metadata, run statistics, maker information, and flow run history retained beyond Microsoft’s 28-day limit.
Flow Governance
| Tool | What it does |
|---|---|
| list_store_flows | Search flows with governance flags, run failure rates, and owner metadata. |
| get_store_flow | Full details for a single flow including run stats, governance fields, complexity, and connector list. |
| get_store_flow_summary | Aggregated run statistics: total runs, fail rate, average/max duration, and remediation hints. |
| get_store_flow_runs | Run history for the last N days with duration and remediation hints. Filter with status, for example only Failed runs. |
| RETIREDget_store_flow_errors | Use get_store_flow_runs with status Failed instead. |
| RETIREDget_store_flow_trigger_url | Use get_live_flow with includeTriggerUrl: true instead. |
| update_store_flow | Update governance metadata: description, tags, monitor flag, notification rules, business impact. |
| RETIREDset_store_flow_state | Use set_live_flow_state instead. |
Tenant Discovery
| Tool | What it does |
|---|---|
| list_store_environments | List all environments from the data store. |
| list_store_makers | List all makers (citizen developers) with their flow/app counts. |
| get_store_maker | Get a specific maker’s flow and app counts and account status. |
| list_store_power_apps | List all Power Apps canvas apps from the data store. |
| list_store_connections | List all Power Platform connections from the data store. |
Power Apps Canvas App Tools, Preview
PREVIEWIncluded in every account. Canvas tools are free while in preview, which ends 30 November 2026. From 1 December canvas calls count toward your plan. An agent connected before 24 October 2026 needs one reconnect to see them. Walkthrough: Edit Power Apps canvas apps with your AI agent. Microsoft ships its own canvas MCP server; the side by side says which fits when.
These create, read and edit canvas apps. Edits go into a session and are not live until you push them, which saves a draft. publish_canvas_app makes the draft live. Every canvas response carries a session block that says whether edits are pending and whether the live app has moved since you started.
| Tool | What it does |
|---|---|
| list_canvas_apps | List the canvas apps in an environment. Metadata only. |
| create_canvas_app | Create an app from a phone, tablet or responsive blank, a split-screen or sidebar layout, or as a copy of an existing app. Then open it with get_canvas_app. |
| get_canvas_app | Open an app. Downloads and unpacks it and starts an edit session. Returns screens, data sources, sizes and App Checker findings. Call this first. |
| list_canvas_controls | Names only: the app as a tree of screens and controls with their types, or the control types you could add. search matches names and types. |
| describe_canvas_control | Full detail for one name. A control, screen or the App comes back with its properties and Power Fx and what its type supports; a control type comes back with its properties, defaults and variants. This is where the exact control and property names update_canvas_app needs come from. |
| check_canvas_formula | Check Power Fx before you write it into an app. Runs Microsoft’s Power Fx checker and reports unclosed brackets, unknown functions, misspelled names, wrong argument counts and type mismatches with the character position of each. It warns and never blocks a push. |
| get_canvas_app_sources | The app’s data sources with columns and types, for every kind, Dataverse tables included. Read this before writing a formula that references a table. Also says which connection feeds each source. |
| get_canvas_app_files | List or read files inside the app package, such as Src/App.pa.yaml or anything the other tools do not surface. |
| update_canvas_app | Change an app: set or remove a property formula; add, delete, move or rename a control; add, delete or rename a screen; add a Dataverse, SharePoint, SQL or Excel table, refresh or remove a data source. Formulas are checked and problems come back as warnings. Edits go to your session. dryRun previews them; push imports them and saves a draft, with a short note that shows in the version history. |
| update_canvas_app_files | Create, update or delete files in the package: a new screen, an image, App.pa.yaml. Push with update_canvas_app. |
| discard_canvas_app_session | Throw away the session and every unpushed edit. The app itself is untouched. |
| publish_canvas_app | Publish the current draft so users get it. |
| list_canvas_app_versions | Version history. Drafts are versioned too; isLive marks the one users see. |
| diff_canvas_app | Compare two states of an app, per control and property. Takes two version ids, or published, draft, session and base. |
Which tool should I use?
When in doubt, use live tools, they work for all subscription tiers and return real-time data.
| Task | Recommended tool | Why |
|---|---|---|
| List my flows | list_live_flows | Always current from the PA API |
| Read a flow definition | get_live_flow | Always fetched live from the PA API |
| Debug a failure | get_live_flow_runs → get_live_flow_run_error | Live run data with per-action errors |
| Check overall flow health | get_store_flow_summary | Aggregated stats over time (Pro+) |
| Find who owns a flow | list_store_flows | Owner metadata from data store (Pro+) |
| Start or stop a flow | set_live_flow_state | Direct API call, not update_live_flow |
| Delete a flow | delete_live_flow | Off until you switch it on; asks for the display name and a reason |
| Bring back a deleted flow | restore_live_flow | Needs the flow id from the delete response |
| Change a canvas app | get_canvas_app → update_canvas_app | Preview; edits are saved as a draft until you publish |
| Create a canvas app | create_canvas_app → update_canvas_app | Preview; starts from a blank layout or a copy of an app, edits are saved as a draft |
| Create a connection | create_live_connection | You sign in yourself; connectors that take a key stay in Power Automate |
| Find the right tool | tool_search | Free; search by name, task or skill |
| Report a problem or ask for a feature | report_bug | Free, and works after your plan limit |
Tool discovery
Your agent can discover all available tools automatically at the start of each session by calling tools/list. This returns the complete schema for every tool, parameter names, types, and required flags. The tools/list call is free and does not count against your plan limits.
If any documentation on this page differs from what tools/list returns, trust tools/list, it is always the authoritative source.
Three tools help the agent find the right tool and tell us when something is wrong. All three are free, and they keep working after your plan limit is reached.
| Tool | What it does |
|---|---|
| tool_search | Find a tool instead of guessing its name, and get its definition. Search by exact names (select:), a whole skill bundle (skill:), or plain words such as “cancel run”. |
| list_skills | List the skill bundles: groups of tools used together for one task, such as debugging a flow, building a flow, canvas apps, SharePoint, Excel or SQL, each with a one-line description. |
| report_bug | Report a bug or a missing capability from inside your session. The server attaches its diagnostics and you get a ticket number back. It can also add evidence to a ticket and check its status. |
API usage and limits
A successful tool call counts as one MCP call against your plan. These never count: tools/list, tool_search, list_skills, report_bug, and a dry run. A call that fails because of us, a sign-in problem or a Microsoft outage does not count either; a call Microsoft rejects, or one aimed at something you cannot reach, does. Canvas tool calls are free while the canvas tools are in preview, until 30 November 2026. When you reach your plan limit your agent is told so, with a link to your dashboard.
Related guides
- Getting Started with FlowStudio MCP, Set up your connection
- Debug Power Automate Flows with MCP, Step-by-step debugging workflow
- Build Power Automate Flows with MCP, Create flows from scratch
FlowStudio is an independent product and is not affiliated with, endorsed by, or sponsored by Microsoft Corporation. Microsoft, Power Automate, Power Platform, and Copilot are trademarks of the Microsoft group of companies.