Skip to main content
Glama

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
NameRequiredDescriptionDefault
category_typeNoall

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
  • 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})

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/FreeRiverHouse/ableton-flow'

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