load_drum_kit
Loads a drum rack and specific drum kit into Ableton Live via the AbletonMCP server. Specify track index, rack URI, and kit path to configure drum setup for music production.
Instructions
Load a drum rack and then load a specific drum kit into it.
Parameters:
track_index: The index of the track to load on
rack_uri: The URI of the drum rack to load (e.g., 'Drums/Drum Rack')
kit_path: Path to the drum kit inside the browser (e.g., 'drums/acoustic/kit1')
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kit_path | Yes | ||
| rack_uri | Yes | ||
| track_index | Yes |
Implementation Reference
- MCP_Server/server.py:606-653 (handler)The handler function for the 'load_drum_kit' tool. It loads a drum rack onto the specified track using the provided rack URI, then navigates the browser to the kit path, finds a loadable drum kit, and loads it into the rack. Decorated with @mcp.tool() for registration.@mcp.tool() def load_drum_kit(ctx: Context, track_index: int, rack_uri: str, kit_path: str) -> str: """ Load a drum rack and then load a specific drum kit into it. Parameters: - track_index: The index of the track to load on - rack_uri: The URI of the drum rack to load (e.g., 'Drums/Drum Rack') - kit_path: Path to the drum kit inside the browser (e.g., 'drums/acoustic/kit1') """ try: ableton = get_ableton_connection() # Step 1: Load the drum rack 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}'" # Step 2: Get the drum kit items at the specified path 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')}" # Step 3: Find a loadable drum kit 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}'" # Step 4: Load the first loadable kit 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)}"