analyze_outcomesLABSCO SUMMARY
It listens to the change and learns from the ones you keep, rather than scoring taste in the abstract.
listen_ab comparing before and after is the honest core — the model can tell whether an edit actually did what was asked instead of assuming it did. And the taste tools learn from A/B choices you made, not a universal quality score, which is a more defensible way to remember your preferences. Edits inside the set ride Ableton's undo stack; library and installer changes do not, so those are the ones to watch.
What it is
A server that gives an MCP client control over Ableton Live 12: explicit tools for the set, plus library search, listening analysis and taste learning from the versions you keep.
What you get
- Direct control over transport, tracks, clips, notes, devices, routing, mixing, automation and Arrangement View
- Library search across Ableton's library, your plugins and racks, local samples and Splice before loading — atlas_search, scan_full_library, augment_with_samples
- Listening before judging — listen_capture reads the result and listen_ab compares it against the state before the edit
- Taste learning from real choices — taste_record_pair, taste_train and taste_rank learn from audio you kept versus discarded
- Composition and device helpers such as compose, insert_device and apply_semantic_move, which runs a named move rather than a tool of its own
- Changes inside the set use Ableton's undo stack; downloads, library scans and installer changes happen outside it and cannot be undone from Ableton
Requirements
Ableton Live 12 on macOS or Windows. The setup wizard, npx livepilot --setup, installs the Ableton Remote Script, creates the Python environment, copies the Max for Live Analyzer, and checks the connection; Claude Desktop users can double-click a livepilot-<version>.mcpb from Releases. The npm package is livepilot. Licensed BSL 1.1; pin a version for repeatable setups.
Setup effort
Follow the published steps — npx livepilot --setup
USE CASES
Making a precise edit to a track
Nudge notes, adjust mixing and automation through explicit tools, with the change on Ableton's undo stack.
Finding a sound before loading it
Search Ableton's library, your racks and Splice, then augment with samples.
Checking whether an edit actually changed anything
Capture the result and A/B it against the state before the edit.
Teaching it what you like
Record kept-versus-discarded pairs and train the ranker on your own choices.
Locking the kick and bass together
Apply the kick-bass lock rather than tuning it by hand.
474 tools
Listed in project docs. Your client may show a different list.
build_world_modelcompile_goal_vectorevaluate_moveget_taste_profileget_technique_cardget_turn_budgetiterate_toward_goalroute_requestadd_drum_rack_padadd_warp_markeranalyze_loudness_livecapture_audiocapture_stopcheck_flucomaclassify_simpler_slicescompressor_set_sidechaincrop_simplerensure_analyzer_on_masterget_automation_stateget_chromaget_clip_file_pathget_detected_keyget_display_valuesget_hidden_parametersget_master_rmsget_master_spectrumget_mel_spectrumget_momentary_loudnessget_noveltyget_onsetsget_simpler_slicesget_spectral_shapeget_warp_markersload_sample_to_simplermove_warp_markerreconnect_bridgeremove_warp_markerreplace_simpler_samplereverse_simplerscrub_clipsimpler_set_warpstop_scrubverify_all_devices_healthverify_device_healthwalk_device_treewarp_simpleradd_arrangement_notesback_to_arrangercapture_midicreate_arrangement_clipcreate_cue_pointcreate_native_arrangement_clipduplicate_arrangement_notesforce_arrangementget_arrangement_clipsget_arrangement_notesget_cue_pointsjump_to_cuejump_to_timemodify_arrangement_notesremove_arrangement_notesremove_arrangement_notes_by_idset_arrangement_automationset_arrangement_clip_nameset_cue_point_namestart_recordingstop_recordingtoggle_cue_pointtranspose_arrangement_notesatlas_auditionatlas_chain_suggestatlas_compareatlas_cross_pack_chainatlas_demo_storyatlas_describe_chainatlas_device_infoatlas_exploreatlas_extract_chainatlas_macro_fingerprintatlas_pack_aware_composeatlas_pack_infoatlas_searchatlas_substituteatlas_suggestatlas_techniques_for_deviceatlas_transplantextension_atlas_getextension_atlas_listextension_atlas_searchreload_atlasscan_full_libraryaudit_layeranalyze_for_automationapply_automation_recipeapply_automation_shapeclear_clip_automationgenerate_automation_curveget_automation_recipesget_clip_automationset_arrangement_automation_via_session_recordset_clip_automationget_browser_itemsget_browser_treeload_browser_itemsearch_browsercheck_clip_key_consistencycreate_clipdelete_clipduplicate_clipfire_clipget_clip_infoget_clip_scaleset_clip_colorset_clip_launchset_clip_loopset_clip_nameset_clip_pitchset_clip_scaleset_clip_scale_modeset_clip_warp_modestop_clipanalyze_loop_for_extensionaugment_with_samplescomposecompose_fast_applycompose_full_applyconsult_ableton_knowledgedevelop_applyget_composition_planpropose_composer_branchesanalyze_compositionapply_gesture_templateevaluate_composition_moveget_harmony_fieldget_phrase_gridget_section_graphget_section_outcomesget_transition_analysisplan_gestureapply_creative_constraint_setdistill_reference_principlesgenerate_constrained_variantsgenerate_reference_inspired_variantsmap_reference_principles_to_songcheck_brief_compliancecompile_hybrid_briefgenerate_m4l_effectinstall_m4l_devicelist_genexpr_templatesadd_rack_macroadd_wavetable_mod_routebatch_set_parametersclear_simpler_slicescopy_device_statedelete_devicedelete_rack_variationfind_and_load_deviceget_device_ab_stateget_device_infoget_device_parametersget_device_presetsget_plugin_parametersget_plugin_presetsget_rack_chainsget_rack_variationsget_wavetable_mod_amountget_wavetable_mod_matrixget_wavetable_mod_targetsimport_slices_from_onsetsinsert_deviceinsert_rack_chaininsert_simpler_sliceload_device_by_urimap_plugin_parametermove_devicemove_simpler_slicerandomize_rack_macrosrecall_rack_variationremove_rack_macroremove_simpler_slicerename_chainreset_simpler_slicesset_chain_volumeset_device_parameterset_drum_chain_noteset_rack_visible_macrosset_simpler_playback_modeset_wavetable_mod_amountstore_rack_variationtoggle_devicetoggle_device_abget_control_surface_infolist_control_surfacesreload_handlersevaluate_with_fabriccommit_experimentcompare_experimentscreate_experimentdiscard_experimentrun_experimentapply_follow_action_presetclear_clip_follow_actionclear_scene_follow_actionget_clip_follow_actionget_scene_follow_actionlist_follow_action_typesset_clip_follow_actionset_scene_follow_actiongenerate_additive_processgenerate_euclidean_rhythmgenerate_phase_shiftgenerate_tintinnabulilayer_euclidean_rhythmsgrader_evaluategrader_evaluate_allgrader_list_rubricsassign_clip_grooveget_clip_grooveget_groove_infoget_song_groove_amountlist_groovesset_groove_paramsset_song_groove_amountclassify_progressionfind_voice_leading_pathnavigate_tonnetzsuggest_chromatic_mediantscompare_phrase_impactdetect_hook_neglectdetect_payoff_failuredevelop_hookfind_primary_hookmeasure_hook_saliencerank_hook_candidatesscore_phrase_impactsuggest_payoff_repairlisten_ablisten_capturetaste_ranktaste_record_pairtaste_trainadd_session_memoryexplain_taste_inferenceget_anti_preferencesget_promotion_candidatesget_session_memoryget_taste_dimensionsget_taste_graphmemory_deletememory_favoritememory_getmemory_learnmemory_listmemory_recallmemory_replaymemory_updaterank_moves_by_tasterecord_anti_preferencerecord_positive_preferenceanalyze_midi_fileexport_clip_midiextract_piano_rollimport_midi_to_clipget_miditool_contextinstall_miditool_devicelist_miditool_generatorsset_miditool_targetanalyze_mixevaluate_mix_moveget_masking_reportget_mix_issuesget_mix_summaryplan_mix_moveget_master_metersget_master_trackget_mix_snapshotget_return_tracksget_track_metersget_track_routingset_master_volumeset_track_panset_track_routingset_track_sendset_track_volumeget_motif_graphtransform_motifanalyze_phrase_arccompare_phrase_rendersdetect_repetition_fatiguedetect_role_conflictsinfer_section_purposesscore_emotional_arcadd_notesduplicate_notesget_notesmodify_notesquantize_clipremove_notesremove_notes_by_idtranspose_notesanalyze_loudnessanalyze_spectrum_offlinecompare_to_referenceread_audio_metadataget_performance_safe_movesget_performance_stateplan_scene_handoffplan_arrangementtransform_sectioncommit_preview_variantcompare_preview_variantscreate_preview_setdiscard_preview_setrender_preview_variantbuild_project_brainget_project_brain_summaryanalyze_reference_gapsbuild_reference_profileplan_reference_movesget_emotional_arcget_style_tacticsresearch_techniquecheck_safetyget_action_ledger_summaryget_capability_stateget_last_moveget_session_kernelprobe_link_audioprobe_stem_workflowanalyze_sampleevaluate_sample_fitget_sample_opportunitiesget_splice_creditsplan_sample_workflowplan_slice_workflowsearch_samplessplice_add_to_collectionsplice_catalog_huntsplice_create_collectionsplice_describe_soundsplice_download_presetsplice_download_samplesplice_generate_variationsplice_http_diagnosesplice_list_collectionssplice_list_presetssplice_pack_infosplice_preset_infosplice_preview_samplesplice_remove_from_collectionsplice_search_in_collectionsuggest_sample_techniqueget_song_scaleget_tuning_systemlist_available_scalesreset_tuning_systemset_song_scaleset_song_scale_modeset_tuning_noteset_tuning_reference_pitchcreate_scenedelete_sceneduplicate_scenefire_scenefire_scene_clipsget_playing_clipsget_scene_matrixget_scenes_infoset_scene_colorset_scene_nameset_scene_tempostop_all_clipsapply_semantic_movelist_semantic_movespreview_semantic_movepropose_next_best_moveexplain_preference_vs_identityget_session_storylist_open_creative_threadsopen_creative_threadrank_by_taste_and_identityrecord_turn_resolutionresume_last_intentbuild_song_braindetect_identity_driftexplain_song_identityanalyze_sound_designget_patch_modelget_sound_design_issuesplan_sound_design_movedetect_stucknessstart_rescue_workflowsuggest_momentum_rescueanalyze_synth_patchextract_timbre_fingerprintpropose_synth_branchescreate_audio_clip_on_take_lanecreate_midi_clip_on_take_lanecreate_take_laneget_take_lane_clipsget_take_lanesset_take_lane_nameanalyze_harmonydetect_theory_issuesgenerate_countermelodyharmonize_melodyidentify_scalesuggest_next_chordtranspose_smartcreate_audio_trackcreate_midi_trackcreate_return_trackdelete_trackduplicate_trackflatten_trackfreeze_trackget_appointed_deviceget_freeze_statusget_track_infoget_track_performance_impactjump_in_session_clipset_group_foldset_track_armset_track_colorset_track_input_monitoringset_track_muteset_track_nameset_track_solostop_track_clipsverify_device_aliveanalyze_transitionplan_transitionscore_transitioncheck_translationget_translation_issuescapture_and_insert_scenecontinue_playbackforce_link_beat_timeget_link_stateget_recent_actionsget_session_diagnosticsget_session_infonudge_temporedoset_count_in_durationset_exclusive_armset_exclusive_soloset_link_enabledset_session_loopset_temposet_time_signaturestart_playbackstop_playbacktap_tempotoggle_metronomeundocorpus_add_sourcecorpus_canonicalize_pluginscorpus_cluster_pluginscorpus_detect_pluginscorpus_discover_manualscorpus_emit_synthesis_briefscorpus_initcorpus_list_scannerscorpus_remove_sourcecorpus_research_targetscorpus_scancorpus_setup_wizardcorpus_statuscorpus_trim_plugin_identitydiscard_wonder_sessionenter_wonder_moderank_wonder_variantsBEFORE YOU INSTALL
What to know first
Tools you get
474 tools named in the project's documentation.
Requires
- Ableton Live 12
- Python 3.12+
- Node.js 18+
- macOS or Windows
Where it runs
All 4 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
npx livepilot --setupRestart Ableton Live 12, then Preferences → Link, Tempo & MIDI → Control Surface → LivePilot
MCP Clients
Claude Desktop, Cursor
{
"mcpServers": {
"LivePilot": {
"command": "npx",
"args": [
"livepilot"
]
}
}
}Claude Code
claude mcp add LivePilot -- npx livepilotVS Code
{
"servers": {
"LivePilot": {
"command": "npx",
"args": [
"livepilot"
]
}
}
}