Skip to main content
Glama

Power Automate MCP Server by Flow Studio

Server Details

Debug, build, and manage Power Automate cloud flows with AI agents

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 60 days
Last Tested
Transport
Streamable HTTP · MCP 2025-03-26
URL
Repository
ninihen1/power-automate-mcp-skills
GitHub Stars
34
Server Listing
Flow Studio - Power Automate MCP Server

TDQS

A3.5/5.0

Scored across 28 tools

Disambiguation3/5

Systematic overlap exists between live and store counterparts (e.g., get_live_flow vs get_store_flow, list_live_flows vs list_store_flows, list_live_environments vs list_store_environments), so multiple tools could be confused. Descriptions clearly state the data source and plan requirements, which helps, but the dual-surface redundancy is more than one or two pairs.

Naming Consistency4/5

Names follow a clear verb_live_noun / verb_store_noun snake_case pattern that is highly predictable across the 28 tools. Minor deviations like 'tool_search' (noun_verb) and the lengthy 'add_live_flow_to_solution' slightly break the otherwise consistent convention.

Tool Count2/5

With 28 tools, the surface exceeds the 25-tool threshold and feels heavy for an agent to navigate. The count is inflated by redundant live/store pairs and meta tools, even though grouping prefixes provide some organizational clarity.

Completeness3/5

Core flow lifecycle is largely covered: create/update via update_live_flow, read/get, list, start/stop, trigger, cancel, and resubmit runs. However, delete operations for flows and solution removal are missing, and there is no single-run detail tool beyond the error and action-output views.

Available Tools

30 tools
add_live_flow_to_solutionAdd flow to solutionA
Idempotent
Inspect

Move a flow into a solution. Refuses if the flow is already in one. solutionId is optional — omit for the default solution.

ParametersJSON Schema
NameRequiredDescriptionDefault
flowNameYesName (ID) of the flow to migrate into the solution.
solutionIdNoTarget solution ID (Dataverse solutionid GUID). Omit for the default solution. Discover IDs via resolve_live_parameters on shared_commondataserviceforapps/ListRecords with entityName "solutions" (value-path solutionid, value-title friendlyname); needs a Dataverse connection in the env.
environmentNameYesName of the Power Platform environment.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavioral context beyond the annotations: the tool refuses when the flow is already in a solution, which tells the agent how failure states arise. Annotations already declare it is a non-destructive, idempotent write, so without a return format or permission requirements it lands at 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no filler. The core action leads, the failure condition follows, and the optional-parameter note closes it out.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter mutation with no output schema and full schema coverage, the description covers the action, a failure mode, and the optional parameter default. It could still note what the call returns or the connection prerequisites, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters including the discovery path for solutionId are already documented in the schema; the description only restates the optionality of solutionId. Baseline 3 applies when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — moving a flow into a solution — which is unambiguous. No sibling tool performs a solution-assignment action, so differentiation is implicit rather than stated, keeping it at a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied; the description never says when an agent should reach for this tool versus other flow tools in the family. The 'omit for the default solution' note gives a small conditional hint but is not a when-to-use statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_live_flow_runCancel runA
DestructiveIdempotent
Inspect

Cancel a currently running Power Automate flow run via the live PA API. Use after get_live_flow_runs to obtain the run name. Only runs with status "Running" can be cancelled.

ParametersJSON Schema
NameRequiredDescriptionDefault
runNameYesRun identifier (name field from get_live_flow_runs).
flowNameYesName (ID) of the flow.
environmentNameYesName of the Power Platform environment.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety and repeat-call profile is covered structurally. The description adds a useful eligibility constraint (only 'Running' runs), but says nothing about side effects on the run itself (terminated vs. rolled back), partial results, or any permission requirements beyond the status check.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each earning its place: the action, the upstream call, and the precondition. The core action is front-loaded and nothing is repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, idempotent mutation with only three well-documented parameters and no output schema, the description supplies the key operational context (prerequisite tool, eligibility rule). It is nearly complete, though it omits any note on the effect on the run or error behavior when the status precondition fails.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all three parameters carry descriptions, so the schema does the heavy lifting; baseline 3 applies. The description merely echoes that runName comes from get_live_flow_runs, which the schema already states, and adds no format, casing, or identifier details for environmentName/flowName.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Cancel a currently running Power Automate flow run') plus the scope qualifier 'via the live PA API', making it clearly distinct from siblings like resubmit_live_flow_run, trigger_live_flow, and set_live_flow_state. An agent can identify exactly what the tool operates on without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit prerequisite and sequencing rule ('Use after get_live_flow_runs to obtain the run name') and a precondition ('Only runs with status "Running" can be cancelled'), which tells the agent both when to call it and when it will fail. It stops short of naming a fallback when the precondition is unmet (e.g., what to do with non-Running runs), so it is a strong 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_live_connectionCreate connectionInspect

Create a connection, or sign an existing one in again (pass connectionName). Shows a sign-in card where the person signs in; you never sign in for them. Without the card, give the person signInLink to open. Connectors that use a key or account details instead of a sign-in are refused: create those in Power Automate.

ParametersJSON Schema
NameRequiredDescriptionDefault
connectorNameYesConnector name, e.g. shared_sharepointonline.
connectionNameNoAn existing connection to sign in again, instead of creating one.
environmentNameYesName of the Power Platform environment.
describe_live_connectorDescribe connector
Read-only
Inspect

Describe a live Power Platform connector/API and its operations. Use mode=summary (default) to get a compact operation catalog. Use operationId to describe one operation, including inputs, outputs, dynamic parameter metadata, nextTool hints to call resolve_live_parameters, and an authored hint + canonical example shape (when one exists) to copy into update_live_flow. Use search without connectorName/apiName to search operations across connectors and get connection-aware suggestions. Use mode=full only when raw OpenAPI connector metadata is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMax operations to return in connector summary mode, or max top search results to show in cross-connector search. Default 250 for summary, 10 for search display.
typeNoOperation usage to include in summary mode. Default Action.
depthNosummary (default): compact operation catalog. full: raw OpenAPI metadata.
searchNoOptional operation search text. With connectorName, filters that connector summary. Without connectorName, searches operations across connectors.
apiNameNoAlias for connectorName.
variantNoWhen an operation has multiple authored variants (e.g. shared_teams/PostMessageToConversation has channel/groupchat/flowbot_chat), pass a specific variantKey to get that variant's hint and exampleDefinition. Omit to receive a hint listing the available variants.
operationIdNoOptional operation ID to describe with expanded inputs and outputs.
connectorNameNoConnector logical name, for example shared_teams. Either connectorName/apiName is required, unless search is provided for cross-connector operation search.
environmentNameYesName of the Power Platform environment.
get_live_flowGet flow definitionA
Read-only
Inspect

