Files
soundcraft/docs/mcp.md
T
grovebit 62a0b683e5 Ask before Save As replaces another session
Save As, Save Copy In, Save As Template and Export Selected Tracks as
New Session wrote over any existing file without asking. The Save As
prompt proposes ~/<name>/<name>.scraft, so every new session suggests
~/Untitled/Untitled.scraft, and saving a second new session with the
suggested path replaced the first one.

These commands now refuse to write over an existing file unless
`replace` is true; Save, Save As and Save Copy In may still write the
open session's own file. Scripts, MCP agents and the control channel
can't replace a session by accident. While the path in the prompt names
an existing file, the prompt asks whether to replace it and its OK
button becomes Replace; Enter alone doesn't replace. Saving also
creates the session's folder, so a new session without audio can be
saved to the suggested path. The CLI's --save names its output
explicitly and keeps replacing it, like --bounce.
2026-10-11 20:03:47 +01:00

2.2 KiB

MCP server

SoundCraft speaks the Model Context Protocol over stdio, so Claude and other agents can make music with it.

soundcraft-cli mcp                    # headless engine (no window, no audio device)
soundcraft-cli mcp --demo             # headless, starting from the demo session
soundcraft --control 7801 &           # the desktop app…
soundcraft-cli mcp --connect 7801     # …driven over MCP: same tools plus screenshots and clicks

Claude Code:

claude mcp add soundcraft -- soundcraft-cli mcp --demo

Tools

Tool Purpose
list_commands Discover every command (id, label, menu path, shortcut, params doc, enabled).
execute Run one command with JSON params.
batch Run several commands in order (keep_going optional).
inspect_session Verify work: tracks, clips, mixer, plugins, sends, automation, markers, selection; each sources[] entry includes loaded (decoded audio in the pool).
new_session, open_session, save_session Session files (.scraft, audio in Audio Files/). open_session returns missing: the media files that could not be loaded (empty when all are found). save_session won't save over another existing file unless replace is true.
import_audio WAV, AIFF, FLAC, MP3, OGG, AAC/M4A, ALAC, CAF onto a new or existing track.
bounce_mix Render to WAV/AIFF/FLAC; returns peak dBFS and integrated LUFS.
parity Feature-parity report.
screenshot, ui_inspect, ui_set, menu_invoke, click, drag, key App only (with --connect).

Resources: soundcraft://session (full session JSON), soundcraft://commands.

Conventions

  • Programmatic calls never open dialogs; empty params act on the current selection.
  • Positions: samples, {"seconds": x}, or "bars_beats:5|1|000"-style strings.
  • Tracks by name or id; clips by id.
  • Every command is undoable through edit.undo unless it is a query or a view setting.

The acceptance test crates/automation/tests/agent_tasks.rs drives a realistic session end to end through MCP only (mixing, plugins, routing, editing with undo, markers, tempo, automation, bounce, save and reopen).