Ableton Cookbook MCP

teamallnighter/ableton-cookbook-mcp
0 starsMITCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Bridges AI assistants with Ableton Live, enabling real-time control, offline project analysis, version tracking, and rack/preset parsing for music production workflows.

README.md

πŸŽ›οΈ The Ableton Cookbook - MCP Server

![CI/CD](https://github.com/teamallnighter/ableton-cookbook-mcp/actions) ![License: MIT](https://opensource.org/licenses/MIT) ![Node.js Version](https://nodejs.org/) ![Documentation](https://teamallnighter.github.io/ableton-cookbook-mcp/)

Share and discover Ableton Live production recipes - A Model Context Protocol (MCP) server that bridges AI assistants with Ableton Live, enabling version control, rack analysis, and real-time control for music production workflows.

🌐 View Documentation | πŸ“– Contributing Guide | πŸ—ΊοΈ Vision & Roadmap

This project enables AI assistants to interact with Ableton Live through the Model Context Protocol (MCP), combining real-time control, offline analysis, version tracking, and rack parsing into a unified workflow intelligence system.

Vision

Think Spotify Wrapped meets Stack Overflow for music production. A platform where producers share and discover Ableton workflows through:

  • πŸŽ›οΈ Rack Analysis - Parse and share device chains as "recipes"
  • πŸ“š Version Control - Track project evolution with semantic versioning
  • 🌍 Collective Intelligence - Query anonymized data from thousands of projects
  • πŸ€– AI-Powered Insights - Get mixing advice, device recommendations, and workflow patterns

Project Structure

Mono-repo with npm workspaces:

ableton-cookbook-mcp/
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ mcp-server/            # TypeScript MCP Server 🟒 ACTIVE
β”‚   β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”‚   β”œβ”€β”€ index.ts       # Main MCP server (16 tools)
β”‚   β”‚   β”‚   β”œβ”€β”€ archivist.ts   # Offline .als parsing
β”‚   β”‚   β”‚   β”œβ”€β”€ operator.ts    # Real-time Live control
β”‚   β”‚   β”‚   β”œβ”€β”€ historian.ts   # Version control bridge
β”‚   β”‚   β”‚   └── analyzer.ts    # Rack/preset analysis bridge
β”‚   β”‚   └── dist/              # Compiled JavaScript
β”‚   β”‚
β”‚   β”œβ”€β”€ python-scripts/        # Version Control System 🟒 ACTIVE
β”‚   β”‚   β”œβ”€β”€ ableton_version_manager.py
β”‚   β”‚   β”œβ”€β”€ ableton_visualizer.py
β”‚   β”‚   └── ableton_diff.py
β”‚   β”‚
β”‚   └── php-analyzers/         # Rack/Preset Parsers 🟒 ACTIVE
β”‚       β”œβ”€β”€ abletonRackAnalyzer/
β”‚       β”œβ”€β”€ abletonDrumRackAnalyzer/
β”‚       β”œβ”€β”€ abletonPresetAnalyzer/
β”‚       └── abletonSessionAnalyzer/
β”‚
β”œβ”€β”€ .claude/                   # AI context & planning docs
β”‚   β”œβ”€β”€ PROJECT_CONTEXT.md
β”‚   β”œβ”€β”€ ARCHITECTURE.md
β”‚   β”œβ”€β”€ VISION_AND_ROADMAP.md
β”‚   └── WEEK_1_IMPLEMENTATION.md
β”‚
β”œβ”€β”€ docs/                      # GitHub Pages documentation
β”œβ”€β”€ .github/
β”‚   β”œβ”€β”€ workflows/             # CI/CD automation
β”‚   └── ISSUE_TEMPLATE/        # Bug/feature templates
β”‚
└── cookbook-website/          # Laravel Web Platform (symlink)
    └── β†’ (External Laravel project)

Features

πŸ—„οΈ Archivist (Offline Analysis)

  • Scan directories for Ableton Live Set (.als) files
  • Parse and inspect .als files without opening Live
  • Extract track, device, and scene information from project files

πŸŽ›οΈ Operator (Live Control)

  • Real-time connection to running Ableton Live instance
  • Query transport status (tempo, play state, song time)
  • List all tracks with names, colors, and IDs
  • Control mixer parameters (volume, etc.)

πŸ“š Historian (Version Control)

  • Track version history of Ableton projects
  • Compare any two versions to see changes
  • Generate detailed change reports (track additions/removals, device changes)
  • Create HTML timeline visualizations
  • Automatic version scanning and metadata integration

πŸ”¬ Analyzer (Rack & Preset Analysis)

  • Parse Ableton rack files (.adg) to extract device chains and macros
  • Analyze drum racks with pad assignments and sample mappings
  • Inspect device presets (.adv) to see parameter settings
  • Scan User Library for all racks, presets, and workflows
  • Search racks by device type (find all racks using specific plugins)
  • Detect edition requirements (Intro/Standard/Suite)

Prerequisites

1. Node.js

Ensure you have Node.js (v18 or higher) installed.

2. Ableton Live & ableton-js Remote Script

This server uses the ableton-js library to communicate with Live. For this to work, you must install the official MIDI Remote Script.

  1. Locate the node_modules/ableton-js/midi-script folder in this project (after running npm install).
  2. Copy the AbletonJS folder to your Ableton Live "MIDI Remote Scripts" directory:
  • macOS: /Applications/Ableton Live 11 Suite.app/Contents/App-Resources/MIDI Remote Scripts/

Quick Start

Installation

# Clone the repository
git clone https://github.com/teamallnighter/ableton-cookbook-mcp.git
cd ableton-cookbook-mcp

# Install and build MCP server
cd packages/mcp-server
npm install
npm run build

Configure Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "ableton": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/ableton-cookbook-mcp/packages/mcp-server/dist/index.js"]
    }
  }
}