Fetch the full native Power Automate flow JSON from the PA API, including the complete flow definition (triggers, actions, parameters, outputs). Returns the raw properties object exactly as the PA API returns it. Use this to inspect the full definition before calling update_live_flow with a modified definition.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNofull (default): the whole definition. summary: the action tree — name, type, operation, runAfter, nesting — with no inputs. Use summary on a large flow, then ask for the actions you need.
actionsNoReturn only these actions, found at any nesting depth and each reported with the scopes it sits in, plus triggers. Combine with depth:"summary" to get the tree as well.
flowNameYesName (ID) of the flow.
environmentNameYesName of the Power Platform environment.
includeTriggerUrlNoAlso return the HTTP trigger URL. It is a credential: anyone holding it can run the flow.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds real context beyond them: it returns 'the raw properties object exactly as the PA API returns it' (no normalization), and the includeTriggerUrl credential warning is reinforced in the schema. It does not discuss size/rate limits for very large flows outside the depth hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no filler: what it fetches, the exact return shape, and the intended workflow use. The most decision-relevant information (raw native definition, use before update) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by stating the return is the raw PA properties object covering triggers/actions/parameters/outputs. Combined with 100% schema coverage and the readOnly annotations, an agent has enough to call it correctly. The only minor gap is guidance on handling very large flows, partly mitigated by the depth enum in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself documents depth, actions, includeTriggerUrl, flowName and environmentName in detail, including the credential nature of the trigger URL. The description only generally restates what the definition contains ('triggers, actions, parameters, outputs'), adding little beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch the full native Power Automate flow JSON from the PA API') and enumerates what the definition contains (triggers, actions, parameters, outputs). This distinguishes it from list_live_flows and the store-flow siblings, which return summaries or store metadata rather than the raw native definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: 'Use this to inspect the full definition before calling update_live_flow with a modified definition.' That names the sibling and the workflow context. There is no explicit when-not guidance (e.g., when to prefer the summary depth or a store-flow variant), which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_live_flow_run_action_outputsGet run action inputs and outputsA
Read-only
Inspect

Read the recorded inputs and outputs of actions in one flow run. Without actionName: the top-level actions (optionally filtered by name). With actionName: every execution of that action across foreach iterations, each with repetitionIndexes, status, error, and resolved inputs/outputs. Use iterationIndex to pin one iteration; omit it for all. TRIGGER PAYLOADS: set trigger=true with a runName to get that run's trigger inputs and outputs. No Compose workaround is needed. TRIGGER CHECKS: pass checkId (from get_live_flow_runs -> triggerChecks.recent[].checkId) to read a trigger evaluation that never became a run — that is how you see WHY a trigger is failing. Do not supply runName with a checkId.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMax actions or repetitions to return. Paginates automatically. Omit for all.
checkIdNoTrigger check id (checkId from get_live_flow_runs -> triggerChecks). Returns that check's inputs/outputs, including the failure reason. Not a run id — the two are different, which is why a check id returns WorkflowRunNotFound from the run tools.
runNameNoRun identifier (name field from get_live_flow_runs), or "latest" for the most recent run. Required unless checkId is given.
triggerNoReturn the RUN's trigger inputs/outputs instead of its actions. Requires runName.
flowNameYesName (ID) of the flow.
actionNameNoAction name. Without iterationIndex: returns all repetitions of this action across every foreach iteration. With iterationIndex: returns the single repetition matching that iteration. Omit entirely for top-level action list.
iterationIndexNoZero-based foreach iteration index. Matched against the innermost repetitionIndexes[].itemIndex in the PA repetition record. Only meaningful when actionName is also set.
environmentNameYesName of the Power Platform environment.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/safe profile, and the description adds substantial context beyond them: what a repetition record contains (repetitionIndexes, status, error, resolved inputs/outputs), the "no Compose workaround needed" note, and why a checkId yields WorkflowRunNotFound from run tools.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and every clause carries information, but the ALL-CAPS labels (TRIGGER PAYLOADS, TRIGGER CHECKS) and multiple clauses make it denser than strictly necessary. Sized reasonably for an 8-parameter tool with interacting modes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must convey returns, and it does name the key fields (repetitionIndexes, status, error, resolved inputs/outputs). The exact response envelope/shape is only sketched, leaving minor gaps for an 8-param tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter meaning the schema can't: the actionName/iterationIndex interaction and the runName-vs-checkId distinction with its error consequence. It stops short of richer format/syntax detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Read the recorded inputs and outputs of actions in one flow run") and immediately distinguishes scoping modes: top-level actions without actionName vs. all foreach repetitions with actionName. This differentiates it cleanly from siblings like get_live_flow_run_error and get_live_flow_runs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use guidance for every mode: iterationIndex to pin one iteration, trigger=true for trigger payloads, checkId for trigger evaluations that never became runs, plus a named source (get_live_flow_runs -> triggerChecks) and an exclusion ("Do not supply runName with a checkId").

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_live_flow_run_errorGet run errorA
Read-only
Inspect

Fetch error details for a specific flow run from the live Power Automate API. Lists every failed action with its error code and message to help diagnose what went wrong.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMax actions to return. Paginates automatically. Omit for all.
runNameYesRun identifier (name field from get_live_flow_runs), or "latest" for the most recent run.
flowNameYesName (ID) of the flow.
environmentNameYesName of the Power Platform environment.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description usefully discloses that it hits the live Power Automate API and that results are per failed action, but says nothing about rate limits, empty-result behavior, or error cases for the call itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose and the payload shape front-loaded; nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only diagnostic tool with no output schema, the description gives an adequate picture of what comes back and the schema fully documents inputs. Minor gap: no guidance on what to do with a successful run (no failures) or how errors in the lookup itself surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (including the 'latest' shortcut and auto-pagination for top) are already documented in the schema. The description adds no parameter-level meaning beyond that, which is the expected baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Fetch) and resource (error details for a specific flow run) and even describes the return payload — failed actions with error code and message. This implicitly separates it from get_live_flow_runs (lists runs) and get_live_flow_run_action_outputs, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'to help diagnose what went wrong' implies a debugging context, but there is no explicit when-to-use vs. when-not, no mention of the alternative tools for run data, and no stated prerequisites (e.g., run must have failed).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_live_flow_runsList flow runsA
Read-only
Inspect

