Skip to main content
Glama

update_flow

Modifies an existing conversation flow. Supports targeted incremental patches (adding/updating/removing specific nodes or edges, renaming, moving folders, or find-and-replace text) as well as full graph replacement.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "flowIdentifier": "<flowIdentifier>"
    },
    "name": "update_flow"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoOptional new name for the flow.
edgesNoFull replacement edges array (use upsertEdges instead when making targeted edits).
nodesNoFull replacement nodes array (use upsertNodes instead when making targeted edits).
agentIdNoAgent ID or display name. Defaults to the active agent in context.
folderIdNoOptional folder ID to move this flow into.
autoLayoutNoRe-run automatic visual layout across all nodes (defaults to true when new nodes are added without coordinates).
folderNameNoOptional folder name to move this flow into (created automatically if needed).
moveToRootNoSet to true to move the flow out of its folder back to root.
descriptionNoOptional updated flow description.
upsertEdgesNoEdges to add or rewire (if source + sourceHandle matches an existing edge, rewires it to the new target).
upsertNodesNoNodes to add (new ID) or update/merge in-place (matching existing node ID).
removeEdgeIdsNoSpecific edge IDs to remove.
removeNodeIdsNoIDs of nodes to remove (incident edges are automatically cleaned up).
flowIdentifierYesName or ID of the existing flow to update.
removeEdgesFromNoDisconnect edges matching source (and optional sourceHandle / target).
textReplacementsNoOptional find/replace rules applied across flow node texts and labels.
mediaReplacementsNoOptional media URL updates applied to sendMedia nodes or referenced templates.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / nodes / items / properties / data / properties / triggerConnectionId
      Added value: +{
      +  "description": "Optional calendar connection ID filter ('all' or a specific connectionId).",
      +  "type": "string"
      +}
    • addedInput schema / properties / nodes / items / properties / data / properties / triggerEventSources
      Added value: +{
      +  "description": "Optional list of checked Event Sources for calendar triggers (e.g. ['external_only', 'ai_agent:<aiAgentId>', '<rubiAppId>']). Omit or leave with triggerRubiAppId='all' for all sources.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / nodes / items / properties / data / properties / triggerRubiAppId
      Added value: +{
      +  "description": "Optional event source / Rubi App ID filter for calendar triggers ('all', 'none', 'custom', 'external_only', 'ai_agent:<aiAgentId>', or a specific Rubi App ID).",
      +  "type": "string"
      +}
    • addedInput schema / properties / upsertNodes / items / properties / data / properties / triggerConnectionId
      Added value: +{
      +  "description": "Optional calendar connection ID filter ('all' or a specific connectionId).",
      +  "type": "string"
      +}
    • addedInput schema / properties / upsertNodes / items / properties / data / properties / triggerEventSources
      Added value: +{
      +  "description": "Optional list of checked Event Sources for calendar triggers (e.g. ['external_only', 'ai_agent:<aiAgentId>', '<rubiAppId>']). Omit or leave with triggerRubiAppId='all' for all sources.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / upsertNodes / items / properties / data / properties / triggerRubiAppId
      Added value: +{
      +  "description": "Optional event source / Rubi App ID filter for calendar triggers ('all', 'none', 'custom', 'external_only', 'ai_agent:<aiAgentId>', or a specific Rubi App ID).",
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • addedInput schema / properties / mediaReplacements
      Added value: +{
      +  "description": "Optional media URL updates applied to sendMedia nodes or referenced templates.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "cardIndex": {
      +        "description": "Optional 0-based card index when updating a specific card in a carousel template.",
      +        "type": "number"
      +      },
      +      "findUrl": {
      +        "description": "Optional source media/file URL to replace across cloned templates and sendMedia nodes.",
      +        "type": "string"
      +      },
      +      "newMediaUrl": {
      +        "description": "New HTTPS or proxied media URL (e.g. returned by search_images).",
      +        "type": "string"
      +      },
      +      "nodeId": {
      +        "description": "Optional flow node ID whose referenced template or media image should be updated.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "newMediaUrl"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / textReplacements / items / properties / find / description
      Previous value: -"Text or phrase to search for (case-insensitive)."New value: +"Text or phrase (or exact source media URL) to search for."
    • changedInput schema / properties / textReplacements / items / properties / replace / description
      Previous value: -"Replacement text."New value: +"Replacement text (or replacement media URL)."
  3. Added

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose that the tool mutates an existing flow and can perform either incremental patches or a full graph replacement, but it omits permissions, the destructive implications of full replacement, and side effects such as auto-layout or template auto-creation.

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 tightly written sentences with no filler. The purpose is front-loaded, followed immediately by the supported operating modes, so an agent gets the essential selection signal immediately.

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?

The schema is extremely detailed, which covers most parameter-level invocation needs. However, for a 17-parameter mutation tool with no annotations and no output schema, the description leaves out important behavioral context such as permissions, return behavior, and the destructive nature of full graph replacement.

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 a useful compact overview of the patchable operations—adding/updating/removing nodes and edges, renaming, moving folders, and find-and-replace text—which maps to key parameters like upsertNodes, removeNodeIds, folderId, and textReplacements.

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 ('Modifies an existing conversation flow') and immediately distinguishes the two supported modes: targeted incremental patches versus full graph replacement. The word 'existing' separates it from create_flow/clone_flow, and the scope is clear 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?

The description makes clear that this is for updating an existing flow, and it outlines the two main usage modes (incremental patching vs full replacement). It does not explicitly name alternatives such as create_flow or get_flow_detail, but the context is clear enough for selection.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources