Skip to main content
Glama

nitro_compose_flow

Destructive

Live/paused flow saves publish. Creative email: composition_mode=intent, follow exact next_call. replace needs flow_id+confirm+draft revision; patch keeps other nodes. Go live: nitro_control_delivery.

Input Schema

NameRequiredDescriptionDefault
goalNo
modeNocreate: new; replace: whole graph; patch: name/email actionscreate
nameNoFlow name; required on create.
factsNoLiteral evidence: required values must appear; available values may be used.
stepsNo
confirmNo
dry_runNo
flow_idNo
triggerNo
draft_metaNoOptional authoring provenance; never blocks.
contract_idNo
renegotiateNo
source_textNoUntrusted source evidence; put authoring directions in user_instruction.
lifecycle_keyNo
validate_onlyNo
idempotency_keyNoRequired for non-dry-run persistence; exact retry only.
composition_modeNointent: plan; validate: check; draft/generate: persist.
user_instructionNo
brand_context_refNo
creative_route_idNoIntent-only sequence-wide route id.
expected_updated_atNoPrefer expected_draft_revision_id.
design_mode_overrideNo
email_baseline_selectionsNoIntent-only creative_routes[].id and image binding ids per email action_name.
expected_draft_revision_idNoConflict-safe draft revision.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed19 schema fields changed
    • removedInput schema / $defs / flowStep / properties / branches / additionalProperties
      Removed value: -{
      -  "items": {
      -    "$ref": "#/$defs/flowStep"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / $defs / flowStep / properties / categories / items / additionalProperties
      Removed value: -false
    • removedInput schema / $defs / flowStep / properties / categories / items / properties
      Removed value: -{
      -  "description": {
      -    "maxLength": 500,
      -    "type": "string"
      -  },
      -  "key": {
      -    "pattern": "^[a-z][a-z0-9_]{0,39}$",
      -    "type": "string"
      -  },
      -  "label": {
      -    "maxLength": 60,
      -    "type": "string"
      -  }
      -}
    • removedInput schema / $defs / flowStep / properties / categories / items / required
      Removed value: -[
      -  "key",
      -  "label",
      -  "description"
      -]
    • removedInput schema / $defs / flowStep / properties / categories / maxItems
      Removed value: -6
    • removedInput schema / $defs / flowStep / properties / categories / minItems
      Removed value: -2
    • removedInput schema / $defs / flowStep / properties / design / description
      Removed value: -"Email {sections, theme} design."
    • removedInput schema / $defs / flowStep / properties / duration / description
      Removed value: -"Wait seconds."
    • removedInput schema / $defs / flowStep / properties / endpoint_configured / description
      Removed value: -"Frozen; copy next_call."
    • removedInput schema / $defs / flowStep / properties / event_data / description
      Removed value: -"Static emitted-event data."
    • removedInput schema / $defs / flowStep / properties / event_data_keys / description
      Removed value: -"Frozen non-secret keys; copy next_call."
    • removedInput schema / $defs / flowStep / properties / event_name / description
      Removed value: -"Lowercase underscore event name."
    • removedInput schema / $defs / flowStep / properties / forward_event_data / description
      Removed value: -"Forward triggering event data."
    • removedInput schema / $defs / flowStep / properties / key / description
      Removed value: -"Retained new-node identity."
    • removedInput schema / $defs / flowStep / properties / send_at / description
      Removed value: -"Local HH:MM after delay; allows duration 0."
    • removedInput schema / $defs / flowStep / properties / time_zone / description
      Removed value: -"IANA; defaults to account, pinned on approval."
    • removedInput schema / $defs / flowStep / properties / url / description
      Removed value: -"Webhook URL; supports merge tags."
    • changedInput schema / properties / trigger / properties / reply_source / description
      Previous value: -"Email reply received preset. any has no id; other sources require an owned resource id."New value: +"Match replies to an owned source."
    • changedInput schema / properties / trigger / properties / stop_on_reply / description
      Previous value: -"Stop only the answered enrollment. Requires monitored receiving."New value: +"Requires monitored receiving."
  2. Changed10 schema fields changed
    • removedInput schema / $defs / flowStep / properties / bcc / description
      Removed value: -"BCC for a new-flow email only."
    • addedInput schema / $defs / flowStep / properties / bcc / items
      Added value: +{
      +  "type": "string"
      +}
    • changedInput schema / $defs / flowStep / properties / bcc / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "array"
      +]
    • addedInput schema / $defs / flowStep / properties / branches
      Added value: +{
      +  "additionalProperties": {
      +    "items": {
      +      "$ref": "#/$defs/flowStep"
      +    },
      +    "type": "array"
      +  },
      +  "type": "object"
      +}
    • addedInput schema / $defs / flowStep / properties / categories
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "description": {
      +        "maxLength": 500,
      +        "type": "string"
      +      },
      +      "key": {
      +        "pattern": "^[a-z][a-z0-9_]{0,39}$",
      +        "type": "string"
      +      },
      +      "label": {
      +        "maxLength": 60,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "label",
      +      "description"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 6,
      +  "minItems": 2,
      +  "type": "array"
      +}
    • addedInput schema / $defs / flowStep / properties / cc
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / $defs / flowStep / properties / reply_all
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • changedInput schema / $defs / flowStep / properties / type / enum
      Previous value: -[
      -  "email",
      -  "sms",
      -  "wait",
      -  "split",
      -  "emit_event",
      -  "webhook",
      -  "subscribe",
      -  "unsubscribe"
      -]New value: +[
      +  "email",
      +  "sms",
      +  "wait",
      +  "split",
      +  "classify_reply",
      +  "reply",
      +  "emit_event",
      +  "webhook",
      +  "subscribe",
      +  "unsubscribe"
      +]
    • addedInput schema / properties / trigger / properties / reply_source
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Email reply received preset. any has no id; other sources require an owned resource id.",
      +  "properties": {
      +    "id": {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "type": {
      +      "enum": [
      +        "any",
      +        "flow",
      +        "campaign",
      +        "message"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / trigger / properties / stop_on_reply
      Added value: +{
      +  "default": false,
      +  "description": "Stop only the answered enrollment. Requires monitored receiving.",
      +  "type": "boolean"
      +}
  3. Changed15 schema fields changed
    • removedInput schema / $defs / flowStep / properties / content_format / description
      Removed value: -"Match source."
    • changedInput schema / $defs / flowStep / properties / endpoint_configured / description
      Previous value: -"Frozen endpoint marker; copy from next_call."New value: +"Frozen; copy next_call."
    • changedInput schema / $defs / flowStep / properties / event_data_keys / description
      Previous value: -"Frozen non-secret keys; copy from next_call."New value: +"Frozen non-secret keys; copy next_call."
    • changedInput schema / $defs / flowStep / properties / if_version / description
      Previous value: -"Version required for an existing email patch."New value: +"Required for existing email edits."
    • changedInput schema / $defs / flowStep / properties / key / description
      Previous value: -"Scaffold identity for a retained new node."New value: +"Retained new-node identity."
    • removedInput schema / $defs / flowStep / properties / plain_text_mode / description
      Removed value: -"Text provenance."
    • addedInput schema / $defs / flowStep / properties / send_at
      Added value: +{
      +  "description": "Local HH:MM after delay; allows duration 0.",
      +  "pattern": "^(?:[01][0-9]|2[0-3]):[0-5][0-9]$",
      +  "type": "string"
      +}
    • addedInput schema / $defs / flowStep / properties / time_zone
      Added value: +{
      +  "description": "IANA; defaults to account, pinned on approval.",
      +  "type": "string"
      +}
    • changedInput schema / properties / composition_mode / description
      Previous value: -"intent plans; validate checks; draft persists; generate composes and persists."New value: +"intent: plan; validate: check; draft/generate: persist."
    • changedInput schema / properties / expected_draft_revision_id / description
      Previous value: -"Latest draft revision id for conflict-safe writes."New value: +"Conflict-safe draft revision."
    • changedInput schema / properties / expected_updated_at / description
      Previous value: -"Legacy compatibility token; prefer draft revision id."New value: +"Prefer expected_draft_revision_id."
    • changedInput schema / properties / mode / description
      Previous value: -"create: new graph; replace: whole draft graph; patch: name or selected email actions"New value: +"create: new; replace: whole graph; patch: name/email actions"
    • removedInput schema / properties / steps / description
      Removed value: -"Ordered graph steps."
    • changedInput schema / properties / trigger / properties / action_name / description
      Previous value: -"Persisted trigger identity; preserve it."New value: +"Preserve trigger identity."
    • addedInput schema / properties / trigger / properties / exit_events
      Added value: +{
      +  "description": "Stop future steps on new matching events; pinned.",
      +  "items": {
      +    "pattern": "^[a-z][a-z0-9_]{0,63}$",
      +    "type": "string"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
  4. Changed4 schema fields changed
    • changedInput schema / properties / creative_route_id / description
      Previous value: -"Intent-only sequence-wide route id; invalid choices fail."New value: +"Intent-only sequence-wide route id."
    • changedInput schema / properties / draft_meta / description
      Previous value: -"Optional authoring provenance; never blocks validation or persistence."New value: +"Optional authoring provenance; never blocks."
    • changedInput schema / properties / steps / description
      Previous value: -"Ordered graph steps; exact typed fields are in $defs.flowStep."New value: +"Ordered graph steps."
    • removedInput schema / properties / validate_only / description
      Removed value: -"Alias for validate; never persists."
  5. Changed1 schema field changed
    • addedInput schema / $defs / flowStep / properties / transactional
      Added value: +{
      +  "default": false,
      +  "description": "Email: true for requested receipts/alerts, never promotions. Set on initial intent; copy edits preserve it. Suppression and abuse checks apply.",
      +  "type": "boolean"
      +}
  6. First observed

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare destructiveHint and openWorldHint, while the description adds that replace affects the whole graph and patch preserves other nodes. It does not explain confirmation effects, irreversibility, or the side effects of publishing a live/paused flow.

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

Conciseness3/5

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

It is short and mostly front-loaded, but telegraphic fragments like 'Live/paused flow saves publish' are ambiguous and reduce clarity. There is little wasted text, yet the structure is note-like rather than explanatory.

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 a destructive 24-parameter nested flow composer with no output schema, the description omits most invocation details and return/publish semantics. It provides critical mode hints but is not complete enough for confident invocation.

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?

The description maps composition_mode=intent, replace's flow_id/confirm/draft revision requirement, and patch behavior, which is useful. But with 24 parameters at 46% schema coverage, most inputs such as goal, facts, steps, trigger, source_text, and lifecycle_key remain unclarified, so the description does not compensate for the low coverage.

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

Purpose3/5

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

The fragments imply flow saves/publish and creative email use, but never clearly state whether the tool creates, replaces, or patches a flow. Sibling differentiation exists through 'Go live: nitro_control_delivery', yet the overall purpose remains inferential.

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 description gives conditional guidance for creative email, replace, and patch, and names nitro_control_delivery for go-live. However, it does not explain when to choose create vs replace vs patch, nor when to use this tool over siblings such as nitro_compose_campaign.

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