live_children
Retrieve child objects from a specified Ableton Live object using its path and ID.
Instructions
List child objects from a collection.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| child | Yes | ||
| limit | No | ||
| detail | No | ||
| max_items | No | ||
| max_depth | No | ||
| max_string_length | No | ||
| timeout | No | Seconds to wait for Live's main thread. |
Implementation Reference
- Ableton_Live_MCP/bridge.py:254-261 (handler)Handler function _rpc_children: resolves the object ref, gets the named child collection, takes up to 'limit' items, returns object summaries (with truncation marker if needed). This is the actual execution logic invoked when the live_children tool is called.
def _rpc_children(self, params): obj = self._resolve(params.get("ref")) limit = params.get("limit") values, truncated = self._take(getattr(obj, params["child"]), limit) result = [self._object_summary(child, self._detail(params)) for child in values] if truncated: result.append({"truncated": True}) return result - src/server.py:92-97 (registration)Registration of the 'live_children' MCP tool on the server. Defines the input schema (ref, child, limit, plus response controls) and binds it to the 'children' bridge method via the forward() helper.
server.add_tool(Tool("live_children", "List child objects from a collection.", schema({ "ref": ref, "child": {"type": "string"}, "limit": {"type": "integer", "minimum": 0}, **response_controls, }, ["ref", "child"]), forward("children"))) - src/server.py:93-97 (schema)Input schema for live_children: requires 'ref' (object reference with path/id) and 'child' (string name of child collection), optional 'limit' (integer >=0) and response controls (detail, max_items, max_depth, max_string_length, timeout).
"ref": ref, "child": {"type": "string"}, "limit": {"type": "integer", "minimum": 0}, **response_controls, }, ["ref", "child"]), forward("children"))) - Ableton_Live_MCP/bridge.py:1181-1191 (helper)Helper _take used by _rpc_children: limits collection to DEFAULT_CHILD_LIMIT (200) if no limit given, returns (items, truncated) tuple.
def _take(self, values, limit): if limit is None: limit = DEFAULT_CHILD_LIMIT if limit is not None and limit < 0: return list(values), False result = [] for index, value in enumerate(values): if index >= limit: return result, True result.append(value) return result, False