* feat(flowstudio): align Power Automate skills with MCP server v1.1.6 Foundation skill (flowstudio-power-automate-mcp) rewritten to use the server's new tool_search and list_skills meta-tools (v1.1.5+) for discovery instead of cataloging every tool by hand. Cut from 519 to 295 lines. New "Which Skill to Use When" intent-keyed decision tree points at the four specialized skills. Build/debug/governance/monitoring updated for use-case framing. Tools that genuinely cross tiers (e.g. debug skill borrowing get_store_flow_summary) are correct when the workflow needs them — the split between skills is by use-case intent, not by tool partition. Build skill: new Step 3a Resolving Dynamic Connector Values covers get_live_dynamic_options outer-parameter auto-bridge (v1.1.6+) and the AadGraph user-picker fallback via shared_office365users.SearchUserV2 (replaces broken builtInOperation:AadGraph.GetUsers). Debug skill: Outlook user-picker failure note pointing at the fallback. Monitoring skill description disambiguates from the server's monitor-flow tool bundle (runtime control of a single flow) — this skill is tenant-wide health analytics over the cached store. All 5 skills validate via npm run skill:validate; line endings LF only; codespell clean; auto-regenerated docs/README.skills.md included. * fix(flowstudio): remove deprecated tool references The v1.1.5 MCP server release marked 5 tools [DEPRECATED] but the previous alignment commit missed them. Replacements per server source: - get_live_flow_http_schema → read trigger.inputs.schema from get_live_flow - get_live_flow_trigger_url → read trigger.metadata.callbackUrl from get_live_flow - get_store_flow_trigger_url → get_store_flow.triggerUrl field - get_store_flow_errors → get_store_flow_runs(status=["Failed"]) - set_store_flow_state → set_live_flow_state Touches build, debug, governance, monitoring SKILL.md and the foundation skill's tool-reference.md. Remaining mentions of the deprecated names are intentional — they live in deprecation notices naming the obsolete wrapper alongside its replacement. * Update FlowStudio Power Automate skills * Cover latest FlowStudio MCP actions * Trim FlowStudio Power Automate skills * Number FlowStudio build workflow steps
4.9 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-eeeeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
"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 References
Preferred method: call list_live_connections in the target environment. Use
search to narrow results to the connector you need; newer MCP server versions
return paste-ready templates.
matches = mcp("list_live_connections",
environmentName=ENV,
search="shared_sharepointonline")
conn = next(c for c in matches["connections"]
if c.get("overallStatus") == "Connected"
or c.get("statuses", [{}])[0].get("status") == "Connected")
conn_refs = {
"shared_sharepointonline": conn.get("connectionReferenceTemplate") or {
"connectionName": conn["id"],
"id": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
"source": "Invoker"
}
}
host = conn.get("hostTemplate") or {"connectionName": "shared_sharepointonline"}
Use host as the action-side inputs.host. Use conn_refs as
update_live_flow(connectionReferences=conn_refs).
Fallback method: copy from an existing flow.
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-eeeeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee"
⚠️ Connection references are user-scoped. If a connection is owned by another account,
update_live_flowwill return 403ConnectionAuthorizationFailed. You must use a connection belonging to the account whose token is in thex-api-keyheader.
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-eeeeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
"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.