Skip to main content
Glama

set_clip_parameter_envelope

Destructive

Plan and set 1-512 ordered Session clip parameter envelope steps with state checks and value clamping; stop playback and recording before replacing an existing lane via replaceExisting:true.

Instructions

Plan/set 1–512 ordered Session envelope steps with native context checks and explicit clamping. Existing lanes require replaceExisting:true, which discards the whole curve, including unsampled edits. No full-curve backup or restoration. Playback must be stopped; recording off. Verifies sampled interiors.

Input Schema

NameRequiredDescriptionDefault
clipIdYeslist_clips Session ID or supported list_arrangement_clips ID.
dryRunNoFalse executes with token and hash.
pointsYesOrdered nonoverlapping envelope steps.
trackIdYesID from list_tracks.
deviceIdYesID from list_devices.
planHashNoPlan hash.
parameterIdYesID from list_device_parameters.
replaceExistingNoExplicit authority to discard the entire existing lane, including unsampled points; default false. No complete curve backup.
confirmationTokenNoSingle-use plan token.
expectedStateVersionYesObserved stateVersion.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.3.1
    • changedInput schema / properties / clipId / description
      Previous value: -"Session ID from list_clips; Arrangement ID from list_arrangement_clips where supported."New value: +"list_clips Session ID or supported list_arrangement_clips ID."
    • removedOutput schema / additionalProperties
      Removed value: -true
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "oneOf": [
      +      {
      +        "properties": {
      +          "confirmation": {
      +            "properties": {
      +              "expiresAt": {
      +                "type": "number"
      +              },
      +              "planHash": {
      +                "pattern": "^[a-f0-9]{64}$",
      +                "type": "string"
      +              },
      +              "token": {
      +                "minLength": 1,
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "token",
      +              "planHash",
      +              "expiresAt"
      +            ],
      +            "type": "object"
      +          },
      +          "dryRun": {
      +            "const": true
      +          },
      +          "plan": {
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "dryRun",
      +          "plan",
      +          "confirmation"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "dryRun": {
      +            "const": false
      +          },
      +          "operationOutcome": {
      +            "properties": {
      +              "evidence": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "reason": {
      +                "type": "string"
      +              },
      +              "schemaVersion": {
      +                "const": 1
      +              },
      +              "status": {
      +                "enum": [
      +                  "applied",
      +                  "outcome_unknown",
      +                  "postconditions_failed",
      +                  "pending_postconditions",
      +                  "pending_user_action"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "schemaVersion",
      +              "status",
      +              "reason",
      +              "evidence"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "dryRun",
      +          "operationOutcome"
      +        ],
      +        "type": "object"
      +      }
      +    ],
      +    "properties": {
      +      "dryRun": {
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "dryRun"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "error": {
      +        "properties": {
      +          "message": {
      +            "type": "string"
      +          },
      +          "outcome": {
      +            "enum": [
      +              "unknown",
      +              "not_executed"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "message",
      +          "outcome"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed13 schema fields changedv0.3.0
    • changedInput schema / properties / clipId / description
      Previous value: -"Stable clip ID: track-N:clip-M from list_clips, or track-N:arrangement-clip-M from list_arrangement_clips for tools that support Arrangement clips."New value: +"Session ID from list_clips; Arrangement ID from list_arrangement_clips where supported."
    • changedInput schema / properties / confirmationToken / description
      Previous value: -"Short-lived, single-use token returned by the matching dry run."New value: +"Single-use plan token."
    • changedInput schema / properties / deviceId / description
      Previous value: -"Stable device ID returned by list_devices."New value: +"ID from list_devices."
    • changedInput schema / properties / dryRun / description
      Previous value: -"Omit or true to return a plan; false requires a valid confirmationToken."New value: +"False executes with token and hash."
    • changedInput schema / properties / expectedStateVersion / description
      Previous value: -"Exact stateVersion observed immediately before planning."New value: +"Observed stateVersion."
    • changedInput schema / properties / parameterId / description
      Previous value: -"Stable parameter ID returned by list_device_parameters."New value: +"ID from list_device_parameters."
    • changedInput schema / properties / planHash / description
      Previous value: -"Hash returned by the matching dry run."New value: +"Plan hash."
    • changedInput schema / properties / points / description
      Previous value: -"Replacement envelope steps."New value: +"Ordered nonoverlapping envelope steps."
    • addedInput schema / properties / points / maxItems
      Added value: +512
    • addedInput schema / properties / points / minItems
      Added value: +1
    • addedInput schema / properties / replaceExisting
      Added value: +{
      +  "description": "Explicit authority to discard the entire existing lane, including unsampled points; default false. No complete curve backup.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / trackId / description
      Previous value: -"Stable track ID returned by list_tracks."New value: +"ID from list_tracks."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "type": "object"
      +}
  3. First observedv0.1.0

TDQS

A4.2/5.0
Behavior5/5

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

Adds meaningful behavior beyond the destructive annotation: replacement discards the whole curve including unsampled edits, there is no full-curve backup or restoration, values are clamped, and sampled interiors are verified. These are exactly the operational details an agent needs before executing a destructive write.

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 text is dense, front-loaded, and each sentence carries weight. 'Verifies sampled interiors' is slightly cryptic and could be clearer, but there is 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?

Given the output schema exists, the description need not explain returns. It covers destructive scope, preconditions, clamping, and verification adequately, though it does not describe the dryRun/planHash/confirmationToken workflow, which the schema handles.

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 already 100%, but the description adds value by explaining that existing lanes require replaceExisting:true and that this discards the entire curve. It also reinforces clamping semantics and the 1–512 step limit, though most parameter-level detail remains in the schema.

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: 'Plan/set 1–512 ordered Session envelope steps', with scope boundaries and the replaceExisting requirement for existing lanes. It implicitly distinguishes creation from replacement but does not name sibling tools like create_clip_parameter_envelope or get_clip_parameter_envelope.

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?

Provides clear preconditions: playback must be stopped and recording off, and existing lanes require replaceExisting:true. It does not explicitly say when to use this tool versus related envelope tools, but the context is strong enough for selection.

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

Deploy Server

Other Tools