Skip to main content
Glama
wiroai

Wiro MCP Server

Official
by wiroai

Save a workflow from the Workflow Agent

save_workflow_from_agent
Destructive

Save a Workflow Agent proposal as a new private workflow or apply it to an existing one, with a preview of changes before confirming.

Instructions

Save the workflow the Workflow Agent proposed in one of its replies. Without workflow it is saved as a new private workflow. With workflow (the workflow that was attached when the agent was asked to edit it) the proposal replaces that workflow's steps, title and description; its saved input values and hidden secret inputs are kept. Applying needs the attached workflow's loaded_updatetime, and without confirm: true it only returns what would change: show that to the user and repeat the call with confirm: true after they agree. The reply is read again from Wiro, so pass its ids, not the JSON. Wiro checks and prepares the graph against the live model catalog first; if it finds problems, send them back to the Workflow Agent in the same session. Save each proposal once; saving it again can create another copy. Saving is free; running the workflow is charged.

Input Schema

NameRequiredDescriptionDefault
tagsNoTags for the workflow.
forceNoWhen applying: overwrite a newer version. Only when the user explicitly wants that.
confirmNoRequired to apply a proposal to an existing workflow, after the user approved the change summary.
sessionYesThe session that reply belongs to.
workflowNoFull slug or URL of the workflow to apply the proposal to. Leave it out to save a new workflow.
message_idYesThe message id from send_agent_message or get_agent_message. One id covers the message and its reply.
artifact_hashNoWhich proposal to save when the reply has more than one (from send_agent_message or get_agent_message).
loaded_updatetimeNoRequired with `workflow`: the attached workflow's `updatetime` from send_agent_message or get_agent_message. Stops the save if someone changed the workflow since.
acknowledge_review_resetNoRequired to change a published workflow, after the user agreed it leaves the gallery until reviewed.

Output Schema

NameRequiredDescriptionDefault
urlYes
modeYes
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.
unchangedNo
nextActionNo
updatetimeNo
reviewResetNo
alreadySavedYes
contentsChangedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.4.1

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the dry-run-by-default semantics of `confirm`, what is preserved on replacement (input values, hidden secrets), the optimistic-concurrency check via `loaded_updatetime`, the catalog validation step and how to route failures back to the agent, and the cost model (saving free, running charged). This substantiates the destructiveHint/idempotentHint=false annotations with concrete consequence detail.

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 modes, then the confirm gate and the gotchas; almost every sentence carries operational weight. It runs long and a couple of clauses (the confirm sentence in particular) could be split or trimmed for a faster read.

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 an output schema present, the description need not explain return values, and it covers the remaining gaps an agent would hit: where ids come from, the confirmation loop with the user, stale-version protection, validation failures, the review-reset case, and cost. Nothing needed to call it correctly 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 the baseline is 3 and the schema already explains most parameters. The description adds a genuine extra constraint — the reply is re-read from Wiro, so pass ids rather than the proposal JSON — but otherwise largely restates the schema's own notes on `confirm`, `workflow`, and `loaded_updatetime`.

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 and resource: "Save the workflow the Workflow Agent proposed in one of its replies." It immediately splits the two modes (new private workflow vs. replacing an attached workflow's steps/title/description), which distinguishes it from create_workflow and update_workflow in the sibling list.

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 conditional routing: omit `workflow` to create new, pass it to apply to the attached workflow, and `confirm: true` is required to actually apply after the user approves the returned diff. It also names the source tools (send_agent_message / get_agent_message) for the ids and states the exclusion 'Save each proposal once; saving it again can create another copy.'

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