Fetch run history for a flow directly from Power Automate. Returns { runs, runCount, triggerChecks }: each run has name, status, startTime, endTime, trigger name/code, and any top-level error. IMPORTANT — no runs does NOT mean the flow is healthy. A trigger that fires and evaluates to nothing, or fails to evaluate, records a TRIGGER CHECK and never becomes a run. When there are no runs (or when includeTriggerChecks is set) this tool also reports the trigger check history, so "nothing ran" can be told apart from "the trigger has been failing". Read triggerChecks.byStatus before concluding a flow is fine.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMax runs to return. Paginates automatically. Default 30.
flowNameYesName (ID) of the flow.
environmentNameYesName of the Power Platform environment.
includeTriggerChecksNoAlso report trigger check history when runs DO exist. Checks are always reported when there are no runs. Costs two extra API calls.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description goes far beyond that by disclosing the return shape, the critical caveat that no runs does not mean the flow is healthy, the trigger-check mechanism, and the extra API-call cost of includeTriggerChecks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, then return shape, then the important caveat. Most sentences earn their place, but there is mild redundancy in the two sentences explaining trigger checks, and the warning could be tightened slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately explains the return object (runs, runCount, triggerChecks) and the fields of each run. It also covers the critical interpretation nuance about trigger checks, leaving nothing essential missing for correct invocation and understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds real meaning for includeTriggerChecks by explaining when trigger check history is returned and why it matters (distinguishing 'nothing ran' from 'the trigger is failing'), which goes beyond the schema's brief note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Fetch) and resource (run history for a flow) and sources it to Power Automate, which implicitly separates it from store-flow siblings. However, it never explicitly names or contrasts with siblings like get_live_flow_run_error or get_store_flow_runs, so sibling differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use versus alternatives; the agent must infer that this tool is for retrieving run history. The directive 'Read triggerChecks.byStatus before concluding a flow is fine' is a useful scenario cue, but it does not guide selection among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_store_flowGet cached flowA
Read-only
Inspect

[Requires Pro+ plan] Get full details for a single Power Automate flow from the Power Clarity cache. Includes trigger URL, owners, state, run statistics, and governance metadata. Data is from the stored snapshot — not live from the Power Automate API.

ParametersJSON Schema
NameRequiredDescriptionDefault
flowNameYesName (ID) of the flow.
environmentNameYesName of the Power Platform environment.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds material context beyond them: a Pro+ plan entitlement requirement and the important staleness caveat that the data is a cached snapshot rather than a live read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences with no waste: entitlement flag, core purpose, and the snapshot caveat in descending order of importance. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by enumerating the returned fields. Combined with the entitlement and caching notes, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so flowName and environmentName are already documented in the schema. The description lists output fields rather than adding syntax or semantics for the two parameters, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource — 'Get full details for a single Power Automate flow from the Power Clarity cache' — and enumerates the payload (trigger URL, owners, state, run statistics, governance metadata). It also distinguishes itself from the live siblings by noting data comes from a snapshot, not the live API.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'stored snapshot — not live from the Power Automate API' clause gives a clear context for when this is the right tool versus a live-fetch sibling like get_live_flow. It stops short of naming that alternative or stating exclusions explicitly, so it is clear context rather than full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_store_flow_runsGet cached run historyA
Read-only
Inspect

[Requires Pro+ plan] Get cached run history for a flow from the Power Clarity store. Defaults to the last 7 days. Returns startTime, endTime, status, duration (seconds), failedActions, and remediation hint per run. Data is from the stored snapshot — not live from the Power Automate API.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMaximum number of run rows to return (default 5000).
statusNoFilter by status. Only the first value is used in the OData filter.
endTimeNoISO 8601 end of the time window.
flowNameYesName (ID) of the flow.
startTimeNoISO 8601 start of the time window (default: 7 days ago).
environmentNameYesName of the Power Platform environment.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), and the description adds real context beyond them: a plan gate, the fact that results come from a stored snapshot rather than the live API, and the default time window. It does not disclose truncation or pagination behavior for the 5000-row cap, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, front-loaded with the plan requirement, then purpose, then scope/default, then return shape. No redundancy or filler; each sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the per-run fields returned and warns that data is snapshot-based, which is exactly what an agent needs before calling. It omits that results can be capped by the default top=5000, a minor gap for a read tool whose safety profile is already in annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters including defaults and the status enum behavior. The description only restates the 7-day default window and lists returned fields, adding little parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get cached run history for a flow from the Power Clarity store') and uses 'cached' plus 'not live from the Power Automate API' to separate it sharply from sibling get_live_flow_runs. An agent can pick between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the prerequisite ([Requires Pro+ plan]), the default window (last 7 days), and the key selection condition — use this for stored snapshot data rather than live API data. It stops short of explicitly naming get_live_flow_runs as the alternative when freshness is required, so it is clear context without a hard exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_store_flow_summaryGet cached run summaryA
Read-only
Inspect

[Requires Pro+ plan] Get aggregated run statistics for a flow from the Power Clarity cache: total runs, success count, failure count, success rate, fail rate, and average/max duration over a time window. Data is from the stored snapshot — not live from the Power Automate API.

ParametersJSON Schema
NameRequiredDescriptionDefault
endTimeNoISO 8601 end of the time window.
flowNameYesName (ID) of the flow.
startTimeNoISO 8601 start of the time window (default: 7 days ago).
environmentNameYesName of the Power Platform environment.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe read profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the description's added value is the plan gating and the key staleness disclosure that the data comes from a cache snapshot rather than live API. That is genuinely useful behavioral context an agent could not infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler; the plan requirement and cache-vs-live caveat are front-loaded rather than buried. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description explicitly enumerates the returned metrics, so the agent knows exactly what it gets back. Combined with the plan gate, time-window scope, and cache caveat, nothing needed to call or interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the startTime default of '7 days ago', so the schema already documents all four parameters. The description only says 'over a time window' and adds no format or semantics beyond the structured fields, matching the baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ('Get aggregated run statistics for a flow') with an enumerated list of the exact metrics returned (runs, success/failure counts, rates, avg/max duration). The 'aggregated ... from the cache' framing lets an agent separate this from raw-run siblings like get_store_flow_runs without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clarifies the data source boundary ('stored snapshot — not live from the Power Automate API'), which implicitly routes the agent to live-API siblings when freshness is needed, and states a prerequisite ('[Requires Pro+ plan]'). It stops short of naming the alternative tool explicitly or stating when-not-to-use beyond the staleness caveat.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_store_makerGet makerA
Read-only
Inspect

[Requires Pro+ plan] Get details for a single maker from the Power Clarity cache by their key (usually the AAD object ID). Includes flow/app counts and whether the account has been deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault
makerKeyYesMaker RowKey (AAD object ID of the user).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false). The description adds genuinely useful context beyond that: a Pro+ plan gate, that results come from a cache (implying possible staleness), and that the payload includes flow/app counts and an account-deleted flag.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the plan requirement front-loaded and zero filler. Every clause carries information the agent can act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description compensates by naming the key return contents (flow/app counts, deleted-account status). For a single-parameter read tool, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so makerKey and its AAD object ID meaning are fully documented in the schema. The description's '(usually the AAD object ID)' only marginally reinforces what the schema already states, landing at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Get details') and resource ('a single maker'), plus the lookup key and data source ('Power Clarity cache'). It implicitly separates itself from the sibling list_store_makers by specifying a single maker, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a real prerequisite ('[Requires Pro+ plan]') and reveals that the lookup goes through a cache, which hints at when it is appropriate. However, it never says when to prefer this over list_store_makers or get_store_flow, leaving alternative selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_live_connectionsList connectionsA
Read-only
Inspect

