able-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| als_summaryA | Summarize an Ableton .als file: tempo, time signature, track and clip counts. |
| als_list_tracksB | List all tracks in an .als file with their kind, name, mute/solo state, and device count. |
| als_list_clipsA | List clips on one track (by index) or every track (omit track_index). |
| als_extract_midiB | Extract MIDI notes from one clip (by track index and clip index) as pitch/start/duration/velocity tuples. |
| als_find_unfinishedC | Heuristic suggestions about what looks unfinished in a set: missing instruments, empty MIDI clips, no master limiter, etc. |
| live_check_bridgeA | Check whether the AbleMCP M4L bridge is running. Returns the bridge's ping payload on success, or guidance on how to install the device. |
| live_statusA | Live transport state: tempo, time signature, playing flag, song position, track count. |
| live_get_tempoA | Current Live tempo in BPM. |
| live_is_playingA | Whether Live's transport is currently playing. |
| live_list_tracksA | List all tracks in the running Live set with kind, name, mute/solo/arm state. |
| live_get_selectionA | The currently selected track and scene in Live's view. |
| live_set_tempoB | Set Live's tempo (BPM, 20..999). Defaults to confirm=True. |
| live_playB | Start Live's transport. Defaults to confirm=True. |
| live_stopB | Stop Live's transport. Defaults to confirm=True. |
| live_continueC | Continue playback from the current position. |
| live_undoB | Trigger Live's undo. Reverts the last LOM-visible change. |
| live_redoC | Trigger Live's redo. |
| live_create_trackA | Create a new track. kind ∈ {'midi','audio','return'}; index defaults to the end. Returns the new track info. |
| live_delete_trackB | Delete a track by index. Use live_undo to recover. |
| live_rename_trackC | Rename a track by index. |
| live_create_clipB | Create an empty MIDI clip in the given session slot. length_beats defaults to 4. |
| live_set_clip_notesB | Replace the notes in a MIDI clip. notes is a list of dicts with {pitch, start, duration, velocity, mute?}. Existing notes are removed first. |
| live_delete_clipC | Delete a clip from a session slot. |
| live_import_audioC | Import an audio file into the Live project and create an audio clip. If scene_index is given, places the clip in that session slot; otherwise places it on the arrangement at start_time. Requires the .ablx extension bridge. |
| live_render_trackB | Render the pre-effects audio of an arrangement track to a WAV file in the extension's temp directory. Returns the WAV path. |
| live_arrangement_create_midi_clipC | Create an empty MIDI clip in the arrangement timeline of a MIDI track. |
| live_arrangement_set_clip_notesB | Replace notes in an arrangement MIDI clip. notes is a list of dicts with {pitch, start, duration, velocity, mute?}. |
| live_create_sceneC | Create a new scene. index defaults to -1 (append). |
| live_env_infoA | Bridge environment info: storage/temp dirs and Live's UI language. |
| midi_estimate_keyC | Estimate the key of a MIDI clip in an .als file using the Krumhansl-Schmuckler algorithm. Returns tonic, mode, and confidence. |
| midi_note_statsC | Per-clip note stats: count, range, density, pitch-class histogram. |
| midi_guess_chordsB | Guess chords across a MIDI clip with a sliding window. window_beats defaults to 1. Returns time-aligned [{start,end,chord}] segments. |
| midi_extract_vocal_guideA | Extract a monophonic guide melody from a vocal WAV file with a dependency-free pitch tracker. Returns notes in both seconds and beats (requires tempo_bpm). |
| midi_generate_complementC | Generate a complementary MIDI melody (not a duplicate) from guide notes in beat-space. Input note dicts: {pitch,start,duration,velocity?}. |
| midi_vocal_to_complementB | Convenience one-shot: extract vocal guide from WAV and immediately generate a complementary MIDI melody in beat-space. |
| live_vocal_to_complement_midiC | End-to-end live flow: render audio from an arrangement audio track range, extract vocal guide, generate complementary melody, create a new arrangement MIDI clip, and write notes into it. |
| assist_finishingC | Aggregate finishing suggestions for a set: missing instruments, empty clips, no master limiter, single-note placeholders, very-short clips. |
| assist_harmonic_overviewA | Run key estimation and chord guessing across every MIDI clip in the set. Useful for a 'where am I harmonically' overview. |
| project_backupA | Make a timestamped copy of an .als file in /Backup/. Never modifies the source. Returns the backup path. |
| project_list_versionsC | List timestamped backups for an .als file. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 40 tools
Tools are generally distinct with clear prefixes for different domains (als, live, midi, etc.). However, there is some overlap between assist_finishing and als_find_unfinished, and between live_vocal_to_complement_midi and midi_vocal_to_complement, which could cause confusion.
Naming follows a consistent pattern with prefixes and verb_noun structure overall. Minor inconsistencies like 'assist_finishing' vs 'assist_harmonic_overview' (gerund vs noun) and the use of 'to' in tool names are acceptable but not uniform.
With 40 tools, this server is on the heavy side. While the coverage is broad across multiple subdomains, it could benefit from splitting into smaller servers or reducing redundancy. The count is borderline high.
The tool surface covers a wide range of Ableton Live interactions: file analysis, live control, MIDI processing, and project management. Minor gaps exist, such as lack of effect/automation tools or session view management, but core workflows are well-supported.