# Ableton MCP AI Sistema MCP + Remote Script para controlar Ableton Live 12 desde clientes tipo Claude Code, Codex y opencode, con foco en generacion musical y flujo de produccion en Arrangement View. ## Estado actual - Wrapper estable por `stdio` para Claude Code, Codex y opencode. - Remote Script `AbletonMCP_AI` cargable desde `Preferences > Link/Tempo/MIDI > Control Surface`. - Runtime canonico en `abletonmcp_init.py` con fallback desde `AbletonMCP_AI/__init__.py`. - MCP server en `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.py`. - Generacion de canciones y tracks con fallback de audio en Arrangement. - Seleccion de samples endurecida para reggaeton usando la libreria local del usuario. - Pack brain y jueces externos preparados para trabajar con Z.ai via API Anthropic-compatible. ## Que contiene este repo - `AbletonMCP_AI/` Remote Script entrypoint, runtime espejo y paquete principal. - `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/` Servidor MCP, generador musical, seleccion de samples, jobs async y utilidades. - `_Framework/` Shim minimo necesario para que el runtime no dependa de imports rotos de `ableton.v2`. - `abletonmcp_init.py` Runtime canonico que corre dentro de Ableton Live. - `mcp_wrapper.py` Launcher estable para clientes MCP por `stdio`. - `CLAUDE.md` Documentacion operativa para agentes. - `KIMI_K2_START_HERE.md` Entrada minima y obligatoria para Kimi K2. - `KIMI_K2_ACTIVE_HANDOFF.md` Handoff activo, simple y actualizado. - `MCP_CLAUDE_OPENCODE_SETUP.md` Setup puntual para Claude Code y opencode. - `docs/KNOWN_ISSUES.md` Problemas abiertos y limites reales. - `docs/ROADMAP.md` Roadmap canonico del proyecto. - `docs/TODO.md` Trabajo pendiente priorizado. ## Lo que no contiene - La libreria privada del usuario en `libreria/reggaeton`. - Audio generado, caches, embeddings pesados y logs. - Recovery files, estados temporales y artefactos de ejecucion local. ## Requisitos - Windows nativo. - Ableton Live 12 instalado en: `C:\ProgramData\Ableton\Live 12 Suite\Program\Ableton Live 12 Suite.exe` - Python accesible como `python`. - Este repo ubicado dentro de: `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts` ## Arranque rapido 1. Copia el repo a `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts`. 2. Abre Ableton Live. 3. En `Preferences > Link/Tempo/MIDI`, selecciona `AbletonMCP_AI` como `Control Surface`. 4. Arranca el MCP con: ```powershell python C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\mcp_wrapper.py --transport stdio ``` 5. Para lanzamiento manual simple: ```bat start_mcp.bat ``` ## Configuracion de clientes ### Claude Code Usa `.mcp.json` o config equivalente apuntando a: ```json { "mcpServers": { "ableton-mcp-ai": { "type": "stdio", "command": "python", "args": [ "C:/ProgramData/Ableton/Live 12 Suite/Resources/MIDI Remote Scripts/mcp_wrapper.py" ] } } } ``` ### Codex / opencode Usa el mismo wrapper `mcp_wrapper.py` por `stdio`. Hay ejemplos ya preparados en `opencode.json`. En esta maquina, las rutas activas son: - Codex: `C:\Users\ren\.codex\config.toml` - OpenCode global: `C:\Users\ren\.opencode.json` - OpenCode local: `C:\Users\ren\.config\opencode\opencode.json` - OpenCode proyecto: `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\opencode.json` Todas deben apuntar al mismo entrypoint: `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\mcp_wrapper.py` ## Libreria de samples La libreria principal usada durante las pruebas esta fuera del repo: `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\libreria\reggaeton` El codigo esta preparado para trabajar con esa ruta local, pero no se publica por tamano y por contenido privado. ## Z.ai / jueces externos Si quieres usar jueces externos y no solo heuristicas locales: ```powershell $env:ANTHROPIC_BASE_URL = "https://api.z.ai/api/anthropic" $env:ANTHROPIC_AUTH_TOKEN = "" $env:ANTHROPIC_MODEL = "glm-5.1" ``` El sistema usa fallback heuristico si la API no responde o devuelve rate limit. ## Flujo recomendado 1. Verifica socket y estado con `get_session_info`. 2. Usa `generate_song_async` o `generate_track_async` desde clientes MCP para evitar timeouts largos. 3. Si trabajas localmente desde Python, puedes invocar `server.generate_song(...)` directo. 4. Despues de generar, fuerza `show_arrangement_view`, `jump_to 0` y `start_playback`. ## Documentacion adicional - `CLAUDE.md` - `KIMI_K2_START_HERE.md` - `KIMI_K2_ACTIVE_HANDOFF.md` - `MCP_CLAUDE_OPENCODE_SETUP.md` - `KIMI_K2_CODEBASE_FIXES.md` - `KIMI_K2_NOTE_API_FIX.md` - `docs/KNOWN_ISSUES.md` - `docs/ROADMAP.md` - `docs/TODO.md` ## Nota honesta El sistema ya genera sets utilizables y estabilizo la conexion Live <-> MCP, pero todavia no esta en un punto de "produccion profesional sin supervision". El estado real y lo pendiente estan documentados en `docs/KNOWN_ISSUES.md` y `docs/TODO.md`.