Live MCP exposes six tools through the Model Context Protocol. Each tool maps to an operation on the Live Object Model (LOM) inside Ableton Live.

All tools use LOM paths to address objects. Paths are space-separated strings starting from a root object (live_set or live_app). For example, live_set tracks 0 devices 1 parameters 3 addresses parameter 3 of device 1 on the first track.


get_property

Read a property from a Live Object Model object.

Parameters:

NameTypeRequiredDescription
pathstringyesLOM path to the object (e.g. "live_set", "live_set tracks 0")
propertystringyesProperty name to read (e.g. "tempo", "name")

Returns: { "value": <any> } — the current value of the property.

Example:

{
  "path": "live_set",
  "property": "tempo"
}

Response:

{
  "value": 128.0
}

set_property

Set a property on a Live Object Model object. The value must be a valid JSON string that will be parsed before being sent to Ableton.

Parameters:

NameTypeRequiredDescription
pathstringyesLOM path to the object (e.g. "live_set", "live_set tracks 0")
propertystringyesProperty name to write (e.g. "tempo", "name")
valuestringyesValue as a JSON string (e.g. "120.0", "\"My Track\"", "true")

Returns: { "success": true } on success.

Example:

{
  "path": "live_set",
  "property": "tempo",
  "value": "135.0"
}

Response:

{
  "success": true
}

Note: Not all properties are writable. Check the LOM reference for read/write status. Attempting to set a read-only property will return an error.


call_function

Call a function on a Live Object Model object. Functions perform actions like creating tracks, firing clips, or deleting devices.

Parameters:

NameTypeRequiredDescription
pathstringyesLOM path to the object (e.g. "live_set", "live_set tracks 0 clip_slots 2 clip")
functionstringyesFunction name to call (e.g. "fire", "stop", "create_midi_track")
argsstringnoArguments as a JSON array string (e.g. "[1, \"hello\"]")

Returns: { "success": true } on success.

Example — fire a clip:

{
  "path": "live_set tracks 0 clip_slots 0 clip",
  "function": "fire"
}

Example — create a MIDI track at index 2:

{
  "path": "live_set",
  "function": "create_midi_track",
  "args": "[2]"
}

Response:

{
  "success": true
}

get_children

List the child objects available at a given LOM path. This is your primary tool for discovering and navigating the object hierarchy.

Parameters:

NameTypeRequiredDescription
pathstringyesLOM path to the parent object (e.g. "live_set", "live_set tracks 0")

Returns: { "children": string[] } — an array of child names or paths.

Example:

{
  "path": "live_set"
}

Response:

{
  "children": [
    "tracks",
    "return_tracks",
    "master_track",
    "scenes",
    "cue_points",
    "groove_pool"
  ]
}

Tip: When a tool call fails because of an invalid path, use get_children to walk the hierarchy step by step and find the correct path.


observe

Subscribe to changes on a Live Object Model property. When the property value changes in Ableton (whether through user interaction, automation, or another tool call), the bridge sends a notification back through the MCP server.

Parameters:

NameTypeRequiredDescription
pathstringyesLOM path to the object (e.g. "live_set", "live_set tracks 0")
propertystringyesProperty name to observe (e.g. "tempo", "name")

Returns: { "subscriptionId": string } — a unique ID for this subscription, needed to unsubscribe later.

Notifications: When the observed property changes, the bridge sends a notification with this shape:

{
  "notification": "property_changed",
  "subscriptionId": "sub-1",
  "path": "live_set",
  "property": "tempo",
  "value": 140.0
}

Example:

{
  "path": "live_set",
  "property": "tempo"
}

Response:

{
  "subscriptionId": "sub-1"
}

unobserve

Unsubscribe from a previously observed property. Use the subscription ID returned by observe.

Parameters:

NameTypeRequiredDescription
subscriptionIdstringyesThe subscription ID returned from a previous observe call

Returns: { "success": true } on success.

Example:

{
  "subscriptionId": "sub-1"
}

Response:

{
  "success": true
}

LOM Path Quick Reference

PathObject
live_setThe Song (root of the session)
live_appThe Application
live_set tracks NTrack at index N
live_set return_tracks NReturn track at index N
live_set master_trackThe master track
live_set scenes NScene at index N
live_set tracks N clip_slots M clipClip in slot M of track N
live_set tracks N devices MDevice at index M on track N
live_set tracks N devices M parameters PParameter P of device M on track N
live_set tracks N mixer_deviceMixer (volume, pan, sends) for track N

Further reading

For the complete list of properties, functions, and classes available in the Live Object Model, see the Cycling ‘74 LOM reference.