load_drum_kit
Load drum kits into Ableton Live tracks by specifying track position, rack URI, and kit file path to quickly set up percussion instruments for music production.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kit_path | Yes | ||
| rack_uri | Yes | ||
| track_index | Yes |
Implementation Reference
- MCP_Server/server.py:482-501 (handler)The main handler function for the 'load_drum_kit' tool. It first loads a drum rack onto the specified track using the provided rack URI, then navigates to the kit path in the browser, finds the first loadable drum kit, and loads it into the rack. The @mcp.tool() decorator registers it as an MCP tool.@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)}"