get_browser_tree
Retrieve a hierarchical tree of browser categories from Ableton Live to organize instruments, sounds, effects, and drum kits for music production.
Instructions
Get a hierarchical tree of browser categories from Ableton.
Parameters:
category_type: 'all', 'instruments', 'sounds', 'drums', 'audio_effects', 'midi_effects'
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category_type | No | all |
Implementation Reference
- The actual implementation of the get_browser_tree logic within the Ableton Remote Script. It interacts with the Live application's browser object.
def get_browser_tree(self, category_type="all"): """ Get a simplified tree of browser categories. Args: category_type: Type of categories to get ('all', 'instruments', 'sounds', etc.) Returns: Dictionary with the browser tree structure """ try: # Access the application's browser instance instead of creating a new one app = self.application() if not app: raise RuntimeError("Could not access Live application") # Check if browser is available if not hasattr(app, 'browser') or app.browser is None: raise RuntimeError("Browser is not available in the Live application") # Log available browser attributes to help diagnose issues browser_attrs = [attr for attr in dir(app.browser) if not attr.startswith('_')] self.log_message("Available browser attributes: {0}".format(browser_attrs)) result = { "type": category_type, "categories": [], "available_categories": browser_attrs } # Helper function to process a browser item and its children def process_item(item, depth=0): if not item: return None result = { "name": item.name if hasattr(item, 'name') else "Unknown", "is_folder": hasattr(item, 'children') and bool(item.children), "is_device": hasattr(item, 'is_device') and item.is_device, "is_loadable": hasattr(item, 'is_loadable') and item.is_loadable, "uri": item.uri if hasattr(item, 'uri') else None, "children": [] } return result - MCP_Server/server.py:436-444 (handler)The MCP tool definition that acts as a bridge, calling the underlying remote script method via `_run`.
def get_browser_tree(ctx: Context, category_type: str = "all") -> str: """ Get a hierarchical tree of browser categories from Ableton. Parameters: - category_type: 'all', 'instruments', 'sounds', 'drums', 'audio_effects', 'midi_effects' """ try: result = _run("get_browser_tree", {"category_type": category_type})