Skip to main content
Glama

open_live_set

Destructive

Plan or open an Ableton Live Set on macOS from an absolute .als path; launch mode requires Live to be closed and configured.

Instructions

Plan/open a macOS Set; launch requires closed Live and configured app.

Input Schema

NameRequiredDescriptionDefault
modeNolaunch if closed.
pathYesExisting absolute .als path.
dryRunNoFalse executes with token and hash.
planHashNoPlan hash.
confirmationTokenNoSingle-use plan token.
expectedStateVersionNoObserved stateVersion.
expectedSetFingerprintNoCurrent setFingerprint, except launch.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.3.1
    • 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. Changed10 schema fields changedv0.3.0
    • addedInput schema / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "expectedSetFingerprint": {},
      +      "expectedStateVersion": {}
      +    },
      +    "required": [
      +      "expectedStateVersion",
      +      "expectedSetFingerprint"
      +    ]
      +  },
      +  {
      +    "properties": {
      +      "mode": {
      +        "const": "launch"
      +      }
      +    },
      +    "required": [
      +      "mode"
      +    ]
      +  }
      +]
    • 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 / 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 / expectedSetFingerprint / description
      Previous value: -"Exact setFingerprint from get_live_state for the currently loaded Set."New value: +"Current setFingerprint, except launch."
    • changedInput schema / properties / expectedStateVersion / description
      Previous value: -"Exact stateVersion observed immediately before planning."New value: +"Observed stateVersion."
    • addedInput schema / properties / mode
      Added value: +{
      +  "description": "launch if closed.",
      +  "enum": [
      +    "open",
      +    "launch"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / path / description
      Previous value: -"Absolute path to an existing .als Live Set."New value: +"Existing absolute .als path."
    • changedInput schema / properties / planHash / description
      Previous value: -"Hash returned by the matching dry run."New value: +"Plan hash."
    • changedInput schema / required
      Previous value: -[
      -  "expectedStateVersion",
      -  "path",
      -  "expectedSetFingerprint"
      -]New value: +[
      +  "path"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "type": "object"
      +}
  3. Addedv0.2.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, openWorldHint=true and non-idempotency, so the safety profile is covered. The description adds one non-obvious operational prerequisite (Live must be closed and the app configured for launch mode), but says nothing about what opening does to the currently loaded Set or that execution needs a plan hash plus single-use token.

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?

A single front-loaded clause with zero filler; the destructive-mode caveat appears right after the purpose. Slight penalty because the terseness borders on cryptic ('configured app' is undefined and the semicolon compresses two distinct ideas).

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?

Output schema exists and annotations cover the full safety profile, so the description does not need to explain return values. For a 7-parameter tool with 100% schema coverage, naming the purpose and the launch prerequisite covers what the structured fields do not.

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% and the enum'd mode parameter is documented inline ('launch if closed'), so the schema carries the parameter burden. The description only echoes the launch/mode relationship and adds no meaning about path, dryRun, planHash, or the expected-state/version guard fields.

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+resource ('Plan/open a macOS Set') and implicitly distinguishes the two operating modes (plan vs. open/launch). It does not name or differentiate against siblings such as save_live_set or get_live_state, so it falls short of a 5.

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?

Provides one conditional guideline — 'launch requires closed Live and configured app' — which is genuinely useful for choosing the launch mode. But it gives no guidance on when to plan vs. open, when to use this instead of save_live_set/get_live_state, or when the tool should not be used.

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