List Power Platform connections in an environment directly from Power Automate. Returns id, displayName, connectorName, environment, createdBy (full object), authenticatedUser, statuses, overallStatus, createdTime, expirationTime, and connectionParameters for each connection. Pass search= to narrow the list and receive a paste-ready connectionReferenceTemplate plus action-side hostTemplate per connection — drop these into update_live_flow's connectionReferences and inputs.host without further edits.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMax connections to RETURN, applied after search. Paginates automatically. Omit for all.
searchNoOptional case-insensitive substring filter applied to id, displayName, connectorName, and accountName. Adds connectionReferenceTemplate + hostTemplate to each returned connection.
environmentNameYesRequired. Name of the Power Platform environment (a GUID, or a name like "Default-<tid>"). Call list_live_environments if you do not have one — the platform cannot list connections across environments.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), but the description adds behavior the annotations cannot: the exact returned field set and the search-triggered side effect that each connection gains a paste-ready connectionReferenceTemplate plus hostTemplate. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and tightly packed, but the long enumeration of return fields makes the opening sentence dense. Since there is no output schema the list earns its place; it is still slightly list-heavy rather than prose-efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema present, the description carries the return shape, the search-triggered enrichment, and the downstream integration target. Nothing an agent needs to call this correctly or use its result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description earns above it by explaining the intent behind search (produces templates that drop straight into update_live_flow) rather than restating the parameter. It omits detail on top's pagination ordering beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: 'List Power Platform connections in an environment directly from Power Automate.' The scope phrase separates it from the store-side sibling list_store_connections and from list_live_environments, so an agent picks the right list tool without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage direction: pass search=<term> to narrow the list, and names the downstream consumer (update_live_flow's connectionReferences and inputs.host). It does not state an explicit when-not or contrast against list_store_connections, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_live_environmentsList environmentsA
Read-only
Inspect

List all Power Platform environments you belong to, directly from Power Automate. Returns id, displayName, sku, location, and state for each environment. mode=all (default) and mode=member: every environment you are a member of. mode=admin: only those you administer; errors rather than guessing if admin access cannot be determined. isAdmin means you hold the ListAnyFlow permission there — the capability list_live_flows mode=admin needs. It is null, never false, when the platform did not tell us. isMember is true for every environment returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMax environments to return. Paginates automatically. Omit for all.
modeNoall (default) and member: every environment you belong to. admin: only those where you hold ListAnyFlow; errors rather than returning a shorter list if admin access cannot be determined.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/non-destructive safety, yet the description adds genuinely non-obvious behavior: admin mode errors rather than returning a short list, isAdmin is null never false when the platform is silent, and isMember is always true. This is exactly the edge-case context an agent needs to interpret results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and return fields, then layers mode semantics and field-flag caveats in a tight sequence. Some mode wording is duplicated verbatim between description and schema, which is the only waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and discharges it fully: it names the returned fields, explains pagination via 'top', and clarifies the isAdmin/isMember flag semantics. Nothing needed to call or interpret this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the mode enum is fully documented in the schema; the description largely restates the same mode definitions. It adds a little by tying admin mode to the ListAnyFlow permission, but for the two parameters the schema does the heavy lifting, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List all Power Platform environments you belong to, directly from Power Automate') and immediately enumerates the returned fields (id, displayName, sku, location, state). An agent knows exactly what this returns and how it differs from flow/connection listing siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The three modes are spelled out with their selection conditions (member = environments you belong to; admin = only those you administer), and it cross-references list_live_flows mode=admin which needs this capability. It stops short of naming alternative tools such as list_store_environments, so no explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_live_flowsList flowsA
Read-only
Inspect

List Power Automate flows in an environment. Returns id, displayName, state, triggerType, and lastModifiedTime for each flow. mode=owner (default): flows you own plus flows shared with you (personal + team), with full definitions. mode=admin: all flows in the environment (requires an admin account). mode=admin with includeDeleted=true also returns soft-deleted flows (state=Deleted) — the only way to find a deleted flow. If search is provided, results are filtered to flows whose displayName contains the search text. For large environments pagination is time-bounded — if nextLink is returned, pass it as continuationUrl to retrieve the next batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMax flows to return. Paginates automatically. Omit for all.
modeNoowner (default): user-scoped — owned + shared-with-me flows (personal + team), with full definitions. admin: admin-scoped endpoint, all flows.
searchNoOptional case-insensitive filter applied to flow displayName.
includeDeletedNoInclude soft-deleted flows, which come back with state=Deleted and can be restored with restore_live_flow. Requires mode=admin — the user-scoped listing never returns deleted flows. Off by default.
timeoutSecondsNoStop collecting pages after this many seconds and return a nextLink for the next batch. Default 25. Max 55.
continuationUrlNonextLink value returned by a previous call. Pass to resume pagination from where the last call stopped. Must match the same mode as the original call.
environmentNameYesName of the Power Platform environment.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavior beyond the readOnly/destructive annotations: admin mode requires an admin account, deleted flows only surface via admin+includeDeleted, and pagination is time-bounded with a continuationUrl for resumption. It does not mention rate limits or result-size limits, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose then return fields, followed by mode semantics, filtering, and pagination in a logical order. Dense but nearly every sentence earns its place; the mode explanation is stated twice (sentence and schema) which is slight redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by naming the returned fields, and it covers the pitfalls an agent needs: admin requirement, deleted-flow access, and continuation-based pagination. Nothing essential for a correct call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter already carries a detailed description, so the schema does the heavy lifting. The description largely restates mode/search/includeDeleted semantics rather than adding new syntax or format detail, matching the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('List Power Automate flows in an environment') and enumerates the returned fields (id, displayName, state, triggerType, lastModifiedTime). This clearly separates it from get_live_flow and the list_store_flows sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Strong condition-based guidance: mode=owner for own/shared flows, mode=admin for environment-wide (requires admin account), and includeDeleted=true as 'the only way to find a deleted flow'. It does not address sibling alternatives like list_store_flows, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_skillsList skill bundlesA
Read-only
Inspect

Skill bundles: groups of the tools listed here that are used together for one task (diagnose-connection-references, build-flow, debug-flow, monitor-flow, discover, governance). Returns each bundle's one-line description and tool names. Use it when unsure which tools fit a request; tool_search "skill:" returns the bundle's full guidance and definitions. Non-billable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint/destructiveHint/openWorldHint, so the safety profile is handled. The description adds genuinely new context beyond them: the return shape (one-line description plus tool names per bundle) and the non-billable cost note, which matters for an agent deciding whether to call it. It doesn't need to cover auth or rate limits for a zero-param listing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the definition, then the return shape, then the usage rule and alternative, ending with the cost note. Every sentence does work; the bundle-name enumeration is directly useful for routing rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description explicitly says what is returned (each bundle's one-line description and tool names) and where to get deeper definitions. With zero parameters and annotations covering safety, nothing needed to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so the baseline of 4 applies. The description correctly avoids inventing parameter detail and instead spends its words on what the empty-input call yields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (skill bundles), then defines what a bundle actually is and enumerates the available ones. This is clearly distinguishable from siblings like tool_search, which the description explicitly contrasts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('Use it when unsure which tools fit a request') and names the alternative with exact syntax ('tool_search "skill:<name>"') plus what that alternative returns instead. Nothing about tool selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_store_connectionsList cached connectionsA
Read-only
Inspect

