Skip to main content
Glama

load_drum_kit_tool

Load a drum rack and assign a specific drum kit to it using track index, rack URI, and kit path. Facilitates AI-assisted music production within Ableton Live via the AbletonMCP server.

Instructions

Load a drum rack and then load a specific drum kit into it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kit_pathYes
rack_uriYes
track_indexYes

Implementation Reference

  • Handler function registered as load_drum_kit_tool, which executes the tool logic by delegating to the load_drum_kit helper.
    @mcp.tool() def load_drum_kit_tool(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.""" return load_drum_kit(ctx, track_index, rack_uri, kit_path)
  • Registration of the load_drum_kit_tool using the @mcp.tool() decorator.
    @mcp.tool() def load_drum_kit_tool(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.""" return load_drum_kit(ctx, track_index, rack_uri, kit_path)
  • Core helper function that implements the logic to load a drum rack on a track and then load a specific drum kit from the browser into it.
    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)}"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chaudepark/ableton-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server