Skip to main content
Glama

device_action

Destructive

Manage device structure in Ableton Live: insert, delete, duplicate, move, call methods, and edit rack macros, variations, or drum pads in one undo step.

Instructions

Change device structure. action: insert (address of a track, return track, master or rack chain; name as in Live's browser, e.g. 'EQ Eight', 'Drum Rack', 'Audio Effect Rack'; optional position, default end; Live refuses bad placements such as effects before an instrument and says why), delete (address of a device; expect {name} mandatory), duplicate (a device; the copy goes right after it), move (address of a device, to a track or chain, optional position; returns where it landed), save_ab (store the current preset in the A/B compare slot), and for racks: insert_chain (optional position), add_macro, remove_macro, randomize_macros, store_variation, recall_variation (index selects the variation first; else the selected one; which last = the last recalled), delete_variation (index or the selected one; Live does nothing when none is selected, so this refuses), re_enable_automation (address of a parameter whose playing clip automation was overridden, by hand or by any write through this bridge such as set_properties or ramp_parameter, or 'song' for all: hands it back to the automation), call (address of a device or of a Simpler's '.../sample': method and args object, one of the methods get_device lists for it: crop, reverse, warp_as, replace_sample on a Simpler; insert_slice, move_slice, remove_slice on its sample; record, overdub, stop, clear, export_to_clip_slot on a Looper; set_modulation_value on a Wavetable), copy_pad (Drum Rack: from_note and to_note), clear_pad (address of a drum pad, e.g. 'tracks/1/devices/0/drum_pads/36'; expect {name} mandatory). Returns the new address where one is created. One undo step. DESTRUCTIVE for delete, clear_pad, remove_macro, delete_variation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNomove: the track or chain to move the device into
argsNocall: the method arguments by name
nameNoinsert: device name
indexNorecall_variation, delete_variation: variation to select first (0-based)
whichNorecall_variation: default selected
actionYesWhat to do
expectNoGuard for delete and clear_pad: {"name": "..."} must match
methodNocall: the method name
addressYesTrack/chain (insert), device (delete, duplicate, move, save_ab, rack actions) or drum pad (clear_pad)
to_noteNocopy_pad: destination pad note
positionNoinsert, move, insert_chain: index, -1 or omitted = end
from_noteNocopy_pad: source pad note

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.3

TDQS

A4.3/5.0
Behavior5/5

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

Annotations supply only the generic destructive/non-idempotent profile, and the description materially extends it: 'One undo step', the explicit DESTRUCTIVE list (delete, clear_pad, remove_macro, delete_variation), that Live refuses bad placements and explains why, that move returns where the device landed, and that delete_variation refuses when nothing is selected. That is exactly the kind of failure-mode and side-effect detail annotations cannot carry.

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?

It is dense and front-loaded — the core operation is stated first, then each action is unpacked in a compact clause. The single mega-sentence makes scanning harder than a bulleted structure would, but given 16 actions almost every clause carries decisive information.

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?

For a 16-action, 12-parameter mutation tool with no output schema, the description covers address forms, per-action parameters, guards, failure behavior, undo semantics, and the return value ('the new address where one is created'). Nothing an agent needs to invoke it correctly is missing.

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 100% so baseline is 3, but the description adds genuinely new cross-parameter semantics the schema cannot express: which parameters are valid per action, that `expect` is a mandatory guard for delete/clear_pad, the meaning of 'song' as an address for re_enable_automation, and the enumerated method names for `call` per device type.

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?

The opening 'Change device structure' states a verb and resource, and the per-action enumeration makes the scope concrete against a large action enum. However it never differentiates itself from siblings that appear to overlap (create, duplicate, delete), so an agent cannot tell whether device-level deletion belongs here or to delete without inspecting both.

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?

For nearly every action it supplies the triggering context and prerequisites: which address type applies (track/chain vs device vs drum pad), that `expect` is mandatory for delete/clear_pad, that position defaults to end, and that recall_variation/delete_variation behave differently when nothing is selected. It stops short of naming alternatives, so there is no explicit 'use X instead when...' routing against sibling tools.

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