0%

OpenCode 对接 Sora MCP

📘 OverviewOpenCode MCP Overview →

OpenAI 出品的 Sora 在写实视频和角色一致性上仍然是顶级水平,尤其适合做“高质量短片”和“用一张图驱动一段动作”。在 OpenCode 里接上 Sora MCP Server 之后,可以直接用自然语言或上传图片生成视频,完成度比传统文生视频明显更高。

Sora MCP 适合做高质量营销短片、品牌宣传素材、产品展示视频,以及“用一张设定图生成统一风格的多段视频”。

获取 API Token

使用 Sora MCP Server 之前,需要先准备一个 Ace Data Cloud API Token。OpenCode 和 Claude Code 共用一套 Token,获取流程一样:

  1. 打开 Ace Data Cloud 控制台 - 应用列表,获取您的 API Token,留作备用。
  2. 如果你尚未登录或注册,会自动跳转到登录页面;登录注册之后会自动返回当前页面。
  3. 首次申请时会有免费额度赠送,可以先免费体验 Sora MCP 服务。

一个 Token 可以使用 AceData Cloud 提供的全部 11 个 MCP Server,无需为 Sora 单独申请。文档和截图里建议只展示脱敏形式,例如 3b78cc40dd3b43db806a4300....,不要把完整 Token 贴到公开仓库、Issue、截图或聊天记录里。

想用 Claude Desktop / Claude.ai 网页版直接 OAuth 一键授权?请看 Sora 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
2
3
4
5
6
7
8
9
10
11
12
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sora": {
"type": "remote",
"url": "https://sora.mcp.acedata.cloud/mcp",
"enabled": true,
"oauth": false,
"headers": { "Authorization": "Bearer {env:ACEDATACLOUD_API_KEY}" }
}
}
}

⚠️ "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 sora 也会回显 OAuth explicitly disabled,代表生效。

项目级:仅当前项目生效

文件位置:当前项目根目录下的 opencode.json,会覆盖全局配置。适合团队共享、单仓库定制,或者只在某个项目里临时启用某个 MCP。

1
2
3
4
5
6
7
8
9
10
11
12
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sora": {
"type": "remote",
"url": "https://sora.mcp.acedata.cloud/mcp",
"enabled": true,
"oauth": false,
"headers": { "Authorization": "Bearer {env:ACEDATACLOUD_API_KEY}" }
}
}
}

如果项目级 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
2
3
4
5
6
7
8
9
10
11
$ opencode --version
1.15.13

$ opencode mcp list

┌ MCP Servers

● ✓ sora connected
│ https://sora.mcp.acedata.cloud/mcp

└ 1 server(s)

看到 ✓ sora connected 就说明 Sora MCP 已经接入成功。如果显示 或者 unauthorized,请检查 ACEDATACLOUD_API_KEY 是否设置、Token 是否复制完整、Authorization 前缀是否为 Bearer(注意大小写和空格)。

如需调试某一台 MCP 的连接细节:

1
opencode mcp debug sora

实际握手成功后,OpenCode 的 INFO 日志会输出 service=mcp key=sora transport=StreamableHTTP connectedservice=mcp key=sora toolCount=10 两行(实测 10 个工具),代表 Sora MCP 已经准备好被模型调用。

🤖 选模型的实测建议:在 OpenCode 里要真正让模型主动调用 Sora MCP,请优先使用 OpenAI 系列模型(如 acedatacloud/gpt-5-miniacedatacloud/gpt-5)。AceData 上 Claude 系列模型通过 OpenAI 兼容接口暴露时,工具调用经常返回 Improperly formed request(实测:acedatacloud/claude-haiku-4-5-20251001acedatacloud/claude-sonnet-4-6 在挂载多个 MCP 时均报这个错)。只做对话不调用工具时,Claude 模型可以正常使用。

典型场景

配置完成后,直接在 OpenCode 会话里用自然语言即可调用,无需先切到 /mcp

高质量文生视频

1
生成一段 5 秒视频:日式咖啡馆的窗边,雨天,热咖啡冒着热气,电影质感

图生视频

1
把这张人物概念图(链接 xxx)变成短视频,让人物缓缓抬头微笑

高清横屏 / 竖屏

1
生成一段 HD 横屏的海浪拍岸慢动作视频

工具列表

下表列出主要工具(Sora MCP Server 实测共暴露 10 个工具,可通过 curl -X POST https://sora.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"}' 获取完整清单):

工具 说明
sora_generate_video 文本生成视频
sora_generate_video_from_image 图片生成视频

相关链接