Skip to main content

Ableton Live integration through the Model Context Protocol (forked and customized)

Project description

AbletonMCP - Ableton Live Model Context Protocol Integration

smithery badge

AbletonMCP connects Ableton Live to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Ableton Live. This integration enables prompt-assisted music production, track creation, and Live session manipulation.

Join the Community

Give feedback, get inspired, and build on top of the MCP: Discord. Made by Siddharth

Features

  • Two-way communication: Connect Claude AI to Ableton Live through a socket-based server
  • Track manipulation: Create, modify, and manipulate MIDI and audio tracks
  • Instrument and effect selection: Claude can access and load the right instruments, effects and sounds from Ableton's library
  • Clip creation: Create and edit MIDI clips with notes
  • Session control: Start and stop playback, fire clips, and control transport

Components

The system consists of two main components:

  1. Ableton Remote Script (Ableton_Remote_Script/__init__.py): A MIDI Remote Script for Ableton Live that creates a socket server to receive and execute commands
  2. MCP Server (server.py): A Python server that implements the Model Context Protocol and connects to the Ableton Remote Script

Installation

Installing via Smithery

To install Ableton Live Integration for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @ahujasid/ableton-mcp --client claude

Prerequisites

If you're on Mac, please install uv as:

</code></pre>
<p>Otherwise, install from [uv's official website][https://docs.astral.sh/uv/getting-started/installation/]</p>
<p>⚠️ Do not proceed before installing UV</p>
<h3><a href="#user-content-claude-for-desktop-integration" aria-hidden="true" class="anchor" id="user-content-claude-for-desktop-integration"></a>Claude for Desktop Integration</h3>
<p><a href="https://youtu.be/iJWJqyVuPS8">Follow along with the setup instructions video</a></p>
<ol>
<li>Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:</li>
</ol>
<pre><code class="language-json">{
    "mcpServers": {
        "AbletonMCP": {
            "command": "uvx",
            "args": [
                "ableton-mcp"
            ]
        }
    }
}

Cursor Integration

Run ableton-mcp without installing it permanently through uvx. Go to Cursor Settings > MCP and paste this as a command:

uvx ableton-mcp

⚠️ Only run one instance of the MCP server (either on Cursor or Claude Desktop), not both

Installing the Ableton Remote Script

Follow along with the setup instructions video

  1. Download the AbletonMCP_Remote_Script/__init__.py file from this repo

  2. Copy the folder to Ableton's MIDI Remote Scripts directory. Different OS and versions have different locations. One of these should work, you might have to look:

    For macOS:

    • Method 1: Go to Applications > Right-click on Ableton Live app → Show Package Contents → Navigate to: Contents/App-Resources/MIDI Remote Scripts/
    • Method 2: If it's not there in the first method, use the direct path (replace XX with your version number): /Users/[Username]/Library/Preferences/Ableton/Live XX/User Remote Scripts

    For Windows:

    • Method 1: C:\Users[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\User Remote Scripts
    • Method 2: C:\ProgramData\Ableton\Live XX\Resources\MIDI Remote Scripts\
    • Method 3: C:\Program Files\Ableton\Live XX\Resources\MIDI Remote Scripts\ Note: Replace XX with your Ableton version number (e.g., 10, 11, 12)
  3. Create a folder called 'AbletonMCP' in the Remote Scripts directory and paste the downloaded '__init__.py' file

  4. Launch Ableton Live

  5. Go to Settings/Preferences → Link, Tempo & MIDI

  6. In the Control Surface dropdown, select "AbletonMCP"

  7. Set Input and Output to "None"

Usage

Starting the Connection

  1. Ensure the Ableton Remote Script is loaded in Ableton Live
  2. Make sure the MCP server is configured in Claude Desktop or Cursor
  3. The connection should be established automatically when you interact with Claude

Using with Claude

Once the config file has been set on Claude, and the remote script is running in Ableton, you will see a hammer icon with tools for the Ableton MCP.

Capabilities

  • Get session and track information
  • Create and modify MIDI and audio tracks
  • Create, edit, and trigger clips
  • Control playback
  • Load instruments and effects from Ableton's browser
  • Add notes to MIDI clips
  • Change tempo and other session parameters

Example Commands

Here are some examples of what you can ask Claude to do:

  • "Create an 80s synthwave track" Demo
  • "Create a Metro Boomin style hip-hop beat"
  • "Create a new MIDI track with a synth bass instrument"
  • "Add reverb to my drums"
  • "Create a 4-bar MIDI clip with a simple melody"
  • "Get information about the current Ableton session"
  • "Load a 808 drum rack into the selected track"
  • "Add a jazz chord progression to the clip in track 1"
  • "Set the tempo to 120 BPM"
  • "Play the clip in track 2"

Troubleshooting

  • Connection issues: Make sure the Ableton Remote Script is loaded, and the MCP server is configured on Claude
  • Timeout errors: Try simplifying your requests or breaking them into smaller steps
  • Have you tried turning it off and on again?: If you're still having connection errors, try restarting both Claude and Ableton Live

Technical Details

Communication Protocol

The system uses a simple JSON-based protocol over TCP sockets:

  • Commands are sent as JSON objects with a type and optional params
  • Responses are JSON objects with a status and result or message

Limitations & Security Considerations

  • Creating complex musical arrangements might need to be broken down into smaller steps
  • The tool is designed to work with Ableton's default devices and browser items
  • Always save your work before extensive experimentation

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Disclaimer

This is a third-party integration and not made by Ableton.

Search MCP

An example Model-Context-Plugin (MCP) for web search capabilities.

Features

  • Internet search using free providers (DuckDuckGo by default)
  • Optional SerpAPI integration (requires API key)
  • Simple webpage content extraction

Installation

  1. Clone this repository:

    git clone https://github.com/yourusername/search-mcp.git
    cd search-mcp
    
  2. Install the package:

    pip install -e .
    

Usage

Starting the MCP Server

Run the server on the default host and port:

search-mcp

Or specify a custom host and port:

search-mcp --host 127.0.0.1 --port 33200

Using SerpAPI

To use SerpAPI as the search provider, you need to get an API key from SerpAPI and set it as an environment variable:

# Windows
set SERP_API_KEY=your_api_key_here

# Linux/Mac
export SERP_API_KEY=your_api_key_here

MCP Tools

search_web

Search the web using the specified provider.

Parameters:

  • query: The search query string
  • provider: The search provider to use ('serp' or 'duckduckgo')
  • num_results: Maximum number of results to return (default: 5)

Example:

result = search_web(query="python programming", provider="duckduckgo", num_results=3)
print(result)

summarize_webpage

Fetch and summarize the content of a webpage.

Parameters:

  • url: URL of the webpage to summarize

Example:

summary = summarize_webpage(url="https://www.python.org")
print(summary)

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vibe_music_prod_server-1.0.0.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vibe_music_prod_server-1.0.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file vibe_music_prod_server-1.0.0.tar.gz.

File metadata

  • Download URL: vibe_music_prod_server-1.0.0.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for vibe_music_prod_server-1.0.0.tar.gz
Algorithm Hash digest
SHA256 df269115f666c46762b97d59e90648139038fb23a15a8c1252f6361fcf45f736
MD5 81b34385f1641729b59c5cc37a69d100
BLAKE2b-256 4437c2effd296b4b503d66a7ea49817b78eded8c9c7bf82a7d8a1bd2b5f72b3c

See more details on using hashes here.

File details

Details for the file vibe_music_prod_server-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for vibe_music_prod_server-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34cc428c58908c8a4a5938f58020d5b0e4a68f80358621bb9f3a908ec44949a0
MD5 74e9b60176cc3dab204283e9a24086c2
BLAKE2b-256 48968334387a811a2da10116743a1995f202fec4611f2418b9188c37e3c8f5db

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page