AI agent · MCP

看得见的 Agent

Toy DAW 不自己生成音乐。它把编曲软件的每个动作做成 54 个 MCP 工具,交给你的 Agent(比如 Claude Code)。Agent 在软件里一步步做,你看着、听着、随时叫停。

跟随 · 逐个画出 · 状态

Agent 连上来以后,工作区顶部出现一条状态条。

  • 状态:「Agent 正在操作 · 写音符 · 贝斯 第 3–4 小节(12 个音)」,每个写操作一句带名字的中文;从第一次调用到最后一次调用后 8 秒一直亮着
  • 跟随(默认开):写音符跳到钢琴卷帘的那个 Pattern 和通道,排歌跳到播放列表,调效果打开混音台的那个效果;你正在拖动、开着菜单、或 3 秒内动过鼠标键盘时不切
  • 逐个画出:新写的音符、格子、片段按音乐顺序画出来,正常约 0.6 秒、慢约 1.5 秒,也可以关掉;只影响画面,工程是一次写好的
  • 离开首页:Agent 的第一个写操作把软件从首页切到工作区;它新建的工程自动存进 ~/Music/ToyDAW/工程,出现在最近列表
状态条显示 Agent 正在写音符,钢琴卷帘里 AI 写的音符标成紫色

人说了算

  • Agent 和你改的是同一个工程、同一条撤销历史;它的修改带修订号检查,你在中间改过,它的修改不会执行,会先看你改了什么
  • 暂停 / 继续:暂停时 Agent 的写操作排队等候,读操作照常
  • 撤销 AI 的修改:一键撤掉它这一批;你在它之后又改过,会先问你
  • AI 写的格子和音符标成紫色,通道名旁标「AI」;你一改这一行,标记就去掉
  • 覆盖已有文件弹窗问你;写新文件不问
  • 活动日志一条一条记着它做了什么
右侧活动日志列出 Agent 的每一步,状态条上有暂停和撤销 AI 的修改按钮

接上 Claude Code

先打开 Toy DAW。它在本机 127.0.0.1:39927 开 MCP 接口(端口被占用时换一个空闲端口,实际端口写在 server.json)。令牌在 ~/Library/Application Support/ToyDAW/agent/token。

TOKEN=$(cat ~/Library/Application\ Support/ToyDAW/agent/token)
claude mcp add --transport http toydaw http://127.0.0.1:39927/mcp --header "Authorization: Bearer $TOKEN"

然后在 Claude Code 里直接说你要什么,比如:

来一段 90 BPM 的 lo-fi,A 小调,鼓、贝斯、电钢,16 小节。

只能启动命令的客户端

Claude Desktop 这类只能配一条启动命令的客户端,用软件里自带的命令行工具,走 stdio;它发现软件在运行,就把每条消息转给软件:

/Applications/ToyDAW.app/Contents/MacOS/toydaw-cli mcp

toydaw-cli status 显示连的是正在运行的软件还是工程文件。软件没开时,toydaw-cli 也能直接读写工程文件(没有界面,也就没有跟随和逐个画出)。

54 个工具能做什么

工具分三类:查看(只读)、编辑(改工程,能撤销)、输出(渲染、导出、播放)。tools/list 默认只列 16 个核心工具,省上下文;其余的用 find_capability 按任务找、describe_tool 看参数、call_tool 调用。

看

get_project 一屏看全工程,get_pattern 读谱(鼓是步进字符串,旋律是简写记谱,末尾是识别出的和弦),get_mixer、get_params、what_changed(人改了什么)、get_recent_played(人刚用键盘弹的音)。

写

set_steps 步进、write_notes 简写记谱(A4:8 C5 E5:4 ~G2:8)、edit_notes 按条件批改;add_channel、set_instrument、add_pattern、apply_ops(几步一起成败、一步撤销)。

乐理

theory_render 按配方生成鼓、和弦、贝斯、琶音、伴奏,同输入同输出;theory_progressions、theory_drum_templates;theory_analyze 查调外音、音域、密度、和弦。

编排

arrange 用文本排播放列表(1: p1 x4 | p2 x4、## 前奏 @1),set_markers 段落标记,set_playlist_track 轨道。

混音

set_mixer 推子、发送、总线,set_effects 效果链,set_params,automate 自动化;mix_check 检查,mix_assist 按规则混。

听和看

render 渲染,analyze_audio 量响度、真峰值、五个频段、削波,compare 前后对比,snapshot_image 出钢琴卷帘图和频谱图,play_range 放给人听。

文件和预设

new_project、open_project、save_project,export(WAV、M4A、MIDI、分轨),save_preset、apply_preset、list_presets 等。

撤销

undo、redo,以及只撤自己这一轮的 undo_ai(人在它之后改过就拒绝)。

好不好听只有人能说:每次测量结果里都固定带「需要人听」,Agent 该说「技术上没问题,请你听一下」,而不是「好听」。

安全

  • 接口只监听本机回环地址 127.0.0.1,局域网里的其他电脑连不上。
  • 每个请求都要带 Authorization: Bearer <令牌>;令牌只存在你自己电脑的数据目录里。
  • 浏览器发来的请求,来源不是 localhost 就拒绝(防 DNS 重绑定)。
  • 不想开这个接口:启动前设环境变量 TOYDAW_NO_AGENT=1。
  • 详见 隐私。

现在还不行的

  • 还没有在软件里显示令牌、复制连接命令的设置面板,要用上面的命令读令牌。
  • 播放列表片段上还没有 AI 标记(钢琴卷帘和通道架有)。
  • 客户端不说话就断开时,软件仍显示「已连接」,直到客户端结束会话。