Skip to main content
Glama
wiroai

Wiro MCP Server

Official
by wiroai

Update a Wiro workflow

update_workflow
Destructive

Edit a workflow's title, description, tags, or step graph safely. The tool checks for conflicts with a loaded timestamp and requires explicit confirmation before saving irreversible changes.

Instructions

Change a workflow you own (or your team owns): title, description, tags and/or its whole step graph. Read it with get_workflow first and send the full edited contents, plus that call's updatetime as loaded_updatetime so a newer save by someone else is not overwritten. Leave metadata.input.values out to keep the saved input values; a value shown as [hidden] is restored from the saved workflow. Everyone who can open the workflow can read its saved values, so never save a key or password in one. Wiro checks and prepares the new graph like create_workflow, with the same 40 KB limit on the new graph, also when the saved workflow is larger (removing steps can bring it under). Replacing the steps cannot be undone: without confirm: true the call checks the new graph, reports any problems and the defaults it filled, and returns what would change, saving nothing; show it to the user and repeat the call with confirm: true after they agree. Editing a published workflow takes it out of the public gallery until Wiro reviews it again, so that also needs acknowledge_review_reset: true.

Input Schema

NameRequiredDescriptionDefault
slugYesThe full workflow slug or the workflow page URL.
tagsNoReplaces the tags.
forceNoOverwrite a newer version. Only when the user explicitly wants that.
titleNoNew title.
confirmNoRequired to save new `contents`, after the user approved the change summary.
contentsNoThe workflow graph (version "1"): {version, nodes, output, schema, metadata}. Read get_playbook topic "workflow-graph" for the format and an example.
descriptionNoNew description, 1 to 1000 characters.
loaded_updatetimeNoThe `updatetime` from get_workflow (or the last update). Protects against overwriting newer changes.
acknowledge_review_resetNoRequired to edit a published workflow, after the user agreed it leaves the gallery until reviewed.

Output Schema

NameRequiredDescriptionDefault
urlYes
stateNo
titleYes
inputsYes
changesNo
outputsYes
previewNo
renamedYes
fullSlugYes
warningsYes
discardedNoWith unchanged: Start field changes Wiro does not keep, because it saves Start fields the way the wiro.ai editor writes them.
unchangedYes
nextActionNo
updatetimeNo
reviewResetYes
contentsChangedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.4.1

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, but the description adds substantial context the annotations cannot convey: default call saves nothing and only reports a diff, step replacement is irreversible, a 40 KB limit applies (even to shrink large saved workflows), and editing a published workflow drops it from the gallery pending review. It also discloses the optimistic-concurrency contract and the hidden-value restoration 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?

Front-loaded with purpose and scope, and nearly every sentence carries distinct operational information (concurrency, dry-run, size cap, gallery reset). It is nonetheless a single ~190-word block with the confirmation and size-limit rules compressed together, where bullets would make the decision points easier to scan.

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 a destructive, open-world mutation with a nested `contents` object and 9 parameters, the description covers what can be lost, what gating flags are required, size constraints and how to recover from a rejected graph. The output schema exists, so the brief mention of what the dry-run returns is sufficient rather than redundant.

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 schema carries parameter documentation and the baseline is 3. The description still earns credit by adding meaning beyond it: loaded_updatetime is framed as an overwrite guard tied to get_workflow, confirm is tied to a concrete approve-then-repeat loop, and omitting metadata.input.values is explained as preserving saved inputs. Marginal duplication of some schema text keeps it from a 5.

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 (Change) and resource (a workflow you own or your team owns) plus the exact editable surface: title, description, tags and/or its whole step graph. This cleanly separates it from create_workflow (needs validation, no existing slug), get_workflow (read-first prerequisite) and delete_workflow.

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 explicit sequencing ("Read it with get_workflow first"), the approval loop (call without confirm, show summary, repeat with confirm: true), conditional gates for acknowledge_review_reset and force, and a security rule (never save keys/passwords). An agent knows both when and how to proceed without inference.

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