📘 Overview:OpenCode MCP Overview →
你正在终端里写一段产品发布日志,写完之后突然想到:如果有一段 30 秒的 BGM 配合视频版 release notes 就更完整了。接上 Suno MCP Server 之后,OpenCode 可以直接根据你描述的情绪、风格、节奏现场写歌,不用切到浏览器,也不需要单独的音乐生成账号。
Suno MCP 适合在 OpenCode 里随手生成发布配乐、产品演示 BGM、demo 视频背景音乐、甚至完整的带歌词的成品歌曲。
获取 API Token
使用 Suno MCP Server 之前,需要先准备一个 Ace Data Cloud API Token。OpenCode 和 Claude Code 共用一套 Token,获取流程一样:
- 打开 Ace Data Cloud 控制台 - 应用列表,获取您的 API Token,留作备用。
- 如果你尚未登录或注册,会自动跳转到登录页面;登录注册之后会自动返回当前页面。
- 首次申请时会有免费额度赠送,可以先免费体验 Suno MCP 服务。

一个 Token 可以使用 AceData Cloud 提供的全部 11 个 MCP Server,无需为 Suno 单独申请。文档和截图里建议只展示脱敏形式,例如 3b78cc40dd3b43db806a4300....,不要把完整 Token 贴到公开仓库、Issue、截图或聊天记录里。
想用 Claude Desktop / Claude.ai 网页版直接 OAuth 一键授权?请看 Suno MCP 的 Claude.ai / Desktop 教程。
配置 OpenCode
OpenCode 用一份 opencode.json 描述所有 MCP Server,文件可以放在两处,按下面”作用范围”选一种即可。两种位置的字段结构完全相同,区别只是优先级。
强烈推荐先把 Token 写到环境变量里:
1 |
export ACEDATACLOUD_API_KEY="替换为你的真实 Token" |
然后在 opencode.json 里用 {env:ACEDATACLOUD_API_KEY} 占位符引用,避免真实 Token 写进文件。
全局:所有项目共用
文件位置:~/.config/opencode/opencode.json,适合”我自己的机器,一次配好,所有项目都能用”。
1 |
{ |
⚠️
"oauth": false不可省略。AceData 的 MCP Server 使用 Bearer Token 鉴权,不走 OAuth 流程;OpenCode 默认会把 401 当成 OAuth 挑战自动重定向,导致opencode mcp list出现SSE error: Non-200 status code (401)。显式声明"oauth": false让 OpenCode 直接以Authorization: Bearer ...调用,opencode mcp debug suno也会回显OAuth explicitly disabled,代表生效。
项目级:仅当前项目生效
文件位置:当前项目根目录下的 opencode.json,会覆盖全局配置。适合团队共享、单仓库定制,或者只在某个项目里临时启用某个 MCP。
1 |
{ |
如果项目级 opencode.json 会被提交到 Git,请确保用 {env:ACEDATACLOUD_API_KEY} 占位符而不是真实 Token,避免泄露。
💡 如果 Shell 里的
.env没有显式export,需要用set -a && source .env && set +a才能把变量传给 OpenCode 进程,否则opencode debug config会显示"Authorization": "Bearer "(占位符没解析)。
真实运行结果
下面是在 OpenCode 1.15.13 里用隔离临时目录实际执行后的脱敏输出。命令使用真实 AceData Cloud Token,输出中的 Token 已替换成 357265014ad145fc8ab2....,临时配置已删除。
1 |
$ opencode --version |
看到 ✓ suno connected 就说明 Suno MCP 已经接入成功。如果显示 ✗ 或者 unauthorized,请检查 ACEDATACLOUD_API_KEY 是否设置、Token 是否复制完整、Authorization 前缀是否为 Bearer(注意大小写和空格)。
如需调试某一台 MCP 的连接细节:
1 |
opencode mcp debug suno |
实际握手成功后,OpenCode 的 INFO 日志会输出 service=mcp key=suno transport=StreamableHTTP connected 和 service=mcp key=suno toolCount=35 两行(实测 35 个工具),代表 Suno MCP 已经准备好被模型调用。
🤖 选模型的实测建议:在 OpenCode 里要真正让模型主动调用 Suno MCP,请优先使用 OpenAI 系列模型(如
acedatacloud/gpt-5-mini、acedatacloud/gpt-5)。AceData 上 Claude 系列模型通过 OpenAI 兼容接口暴露时,工具调用经常返回Improperly formed request(实测:acedatacloud/claude-haiku-4-5-20251001、acedatacloud/claude-sonnet-4-6在挂载多个 MCP 时均报这个错)。只做对话不调用工具时,Claude 模型可以正常使用。
典型场景
配置完成后,直接在 OpenCode 会话里用自然语言即可调用,无需先切到 /mcp:
一句话写歌
1 |
写一首轻快的 lofi 嘻哈,2 分钟左右,没有歌词,用作编程视频的背景音乐 |
自定义歌词 + 风格
1 |
用 indie rock 风格唱这段歌词:(粘贴歌词),男声,2 分 30 秒 |
翻唱已生成歌曲
1 |
把上一首歌改成爵士风格翻唱 |
从副歌续写
1 |
副歌不错,从副歌往后再续 30 秒 |
工具列表
下表列出主要工具(Suno MCP Server 实测共暴露 35 个工具,可通过 curl -X POST https://suno.mcp.acedata.cloud/mcp -H 'Authorization: Bearer <token>' -H 'Accept: application/json' -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' 获取完整清单):
| 工具 | 说明 |
|---|---|
| suno_generate_music | 一句话描述生成整首歌 |
| suno_generate_custom_music | 自己写歌词、定风格和人声 |
| suno_extend_music | 从某个时间点续写已有歌曲 |
| suno_cover_music | 换一种风格翻唱 |
| suno_mashup_music | 把两首歌混搭成一首 |
| suno_stems_music | 分离人声和伴奏 |
| suno_generate_lyrics | AI 生成歌词 |
| suno_create_persona | 保存声音风格 |