Files
awesome-copilot/skills/flowstudio-power-automate-mcp/references/connection-references.md
Catherine Han f3142d77c1 feat: add power-automate-mcp skill (#896)
* feat: add power-automate-mcp skill

Connect to and operate Power Automate cloud flows via a FlowStudio MCP server.
Includes tool reference, action types, connection references, and bootstrap guide.

* fix: rename skill & address review feedback

- Rename power-automate-mcp → flowstudio-power-automate-mcp
- Fix list_live_flows docs: returns wrapper object {mode, flows, totalCount, error}, not direct array
- Fix next() syntax: add parens for generator with default arg
- Add User-Agent header to tools/list discovery example
- Standardize User-Agent to FlowStudio-MCP/1.0 (required by Cloudflare)
- Add environmentName note for list_live_connections (required despite schema)
- Update list_live_flows response shape in tool-reference.md

All response shapes verified against live MCP server.
2026-03-06 15:16:11 +11:00

4.0 KiB

FlowStudio MCP — Connection References

Connection references wire a flow's connector actions to real authenticated connections in the Power Platform. They are required whenever you call update_live_flow with a definition that uses connector actions.


Structure in a Flow Definition

{
  "properties": {
    "definition": { ... },
    "connectionReferences": {
      "shared_sharepointonline": {
        "connectionName": "shared-sharepointonl-62599557c-1f33-4aec-b4c0-a6e4afcae3be",
        "id": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
        "displayName": "SharePoint"
      },
      "shared_office365": {
        "connectionName": "shared-office365-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "id": "/providers/Microsoft.PowerApps/apis/shared_office365",
        "displayName": "Office 365 Outlook"
      }
    }
  }
}

Keys are logical reference names (e.g. shared_sharepointonline). These match the connectionName field inside each action's host block.


Finding Connection GUIDs

Call get_live_flow on any existing flow that uses the same connection and copy the connectionReferences block. The GUID after the connector prefix is the connection instance owned by the authenticating user.

flow = mcp("get_live_flow", environmentName=ENV, flowName=EXISTING_FLOW_ID)
conn_refs = flow["properties"]["connectionReferences"]
# conn_refs["shared_sharepointonline"]["connectionName"]
# → "shared-sharepointonl-62599557c-1f33-4aec-b4c0-a6e4afcae3be"

⚠️ Connection references are user-scoped. If a connection is owned by another account, update_live_flow will return 403 ConnectionAuthorizationFailed. You must use a connection belonging to the account whose token is in the x-api-key header.


Passing connectionReferences to update_live_flow

result = mcp("update_live_flow",
    environmentName=ENV,
    flowName=FLOW_ID,
    definition=modified_definition,
    connectionReferences={
        "shared_sharepointonline": {
            "connectionName": "shared-sharepointonl-62599557c-1f33-4aec-b4c0-a6e4afcae3be",
            "id": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline"
        }
    }
)

Only include connections that the definition actually uses.


Common Connector API IDs

Service API ID
SharePoint Online /providers/Microsoft.PowerApps/apis/shared_sharepointonline
Office 365 Outlook /providers/Microsoft.PowerApps/apis/shared_office365
Microsoft Teams /providers/Microsoft.PowerApps/apis/shared_teams
OneDrive for Business /providers/Microsoft.PowerApps/apis/shared_onedriveforbusiness
Azure AD /providers/Microsoft.PowerApps/apis/shared_azuread
HTTP with Azure AD /providers/Microsoft.PowerApps/apis/shared_webcontents
SQL Server /providers/Microsoft.PowerApps/apis/shared_sql
Dataverse /providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps
Azure Blob Storage /providers/Microsoft.PowerApps/apis/shared_azureblob
Approvals /providers/Microsoft.PowerApps/apis/shared_approvals
Office 365 Users /providers/Microsoft.PowerApps/apis/shared_office365users
Flow Management /providers/Microsoft.PowerApps/apis/shared_flowmanagement

Teams Adaptive Card Dual-Connection Requirement

Flows that send adaptive cards and post follow-up messages require two separate Teams connections:

"connectionReferences": {
  "shared_teams": {
    "connectionName": "shared-teams-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "id": "/providers/Microsoft.PowerApps/apis/shared_teams"
  },
  "shared_teams_1": {
    "connectionName": "shared-teams-yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
    "id": "/providers/Microsoft.PowerApps/apis/shared_teams"
  }
}

Both can point to the same underlying Teams account but must be registered as two distinct connection references. The webhook (OpenApiConnectionWebhook) uses shared_teams and subsequent message actions use shared_teams_1.