Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/ahujasid/ableton-mcp
/ functions
Functions
87 in github.com/ahujasid/ableton-mcp
⨍
Functions
87
◇
Types & classes
5
↳
Endpoints
5
↓ 23 callers
Method
send_command
Send a command to Ableton and return the response
MCP_Server/server.py:102
↓ 22 callers
Function
get_ableton_connection
Get or create a persistent Ableton connection
MCP_Server/server.py:212
↓ 7 callers
Function
get_telemetry
Get the global telemetry collector instance
MCP_Server/telemetry.py:320
↓ 6 callers
Method
_safe_song_property
Read self._song.<attr> with cast, returning default on common failures. Catches only narrow exceptions so genuine bugs still surface.
AbletonMCP_Remote_Script/__init__.py:372
↓ 6 callers
Method
record_event
Record a telemetry event (non-blocking)
MCP_Server/telemetry.py:192
↓ 4 callers
Method
_find_browser_item_by_uri
Find a browser item by its URI. Top-level lookups are memoised on ``self._uri_cache`` so repeated loads of the same URI don't re-walk
AbletonMCP_Remote_Script/__init__.py:990
↓ 3 callers
Method
disconnect
Disconnect from the Ableton Remote Script
MCP_Server/server.py:45
↓ 2 callers
Function
_extract_tool_params
Extract relevant params from kwargs for logging. Only extracts non-sensitive structural params by default. With consent, can capture more det
MCP_Server/telemetry_decorator.py:27
↓ 2 callers
Method
_walk_browser_for_uri
Recursive walk used by :py:meth:`_find_browser_item_by_uri`.
AbletonMCP_Remote_Script/__init__.py:1008
↓ 2 callers
Method
connect
Connect to the Ableton Remote Script socket server
MCP_Server/server.py:28
↓ 1 callers
Method
_add_notes_to_clip
Add MIDI notes to a clip
AbletonMCP_Remote_Script/__init__.py:584
↓ 1 callers
Method
_check_user_consent
Check if user has consented to detailed data collection
MCP_Server/telemetry.py:188
↓ 1 callers
Method
_create_audio_clip
Create an audio clip in the specified audio track clip slot by importing a file. Requires Ableton Live 12.0.5 or newer (the underlying
AbletonMCP_Remote_Script/__init__.py:533
↓ 1 callers
Method
_create_clip
Create a new MIDI clip in the specified track and clip slot
AbletonMCP_Remote_Script/__init__.py:504
↓ 1 callers
Method
_create_midi_track
Create a new MIDI track at the specified index
AbletonMCP_Remote_Script/__init__.py:466
↓ 1 callers
Method
_duplicate_session_clip_to_arrangement
Copy a Session-view clip into the Arrangement timeline. Uses the real Live API: track.duplicate_clip_to_arrangement(clip, destinati
AbletonMCP_Remote_Script/__init__.py:797
↓ 1 callers
Method
_fire_clip
Fire a clip
AbletonMCP_Remote_Script/__init__.py:664
↓ 1 callers
Method
_get_arrangement_clips
Return all clips placed in the Arrangement timeline for a track. Each clip dict contains: name, start_time, end_time, length, color
AbletonMCP_Remote_Script/__init__.py:760
↓ 1 callers
Method
_get_browser_item
Get a browser item by URI or path
AbletonMCP_Remote_Script/__init__.py:841
↓ 1 callers
Method
_get_data_directory
Get directory for storing telemetry data
MCP_Server/telemetry.py:151
↓ 1 callers
Method
_get_device_type
Get the type of a device
AbletonMCP_Remote_Script/__init__.py:1056
↓ 1 callers
Method
_get_or_create_uuid
Get or create anonymous customer UUID
MCP_Server/telemetry.py:164
↓ 1 callers
Method
_get_session_info
Get information about the current session
AbletonMCP_Remote_Script/__init__.py:380
↓ 1 callers
Method
_get_track_info
Get information about a track
AbletonMCP_Remote_Script/__init__.py:411
↓ 1 callers
Method
_is_disabled
Check if telemetry is disabled via environment variables
MCP_Server/telemetry.py:138
↓ 1 callers
Method
_load_browser_item
Load a browser item onto a track by its URI
AbletonMCP_Remote_Script/__init__.py:927
↓ 1 callers
Method
_order_roots_by_uri
Reorder ``roots`` so the URI's likely root is walked first.
AbletonMCP_Remote_Script/__init__.py:978
↓ 1 callers
Method
_process_command
Process a command from the client and return a response
AbletonMCP_Remote_Script/__init__.py:211
↓ 1 callers
Method
_send_event
Send event to Supabase
MCP_Server/telemetry.py:267
↓ 1 callers
Method
_set_clip_name
Set the name of a clip
AbletonMCP_Remote_Script/__init__.py:624
↓ 1 callers
Method
_set_current_song_time
Move the arrangement playhead to a position in beats
AbletonMCP_Remote_Script/__init__.py:751
↓ 1 callers
Method
_set_tempo
Set the tempo of the session
AbletonMCP_Remote_Script/__init__.py:651
↓ 1 callers
Method
_set_track_name
Set the name of a track
AbletonMCP_Remote_Script/__init__.py:486
↓ 1 callers
Method
_start_playback
Start playing the session
AbletonMCP_Remote_Script/__init__.py:714
↓ 1 callers
Method
_stop_clip
Stop a clip
AbletonMCP_Remote_Script/__init__.py:690
↓ 1 callers
Method
_stop_playback
Stop playing the session
AbletonMCP_Remote_Script/__init__.py:727
↓ 1 callers
Method
_switch_to_arrangement_view
Switch Ableton's main window to the Arrangement view
AbletonMCP_Remote_Script/__init__.py:742
↓ 1 callers
Function
format_tree
(item, indent=0)
MCP_Server/server.py:603
↓ 1 callers
Method
get_browser_items_at_path
Get browser items at a specific path. Args: path: Path in the format "category/folder/subfolder"
AbletonMCP_Remote_Script/__init__.py:1191
↓ 1 callers
Method
get_browser_tree
Get a simplified tree of browser categories. Args: category_type: Type of categories to get ('all', 'instruments
AbletonMCP_Remote_Script/__init__.py:1075
↓ 1 callers
Function
get_package_version
Get version from pyproject.toml
MCP_Server/telemetry.py:41
↓ 1 callers
Function
get_telemetry_consent
Get the current telemetry consent status
MCP_Server/telemetry.py:97
↓ 1 callers
Function
main
Run the MCP server
MCP_Server/server.py:845
↓ 1 callers
Function
pitch_to_name
(p)
MCP_Server/telemetry_decorator.py:86
↓ 1 callers
Method
receive_full_response
Receive the complete response, potentially in multiple chunks
MCP_Server/server.py:55
↓ 1 callers
Function
record_startup
Record server startup event
MCP_Server/telemetry.py:344
↓ 1 callers
Function
set_telemetry_consent
Set the user's telemetry consent status
MCP_Server/telemetry.py:90
↓ 1 callers
Method
start_server
Start the socket server in a separate thread
AbletonMCP_Remote_Script/__init__.py:76
Method
__init__
Initialize the control surface
AbletonMCP_Remote_Script/__init__.py:29
Method
__init__
Initialize telemetry collector
MCP_Server/telemetry.py:105
Function
_debug_print
Print debug message to stderr so it shows in MCP logs
MCP_Server/telemetry_decorator.py:22
Method
_handle_client
Handle communication with a connected client
AbletonMCP_Remote_Script/__init__.py:134
Method
_server_thread
Server thread implementation - handles client connections
AbletonMCP_Remote_Script/__init__.py:94
Method
_worker_loop
Background worker that sends telemetry
MCP_Server/telemetry.py:255
Function
add_notes_to_clip
Add MIDI notes to a clip. Parameters: - track_index: The index of the track containing the clip - clip_index: The index of the clip
MCP_Server/server.py:398
Function
async_wrapper
(*args, **kwargs)
MCP_Server/telemetry_decorator.py:142
Function
create_audio_clip
Create a new audio clip in an audio track's clip slot by importing a file. Requires Ableton Live 12.0.5 or newer — the underlying ClipSl
MCP_Server/server.py:369
Function
create_clip
Create a new MIDI clip in the specified track and clip slot. Parameters: - track_index: The index of the track to create the clip in
MCP_Server/server.py:345
Function
create_instance
Create and return the AbletonMCP script instance
AbletonMCP_Remote_Script/__init__.py:22
Function
create_midi_track
Create a new MIDI track in the Ableton session. Parameters: - index: The index to insert the track at (-1 = end of list) - user_prom
MCP_Server/server.py:307
Function
decorator
(func: Callable)
MCP_Server/telemetry_decorator.py:107
Method
disconnect
Called when Ableton closes or the control surface is removed
AbletonMCP_Remote_Script/__init__.py:51
Function
duplicate_to_arrangement
Copy a Session-view clip into the Arrangement timeline. Uses Live's track.duplicate_clip_to_arrangement() API (Live 11 / 12). The clip i
MCP_Server/server.py:797
Function
fire_clip
Start playing a clip. Parameters: - track_index: The index of the track containing the clip - clip_index: The index of the clip slot
MCP_Server/server.py:503
Function
get_arrangement_clips
List all clips placed in the Arrangement timeline for a track. Returns each clip's name, start_time, end_time, length, and type. Parame
MCP_Server/server.py:776
Function
get_browser_items_at_path
Get browser items at a specific path in Ableton's browser. Parameters: - path: Path in the format "category/folder/subfolder"
MCP_Server/server.py:644
Function
get_browser_tree
Get a hierarchical tree of browser categories from Ableton. Parameters: - category_type: Type of categories to get ('all', 'instruments'
MCP_Server/server.py:579
Function
get_session_info
Get detailed information about the current Ableton session Parameters: - user_prompt: The original user prompt that led to this tool call (fo
MCP_Server/server.py:273
Function
get_track_info
Get detailed information about a specific track in Ableton. Parameters: - track_index: The index of the track to get information about
MCP_Server/server.py:289
Function
is_telemetry_enabled
Check if telemetry is enabled
MCP_Server/telemetry.py:352
Function
load_drum_kit
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:
MCP_Server/server.py:687
Function
load_instrument_or_effect
Load an instrument or effect onto a track using its URI. Parameters: - track_index: The index of the track to load the instrument on
MCP_Server/server.py:471
Method
main_thread_task
()
AbletonMCP_Remote_Script/__init__.py:241
Method
process_item
(item, depth=0)
AbletonMCP_Remote_Script/__init__.py:1106
Function
record_tool_usage
Convenience function to record tool usage
MCP_Server/telemetry.py:328
Function
rich_telemetry_tool
Decorator that records tool execution with rich metadata. Stores params and other context in metadata for analysis. Args: tool_name:
MCP_Server/telemetry_decorator.py:185
Function
server_lifespan
Manage server startup and shutdown lifecycle
MCP_Server/server.py:176
Function
set_arrangement_time
Move the arrangement playhead to a specific position. Parameters: - time: Position in beats from the start of the arrangement (e.g. 8.0
MCP_Server/server.py:757
Function
set_clip_name
Set the name of a clip. Parameters: - track_index: The index of the track containing the clip - clip_index: The index of the clip sl
MCP_Server/server.py:428
Function
set_tempo
Set the tempo of the Ableton session. Parameters: - tempo: The new tempo in BPM - user_prompt: The original user prompt that led to
MCP_Server/server.py:452
Function
set_track_name
Set the name of a track. Parameters: - track_index: The index of the track to rename - name: The new name for the track - user_p
MCP_Server/server.py:326
Function
start_playback
Start playing the Ableton session. Parameters: - user_prompt: The original user prompt that led to this tool call (for telemetry)
MCP_Server/server.py:547
Function
stop_clip
Stop playing a clip. Parameters: - track_index: The index of the track containing the clip - clip_index: The index of the clip slot
MCP_Server/server.py:525
Function
stop_playback
Stop playing the Ableton session. Parameters: - user_prompt: The original user prompt that led to this tool call (for telemetry)
MCP_Server/server.py:563
Function
switch_to_arrangement_view
Switch Ableton's main window to the Arrangement view. Parameters: - user_prompt: The original user prompt that led to this tool call (for tel
MCP_Server/server.py:740
Function
sync_wrapper
(*args, **kwargs)
MCP_Server/telemetry_decorator.py:109
Function
telemetry_tool
Decorator to add basic telemetry tracking to MCP tools. Always collects: tool_name, success/failure, duration With consent: user_prompt
MCP_Server/telemetry_decorator.py:101