How adamjmurray/producer-pal works
Producer Pal is an Ableton Live control server exposed through MCP and an open REST API, with AI optional. A user or AI client sends a request to the server, which exposes tools for working with a Live Set; Live operations cross the Max/V8-to-Node boundary through an RPC adapter. The repository also contains notation support, Live-library discovery, persistent assistant context, and browser interfaces. The README documents the main product surface; sampled source confirms REST request handling, selected RPC-backed services, and web app startup, but not every tool-to-adapter call path.
Main entry points: node-request-protocol.ts Node RPC routes · mcp-server.ts MCP server · tools Live tools · rest-api-routes.ts REST API
Components 21
Server interfaces
- MCP server
src/mcp-server/mcp-server.ts - REST API
src/mcp-server/routes/rest-api-routes.ts - HTTP app
src/mcp-server/create-express-app.ts - Portal integration
src/portal/producer-pal-portal.ts
Live control
- Live tools
src/tools - Live API adapter
src/live-api-adapter/live-api-adapter.ts - Node RPC routes
src/mcp-server/rpc/node-request-protocol.ts - Music notation
src/notation/notation.ts
Assistant context
- Built-in skills
src/skills/build-skills.ts - Context and memory
src/mcp-server/helpers/global-context/global-context-node-routes.ts - Memory store
src/mcp-server/helpers/memory/memory-store.ts - Custom skills
src/mcp-server/helpers/skills-custom/custom-skills-store.ts - Project context backup
src/mcp-server/helpers/project-context-backup/project-context-backup-node-routes.ts
Browser experience
- Web UI
webui/src/components/App.tsx - Web app entry
webui/src/main.tsx - Chat presets
webui/src/hooks/settings/presets/preset-storage.ts
Music discovery
- Library RPC routes
src/mcp-server/live-library/library-routes.ts - Library search
src/mcp-server/live-library/query/candidate-query.ts - Live browser DB
src/mcp-server/live-library/live-db.ts
Other components
- Musician / client
- Ableton Live
Connections 21
- Musician / client → MCP server: sends MCP requests
- Musician / client → REST API: sends HTTP requests
- REST API → HTTP app: registers routes
- MCP server → Live tools: exposes tools
- REST API → Live tools: validates and invokes
- Live tools → Music notation: parses notation
- Live tools → Live API adapter: requests Live operations
- Live API adapter → Ableton Live: controls Live
- Live API adapter → Node RPC routes: dispatches Node requests
- Node RPC routes → Library RPC routes: dispatches library calls
- Library RPC routes → Library search: runs searches
- Library search → Live browser DB: queries
- Node RPC routes → Context and memory: dispatches context calls
- Context and memory → Memory store: reads and writes
- Node RPC routes → Custom skills: dispatches skill calls
- Node RPC routes → Project context backup: dispatches sync
- Web app entry → Web UI: renders
- Web UI → Chat presets: loads and saves
- Musician / client → Web UI: uses browser UI
- MCP server → Built-in skills: provides assistant guidance
- MCP server → Portal integration: supports portal mode