[Requires Pro+ plan] List all Power Platform connections from the Power Clarity cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds two genuinely new facts: an entitlement gate (Pro+ plan) and that results come from a cache rather than live data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence; the entitlement requirement is front-loaded in brackets and the scope follows immediately. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only list tool with annotations carrying the safety profile and no output schema, this covers the essentials (what, source, plan gate). The only real gap is failing to note that cached results may be stale relative to list_live_connections.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics for the description to compensate for. The 4 baseline applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (Power Platform connections) plus the data source (Power Clarity cache), which implicitly distinguishes it from the sibling list_live_connections. It stops short of naming that alternative explicitly, so an agent must infer the cache-vs-live split.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only contextual cue is the '[Requires Pro+ plan]' tag. There is no guidance on when to prefer cached connections over list_live_connections, nor any freshness/staleness caveat that would let an agent choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_store_environmentsList cached environmentsA
Read-only
Inspect

[Requires Pro+ plan] List all Power Platform environments from the Power Clarity cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely new context beyond that: the Pro+ plan gating and the fact that results come from a cache rather than live state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the plan constraint front-loaded in brackets. Nothing is redundant and nothing needs trimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only list tool with annotations covering safety, the definition is nearly sufficient. The remaining gap is cache freshness — the description says results are cached but not how stale they might be or whether a refresh is possible, which matters for a cached-data tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there are no parameter semantics to convey and the baseline of 4 applies. The description correctly avoids inventing filtering options that the schema does not support.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List all Power Platform environments") and qualifies the source as the Power Clarity cache, which implicitly separates it from the live sibling (list_live_environments). It does not name that sibling explicitly, so the differentiation is inferable rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The "[Requires Pro+ plan]" tag gives a real prerequisite, but there is no explicit guidance on when to prefer this cached listing over list_live_environments. Usage is implied by the word "cache" rather than explained.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_store_flowsList cached flowsA
Read-only
Inspect

[Requires Pro+ plan] List Power Automate flows from the Power Clarity cache. Optionally filter by governance flags (monitor, notification rules). Returns key fields including trigger URL, state, and run failure rate. Data is from the stored snapshot — not live from the Power Automate API.

ParametersJSON Schema
NameRequiredDescriptionDefault
monitorNoIf set, only return flows where monitor equals this value.
rule_notify_onfailNoIf set, filter flows by whether on-fail notifications are enabled.
rule_notify_onmissingdaysNoIf set, filter flows by whether missing-days notifications are enabled.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, non-destructive, closed-world). The description adds genuinely useful context beyond them: the Pro+ plan gate and the important warning that data comes from a stored snapshot and may be stale relative to the live API.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each carrying distinct information: plan requirement, action and source, filterable facets, return fields, and the staleness caveat. Front-loaded with the gating requirement and no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description helpfully enumerates key returned fields (trigger URL, state, run failure rate) and clarifies the data's freshness. It does not mention result limits or pagination, which is a minor remaining gap for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each filter parameter is already fully documented in the schema. The description only groups them under 'governance flags (monitor, notification rules)', adding minimal meaning beyond the structured fields, which matches the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list Power Automate flows), names the data source (Power Clarity cache), and explicitly contrasts it with live API data, which cleanly separates it from siblings like list_live_flows and get_live_flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a prerequisite ([Requires Pro+ plan]) and clarifies the cache-vs-live distinction so the agent knows this returns snapshot data rather than fresh results. It never names the live alternative explicitly ('use list_live_flows when you need current state'), so it falls just short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_store_makersList makersA
Read-only
Inspect

[Requires Pro+ plan] List all makers (citizen developers / AAD users) from the Power Clarity cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safe read-only, closed-world profile. The description goes beyond them by disclosing a licensing prerequisite (Pro+ plan) and the provenance of the data (served from the Power Clarity cache), which is actionable context an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the gating prerequisite front-loaded in brackets and no filler. Every clause (verb, resource, gloss, source) carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter read-only listing tool with annotations covering the safety profile and no output schema to explain, the definition is nearly sufficient. It stops just short of noting result ordering, size, or whether the cache can be stale, which is the only remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to clarify beyond what the empty schema already communicates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ('List all makers') with a clarifying gloss of the domain term ('citizen developers / AAD users') and the data source (Power Clarity cache). It reads as the plural counterpart to the sibling get_store_maker, though it never explicitly names that alternative to disambiguate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The '[Requires Pro+ plan]' prefix is a genuine prerequisite that tells the agent when the call is even permitted, which is more than most list tools offer. However, there is no explicit guidance on when to use this versus get_store_maker for a single maker or the other list_store_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_store_power_appsList cached appsA
Read-only
Inspect

[Requires Pro+ plan] List all Power Apps canvas apps from the Power Clarity cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine context beyond that: the Pro+ plan licensing requirement and the fact that results come from a cache (implying possible staleness and no live refresh), which are behavioral traits the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with no filler. The plan prerequisite is front-loaded in brackets, though placing the conditional bracket ahead of the actual purpose is slightly less ideal than leading with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema list tool the description is close to sufficient. It still omits what the returned apps contain (names, ids, connection references) and whether the cache list is paginated or filtered, so an agent cannot fully anticipate the response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to clarify; the baseline of 4 applies. Adding parameter detail would be meaningless here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'List all Power Apps canvas apps'. 'Power Apps canvas apps' is distinct from the sibling list_store_flows/connections/makers tools, so an agent can differentiate. However it never names a sibling explicitly and the 'from the Power Clarity cache' phrasing adds ambiguity rather than precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance relative to the many sibling list_store_* tools. The only conditional information is the '[Requires Pro+ plan]' prerequisite, which is a gating requirement, not usage guidance about selecting this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_bugReport a bugBInspect

Report a Flow Studio MCP bug or missing capability, append text evidence, or check your reports. Free and available even after quota is reached. Do not include passwords, access tokens, secrets, or full flow definitions unless necessary.