Restart Claude Desktop and you'll see 16 Ableton tools available! πŸŽ‰

Development

cd packages/mcp-server

# Watch mode (auto-rebuild on changes)
npm run watch

# Lint and format
npm run lint
npm run format

# Manual build
npm run build

{ "mcpServers": { "ableton-live": { "command": "node", "args": ["/Volumes/DEV/M4L-MCP/dist/index.js"] } } } ```

After adding the configuration, restart Claude Desktop.

Available Tools

Offline Analysis (Archivist)

  • scan_project_files - Find all .als files in a directory
  • inspect_als - Parse an .als file to extract structure

Live Control (Operator)

  • get_live_status - Get transport status and tempo
  • list_live_tracks - List all tracks in the current set
  • set_track_volume - Control track volume

Version Control (Historian)

  • get_version_history - Show all versions with timestamps
  • scan_versions - Find versioned .als files (_X.Y.Z.als pattern)
  • compare_versions - Diff two specific versions
  • get_latest_changes - View most recent change report
  • get_change_report - Get changes between specific versions
  • generate_timeline - Create HTML timeline visualization

Rack & Preset Analysis (Analyzer)

  • analyze_rack - Extract device chains, macros, and metadata from .adg racks
  • analyze_drum_rack - Parse drum rack pad assignments and samples
  • analyze_preset - Inspect device preset (.adv) parameter settings
  • scan_user_library - Index all racks, drum racks, and presets in User Library
  • search_racks_by_device - Find racks containing specific devices (e.g., "Serum")

Contributing

We welcome contributions! Whether you're a producer, developer, or both - your input helps make this tool better for the music production community.

Ways to contribute:

See CONTRIBUTING.md for detailed guidelines.

Documentation

Roadmap

  • [x] Phase 1: Proof of Concept - MCP server with 16 tools βœ…
  • [ ] Phase 2: Easy Setup - Desktop installer for non-technical users
  • [ ] Phase 3: Community - Web platform for sharing workflow recipes
  • [ ] Phase 4: Discovery - Search, recommendations, and integrations

See VISION_AND_ROADMAP.md for detailed plans.

License

MIT License - see LICENSE file for details.

Acknowledgments

Built with:

---

Made with 🎡 by Team All Nighter For producers who code at 3am

Example Usage

Once configured, you can ask Claude:

Live Control:

  • "What tracks are in my current Ableton set?"
  • "Set the volume of the Bass track to 0.5"
  • "What's the current tempo and play state?"

Version Control:

  • "Show me the version history for my project"
  • "What changed between version 0.1.0 and 0.1.2?"
  • "Generate a timeline visualization for this project"

Rack Analysis:

  • "Analyze this rack and show me the device chain"
  • "What devices are in my Bass Daddy rack?"
  • "Find all racks in my User Library that use Serum"
  • "Scan my User Library and show me all my custom racks"

Related MCP servers

Browse all β†’