load_drum_kit
Load drum kits into Ableton Live tracks by specifying track index, rack URI, and kit path to create drum patterns for music production.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"track_index": "<track_index>",
"rack_uri": "<rack_uri>",
"kit_path": "<kit_path>"
},
"name": "load_drum_kit"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| rack_uri | Yes | ||
| kit_path | Yes |
Implementation Reference
- MCP_Server/server.py:482-501 (handler)The handler function for the load_drum_kit tool. It first loads a drum rack onto the specified track using the provided rack_uri. Then, it fetches items at the specified kit_path in the browser, selects the first loadable drum kit, and loads it onto the track. Returns a success or error message.
@mcp.tool() def load_drum_kit(ctx: Context, track_index: int, rack_uri: str, kit_path: str) -> str: try: ableton = get_ableton_connection() result = ableton.send_command("load_browser_item", {"track_index": track_index, "item_uri": rack_uri}) if not result.get("loaded", False): return f"Failed to load drum rack with URI '{rack_uri}'" kit_result = ableton.send_command("get_browser_items_at_path", {"path": kit_path}) if "error" in kit_result: return f"Loaded drum rack but failed to find drum kit: {kit_result.get('error')}" kit_items = kit_result.get("items", []) loadable_kits = [item for item in kit_items if item.get("is_loadable", False)] if not loadable_kits: return f"Loaded drum rack but no loadable drum kits found at '{kit_path}'" kit_uri = loadable_kits[0].get("uri") load_result = ableton.send_command("load_browser_item", {"track_index": track_index, "item_uri": kit_uri}) return f"Loaded drum rack and kit '{loadable_kits[0].get('name')}' on track {track_index}" except Exception as e: logger.error(f"Error loading drum kit: {str(e)}") return f"Error loading drum kit: {str(e)}"