ParametersJSON Schema
NameRequiredDescriptionDefault
chunkNoOptional. Omit to append the next chunk automatically.
actionYes
notifyNo
ticketNo
contentNoText attachment body. Max 64 KB per call.
detailsNo
summaryNo
categoryNoother
severityNomajor
file_nameNo
flow_nameNo
tool_nameNo
final_chunkNo
content_typeNoMedia type of the attachment. text/plain (default), text/csv, text/markdown, application/json, application/har+json, application/xml, image/png, image/jpeg, image/gif, image/webp, application/pdf.
contact_emailNo
content_base64NoBinary attachment body, base64-encoded. Max 256 KB decoded per call. Use for images/PDF; pass text through `content` instead. Do not send both.
environment_nameNo
include_diagnosticsNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is already covered. The description adds genuinely useful context beyond that: quota-independent availability and a security warning against including secrets. However, it omits key behavioral traits like the chunking workflow (chunk/final_chunk), what 'notify' and 'include_diagnostics' do, and workflow sequencing across the append actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core capabilities and followed by the security caveat. Efficient for the tool's breadth, with no filler, though the action list could be sharpened to match the enum exactly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter, multi-action tool with chunked uploading and no output schema, the description is under-developed. It never explains the report/append/status/list workflow, chunk sequencing, or the purpose of most parameters, so an agent would have to infer a lot from a sparse schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% for 18 parameters, so the description must compensate and largely does not. It hints at the text-attachment path ('append text evidence') and warns about sensitive content, but leaves most parameters (ticket, notify, severity, category, environment_name, flow_name, tool_name, include_diagnostics, final_chunk, etc.) unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names concrete verbs and resources: reporting a bug or missing capability, appending text evidence, and checking reports. This maps reasonably to the multi-action enum (report/append/status/list) and is clearly distinguishable from the flow-oriented siblings. It loses a point because the four enum actions (especially the distinction between 'status' and 'list') aren't disambiguated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by listing the three things you can do, and it notes the tool is 'Free and available even after quota is reached,' which is a useful when-to-use signal. There are no explicit exclusions or alternative routing, but no realistic siblings compete with it either.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_live_parametersResolve action inputs
Read-only
Inspect

Resolve a connector action's inputs the way the flow designer does: dropdown options, list and table columns, folder and file pickers — every input in one call, or one with parameterName. Reads only: it runs the lookups the designer runs, never an action. Pass values you have in parameters; pass a display name in match to get back the value to write into the flow. An input whose parent is not known yet has status "needs". Inputs inside an object are addressed by key (body/recipient/groupId). Omit connectionName and one is chosen.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMax options per dropdown (default 200). A longer list is marked truncated.
matchNoExact display name, or the value itself, per input, e.g. { "folderPath": "Inbox" }. Case-insensitive, never fuzzy. Folders also take /path. matchCount 0 answers status "nomatch".
browseNoOpen a folder: { "field": "<input>", "id": "<folder value>" }.
detailNoColumn detail. Default compact.
searchNoNarrow long option or column lists by name (a filter, not a pick).
apiNameNoAlias for connectorName.
includeNoAdd "outputs" to get the fields this action returns.
flowNameNoWith actionName: take the connector, operation and connection from this flow action.
actionNameNoAction (or trigger) name in flowName.
parametersNoValues already chosen, e.g. { "dataset": "<site url>" }.
operationIdNoOperation ID, e.g. PostItem. Not needed with flowName + actionName.
connectorNameNoConnector name, e.g. shared_sharepointonline.
parameterNameNoResolve only this input. Omit for every input.
connectionNameNoConnection to run as. Omit to have one chosen.
environmentNameYesName of the Power Platform environment.
resubmit_live_flow_runResubmit runAInspect

Resubmit a failed or cancelled Power Automate flow run via the live PA API, re-using the original trigger payload. Discovers the trigger name from the flow definition automatically — no trigger name parameter needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
runNameYesRun identifier (name field from get_live_flow_runs), or "latest" for the most recent run.
flowNameYesName (ID) of the flow.
environmentNameYesName of the Power Platform environment.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare non-read-only, non-idempotent, open-world, non-destructive; the description adds valuable behavior beyond that — it reuses the original trigger payload and auto-discovers the trigger name. It still omits whether a new run ID is created, what failure returns, or any permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the action and scope, followed by the mechanism and the parameter-elimination note. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter mutation tool with no output schema, the description covers purpose, precondition, and payload handling adequately. It leaves minor gaps around post-resubmit behavior and error cases, but nothing an agent must know to invoke it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (including the 'latest' shorthand for runName), so the baseline is 3. The description's note that no trigger-name parameter is needed adds context but is behavioral rather than clarifying an existing parameter's meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Resubmit a failed or cancelled Power Automate flow run') plus the key scope constraint (only failed or cancelled runs) and the mechanism (live PA API, re-using the original trigger payload). This cleanly separates it from siblings like trigger_live_flow (creates a new run) and cancel_live_flow_run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context: use it on a failed or cancelled run, and the original payload is reused rather than supplied. It does not explicitly name alternatives (e.g., trigger_live_flow for a fresh run) or state what happens if the run isn't in a resubmittable state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_live_flow_stateTurn flow on or offB
Idempotent
Inspect

Start or stop the flow you name. Reads the current state first and only calls Power Automate if a change is actually needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesDesired state for the flow.
flowNameYesName (ID) of the flow.
environmentNameYesName of the Power Platform environment.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true and destructiveHint=false, but the description adds real interpretation: it reads current state and skips the Power Automate call when no change is needed. That explains why the operation is idempotent and what actually happens on a no-op, which the hint alone does not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, action front-loaded, with no restatement of the title. Minor waste in 'the flow you name,' which merely gestures at a parameter the schema already names precisely.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter mutation with no output schema, the description covers what it does and the no-op behavior but says nothing about the outcome the agent gets back (confirmation, prior state, error on bad flow name). Adequate but with a visible gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all three parameters documented, including the Started/Stopped enum, so the schema carries the load and baseline 3 applies. The description adds only the vague phrase 'the flow you name' and nothing about environmentName or accepted state values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair and resource ('Start or stop the flow you name'), so an agent knows this flips a named flow's state rather than describing or triggering it. It does not differentiate itself from siblings like trigger_live_flow or update_live_flow, which is the only thing keeping it off a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to reach for this versus trigger_live_flow (run once) or update_live_flow (configuration change). The 'only calls Power Automate if a change is needed' sentence is behavioral detail, not a usage condition or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_live_connectionTest connectionInspect

Test a connection, or run one operation on it. Without operationId it runs the connector's own connection test. With operationId it runs that operation and returns 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. connectionName comes from list_live_connections; operation ids from describe_live_connector.

ParametersJSON Schema
NameRequiredDescriptionDefault
parametersNoThe operation's inputs by name (path, query, header or body).
operationIdNoOmit to run the connector's own connection test.
connectorNameYesConnector name, e.g. shared_sharepointonline.
connectionNameYesThe connection, from list_live_connections.
environmentNameYesName of the Power Platform environment.
trigger_live_flowRun flowAInspect

Run a flow on demand — the same as the maker portal's "Run flow" button. Works with Request triggers (HTTP request, manual Button, PowerApps) and with scheduled RECURRENCE flows, which run immediately; a scheduled flow takes no inputs, so passing body to one is refused. Pass trigger inputs as body. Automated connector triggers only fire from their source event.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON body to POST to the trigger URL. Omit for flows that expect an empty body.
flowNameYesName (ID) of the flow.
connectionsNoOnly for a flow whose connections are provided by whoever runs it. Map of connection-reference name to the connection id to run it with, e.g. {"shared_office365users":"shared-office365user-…"}. Omit unless the result told you the connection picked was wrong; ids come from list_live_connections.
environmentNameYesName of the Power Platform environment.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=false, idempotentHint=false, non-destructive). The description adds genuine behavioral context beyond them: scheduled recurrence flows execute immediately, take no inputs, and refuse a `body`, while automated connector triggers cannot be manually fired at all. It omits auth/permissions and expected success behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, front-loaded with the primary purpose and the portal analogy, then the trigger-type constraints. Every clause carries constraint information, though the middle sentence is information-packed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description covers the invocation-critical concerns for a non-idempotent mutation: which trigger types accept it, what inputs are valid, and what is rejected. It could say more about what is returned (e.g., a run id) but is otherwise adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaning on top by clarifying that trigger inputs are passed as `body` and that `body` is refused for scheduled flows, tying the parameter to trigger-type behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (run/trigger a flow) and anchors it to the maker portal's "Run flow" button, making intent unambiguous. It clearly distinguishes the action from read/update siblings like get_live_flow and update_live_flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains precisely when the tool applies (Request triggers, manual Button, PowerApps) and when it cannot be used (automated connector triggers only fire from their source event), plus the scheduled-recurrence case. It stops short of naming sibling alternatives for the cases where it doesn't apply.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_live_flowCreate or update flowA
DestructiveIdempotent
Inspect

Update or create a flow. Use dryRun: true to preview any change without writing. Omit flowName to create: definition and displayName are required. Give flowName to update: displayName and/or definition and/or connectionReferences. SURGICAL EDIT: pass operations — an ordered list of set/add/remove/merge ops on array-of-keys paths — to change one action or parameter without resending the whole definition. Provide EITHER operations OR definition; connectionReferences may accompany either and lands in the same save. WHOLE definition: call get_live_flow, mutate properties.definition, pass it here. RENAME: pass displayName alone. Power Automate rejects a PATCH carrying no flow content, so this re-saves the unchanged definition — the maker portal does the same. definition.description is required, and must be brief — we append " #flowstudio-mcp" to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoPreview only, on BOTH paths: with flowName, apply the change to the live definition and return the result + what changed; without flowName, return the flow that WOULD be created. Nothing is written either way.
flowNameNoName (ID) of the flow to update. Omit or leave blank to create a new flow.
definitionNoFull flow definition as a JSON object (triggers + actions + parameters + outputs + description). MUST be a JSON object — strings are rejected. Do not JSON.stringify the definition; pass the parsed object directly. Required when creating. For updates, obtain from get_live_flow (properties.definition), modify it, then pass the modified object here. definition.description is required (a short note about what changed); when updating, if you omit it we reuse the flow's existing description.
operationsNoSURGICAL EDIT of an existing flow (requires flowName; do not combine with definition). An ordered list applied to the LIVE definition. Each item = { op, path, value? }. path is an ARRAY of literal keys, e.g. ["actions","Send_Email","inputs","parameters","subject"] (each element is one key; a "/" inside an element is literal, so it addresses SharePoint/Dataverse columns like ["actions","Update_Item","inputs","parameters","item/Title"]). ops: set (create/overwrite), add (new key — errors if it already exists), remove (delete key — no-op if absent), merge (deep-merge an object value, keeping sibling keys).
displayNameNoDisplay name for the flow. Required when creating.
environmentNameYesName of the Power Platform environment.
connectionReferencesNoConnection references map copied from get_live_flow. Direct-flow entries use { connectionName, id }. Solution-aware entries also include { connectionReferenceLogicalName, source } and must retain those fields exactly. A freshly migrated entry may instead be keyed by the physical connection name and carry no connectionName field at all — copy it back as-is. The action/trigger inputs.host.connectionName must match the map key; the physical connectionName stays inside the entry. Never invent a solution logical name. Adding a connectionReferenceLogicalName to an entry that lacks one does not always take: the save can return success without storing it, so re-read with get_live_flow to confirm. MAY BE PASSED ALONGSIDE operations: your entries are merged over the stored map and saved in the SAME request as the edit. That is how you add the first action for a connector the flow does not use yet — a reference saved on its own does not stick, because Power Automate prunes an entry no action references. Your entries win on a key collision.
expectedLastModifiedTimeNoWith a whole definition: refuse if the flow changed since you read it. Pass get_live_flow's lastModifiedTime.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and idempotentHint=true, and the description adds real context beyond them: dryRun writes nothing on either path, Power Automate rejects contentless PATCH so rename re-saves the unchanged definition, operations apply to the LIVE definition, and the ' #flowstudio-mcp' suffix is appended to description. These are non-obvious behavioral traits, not restatements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the create/update split and dense throughout, but several details (operations path syntax, op meanings, connectionReferences edge cases) duplicate the schema's own descriptions, making it longer than strictly necessary. Every sentence is still informative, so it stops short of 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, nested-object, no-output-schema mutation tool, the description covers all the branching modes (create, update, surgical, whole-definition, rename, dry-run) plus connectionReferences sticking caveats. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, but the description adds the exclusive/mutual relationships the schema cannot express: 'Provide EITHER operations OR definition', connectionReferences may accompany either and lands in the same save, and expectedLastModifiedTime is a concurrency guard. op semantics (set/add/remove/merge behaviors) are also spelled out.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Update or create a flow') and immediately disambiguates the two modes via flowName presence. An agent can distinguish it from the read-only get_live_flow and the separate update_store_flow siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use guidance: omit flowName to create (definition+displayName required), supply flowName to update, use dryRun to preview, use operations for surgical edits versus a whole definition, and pass displayName alone to rename. It also routes to get_live_flow as the source for a whole-definition update.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_store_flowUpdate flow governance fieldsA
Idempotent
Inspect

[Requires Pro+ plan] Update governance/metadata fields on a flow record in the Power Clarity store (description, business impact, owner team, tags, monitor flag, notification settings, etc.). Only fields provided are updated (merge semantics). Writes to the cache — does not call the Power Automate API.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
tierNo
monitorNoEnable/disable monitoring for this flow.
criticalNo
flowNameYesName (ID) of the flow.
securityNo
ownerTeamNo
descriptionNo
supportEmailNo
supportGroupNo
businessValueNo
businessImpactNo
environmentNameYesName of the Power Platform environment.
ownerBusinessUnitNo
rule_notify_emailNoComma-separated email addresses for notifications.
rule_notify_onfailNoSend notification when the flow fails.
businessJustificationNo
rule_notify_onmissingdaysNoSend notification when flow has not run for this many days (0 = disabled).

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true, destructiveHint=false and openWorld=false, so the safety profile is covered; the description adds genuine context beyond that with merge semantics ('only fields provided are updated') and the fact that writes land in the cache rather than the live Power Automate API. It does not explain how a field is cleared or what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with the plan requirement and target resource front-loaded and the merge/cache behavior appended. No filler, though the bracketed plan notice interrupts the leading purpose statement slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter mutation tool with no output schema and low schema coverage, the description covers the safety and merge semantics well but omits clearing/removal semantics, tag overwrite vs append behavior, and return value. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 18 parameters and only 33% schema description coverage, the schema leaves most fields undocumented (tier, security, critical, businessValue, businessJustification, supportEmail, supportGroup, ownerBusinessUnit). The description names a handful of updatable concepts and clarifies merge behavior, but does not explain what the undocumented fields mean or their expected value formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (update) plus the resource and the narrow field category (governance/metadata fields on a flow record in the Power Clarity store). The 'store' qualifier implicitly separates it from update_live_flow, but no sibling is named explicitly, so routing still requires inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two real usage constraints: a Pro+ plan prerequisite and the note that it writes to cache rather than calling the Power Automate API, which helps an agent decide between this and update_live_flow. However, it never states when to prefer this tool over that sibling or what happens if used outside Pro+.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Addedcreate_live_connection
    • Changeddescribe_live_connector1 field changed
      • changedInput schema / properties / apiName / description
        Previous value: -"Alias for connectorName, matching Canvas MCP describe_api naming."New value: +"Alias for connectorName."
    • Changedresolve_live_parameters1 field changed
      • removedInput schema / properties / dynamicMetadata
        Removed value: -{
        -  "description": "Not needed for the operation's own inputs. For a list the connector does not describe, send its dropdown metadata; it runs through the designer's dropdown service.",
        -  "type": "object"
        -}
    • Addedtest_live_connection
  2. 2 tool updates
    • Changedresolve_live_parameters1 field changed
      • changedInput schema / properties / dynamicMetadata / description
        Previous value: -"Not needed for the operation's own inputs. For a list the connector does not describe (e.g. Dataverse ListRecords over connectionreferences), send its dropdown metadata; it runs through the designer's dropdown service."New value: +"Not needed for the operation's own inputs. For a list the connector does not describe, send its dropdown metadata; it runs through the designer's dropdown service."
    • Changedupdate_live_flow1 field changed
      • addedInput schema / properties / expectedLastModifiedTime
        Added value: +{
        +  "description": "With a whole definition: refuse if the flow changed since you read it. Pass get_live_flow's lastModifiedTime.",
        +  "type": "string"
        +}
  3. 2 tool updates
    • Changedget_live_flow1 field changed
      • addedInput schema / properties / includeTriggerUrl
        Added value: +{
        +  "description": "Also return the HTTP trigger URL. It is a credential: anyone holding it can run the flow.",
        +  "type": "boolean"
        +}
    • Changedresolve_live_parameters1 field changed
      • changedInput schema / properties / dynamicMetadata / description
        Previous value: -"Not needed for the operation's own inputs. For a lookup the connector does not define (e.g. Dataverse ListRecords over connectionreferences) send it and it is used as given."New value: +"Not needed for the operation's own inputs. For a list the connector does not describe (e.g. Dataverse ListRecords over connectionreferences), send its dropdown metadata; it runs through the designer's dropdown service."
  4. 5 tool updates
    • Changeddescribe_live_connector2 fields changed
      • addedInput schema / properties / depth
        Added value: +{
        +  "description": "summary (default): compact operation catalog. full: raw OpenAPI metadata.",
        +  "enum": [
        +    "summary",
        +    "full"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / mode
        Removed value: -{
        -  "description": "summary (default): compact operation catalog. full: raw OpenAPI metadata.",
        -  "enum": [
        -    "summary",
        -    "full"
        -  ],
        -  "type": "string"
        -}
    • Changedget_live_flow2 fields changed
      • addedInput schema / properties / actions
        Added value: +{
        +  "description": "Return only these actions, found at any nesting depth and each reported with the scopes it sits in, plus triggers. Combine with depth:\"summary\" to get the tree as well.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / depth
        Added value: +{
        +  "description": "full (default): the whole definition. summary: the action tree — name, type, operation, runAfter, nesting — with no inputs. Use summary on a large flow, then ask for the actions you need.",
        +  "enum": [
        +    "summary",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedget_live_flow_run_action_outputs1 field changed
      • changedInput schema / properties / runName / description
        Previous value: -"Run identifier (name field from get_live_flow_runs). Required unless checkId is given."New value: +"Run identifier (name field from get_live_flow_runs), or \"latest\" for the most recent run. Required unless checkId is given."
    • Changedget_live_flow_run_error1 field changed
      • changedInput schema / properties / runName / description
        Previous value: -"Run identifier (name field from get_live_flow_runs)."New value: +"Run identifier (name field from get_live_flow_runs), or \"latest\" for the most recent run."
    • Changedresubmit_live_flow_run1 field changed
      • changedInput schema / properties / runName / description
        Previous value: -"Run identifier (name field from get_live_flow_runs)."New value: +"Run identifier (name field from get_live_flow_runs), or \"latest\" for the most recent run."
  5. 5 tool updates
    • Changedadd_live_flow_to_solution1 field changed
      • changedInput schema / properties / solutionId / description
        Previous value: -"Target solution ID (Dataverse solutionid GUID). Omit for the default solution. Discover IDs via get_live_dynamic_options on shared_commondataserviceforapps/ListRecords with entityName \"solutions\" (value-path solutionid, value-title friendlyname); needs a Dataverse connection in the env."New value: +"Target solution ID (Dataverse solutionid GUID). Omit for the default solution. Discover IDs via resolve_live_parameters on shared_commondataserviceforapps/ListRecords with entityName \"solutions\" (value-path solutionid, value-title friendlyname); needs a Dataverse connection in the env."
    • Removedget_live_dynamic_options
    • Removedget_live_dynamic_properties
    • Addedresolve_live_parameters
    • Changedtrigger_live_flow1 field changed
      • addedInput schema / properties / connections
        Added value: +{
        +  "description": "Only for a flow whose connections are provided by whoever runs it. Map of connection-reference name to the connection id to run it with, e.g. {\"shared_office365users\":\"shared-office365user-…\"}. Omit unless the result told you the connection picked was wrong; ids come from list_live_connections.",
        +  "type": "object"
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Enables AI assistants to edit Power Automate cloud flows live, including reading/writing flow definitions, managing connectors, and syncing changes, with no admin rights or app registration required.
    18
    1
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    Local-first MCP server and Chromium extension for AI-assisted Microsoft Power Automate work, enabling users to inspect, validate, edit, run, review, and revert cloud flows using a browser session.
    24
    52 npm
    27
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Bringing the debugging we know and love as human programmers to our AI agents – debug any supported language with breakpoints, variable/state inspection, and stepping, to supercharge agents' capabilities to reason about runtime code.
    37 PyPI
    21
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.