Seedance 2.5 重磅上线 限时优惠低至 4.9 折,最低仅需 0.33元/秒
即刻升级

WorkBuddy 安装指南

本指南帮助你在 WorkBuddy 中安装 ChatCut MCP 服务,并连接到 ChatCut 云端进行视频编辑。

本安装方式使用远程 MCP 的静态 Authorization: Bearer 请求头。先按下面的 OAuth 2.0 流程获取令牌,再将它填入 WorkBuddy 的 MCP 设置。

开始前,请确认终端能找到 curl 和 python3。下面的多行 curl 示例采用 Bash 续行语法;Windows 可在 WSL 中运行。如果使用 PowerShell,请使用 curl.exe,并按当前终端的语法调整续行和引号,参见 Windows curl 说明。

准备工作

先确认下面两条命令可以正常运行:

curl --version
python3 --version

curl 和 python3 必须位于 PATH 中。后面的客户端注册、令牌交换和 MCP 验证步骤都会用到它们。

安装

如果你是为用户读取本指南的 WorkBuddy Agent,请在用户已要求安装 ChatCut 时,按顺序执行安装步骤,并验证结果。

本安装流程使用手动 OAuth 2.0 授权,WorkBuddy 的本地回调端口为 52961。

1. 注册 OAuth 客户端

通过动态客户端注册接口创建自己的 OAuth 客户端。返回的 client_id 对应 WorkBuddy 的回调端口:

curl -s -X POST "https://api.chatcut.io/auth/mcp/register" \
  -H "Content-Type: application/json" \
  -d '{
    "client_name": "workbuddy",
    "redirect_uris": ["http://127.0.0.1:52961/callback"],
    "grant_types": ["authorization_code", "refresh_token"],
    "response_types": ["code"],
    "token_endpoint_auth_method": "none",
    "scope": "openid profile email offline_access"
  }'

保存响应中的 client_id,并在后面的命令中用它替换 <CLIENT_ID>。

2. 生成 PKCE 参数

python3 -c "
import secrets, hashlib, base64
verifier = base64.urlsafe_b64encode(secrets.token_bytes(32)).rstrip(b'=').decode()
challenge = base64.urlsafe_b64encode(hashlib.sha256(verifier.encode()).digest()).rstrip(b'=').decode()
print(f'VERIFIER={verifier}')
print(f'CHALLENGE={challenge}')
"

保存 VERIFIER 和 CHALLENGE,后面会用到这两个值。

3. 完成授权

替换下面命令中的 <CLIENT_ID> 和 <CHALLENGE> 后运行。它会自动打开浏览器中的授权页面,并在本地端口 52961 接收授权码:

python3 -c "
import http.server, socketserver, urllib.parse, webbrowser
URL = 'https://api.chatcut.io/auth/mcp/authorize?response_type=code&client_id=<CLIENT_ID>&code_challenge=<CHALLENGE>&code_challenge_method=S256&redirect_uri=http://127.0.0.1:52961/callback&scope=openid+profile+email+offline_access&state=chatcut'
captured = {}
class H(http.server.BaseHTTPRequestHandler):
    def do_GET(self):
        q = urllib.parse.parse_qs(urllib.parse.urlparse(self.path).query)
        if 'code' in q:
            captured['code'] = q['code'][0]
            self.send_response(200); self.end_headers()
            self.wfile.write(b'ChatCut authorized - you can close this tab.')
    def log_message(*a): pass
with socketserver.TCPServer(('127.0.0.1', 52961), H) as s:
    s.timeout = 1
    webbrowser.open(URL)
    print('Opened the authorization page. Log in and click Allow ChatCut...')
    for _ in range(180):
        s.handle_request()
        if 'code' in captured: break
print('CODE=' + captured.get('code', '(timed out - copy the URL above and open it manually)'))
"

在打开的 ChatCut 页面中登录并点击 Allow ChatCut。授权成功后,终端会输出 CODE=...。如果浏览器没有自动打开,请复制命令中的 URL 并手动打开。

4. 换取访问令牌

curl -s -X POST "https://api.chatcut.io/auth/mcp/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "code=<AUTHORIZATION_CODE>" \
  -d "redirect_uri=http://127.0.0.1:52961/callback" \
  -d "client_id=<CLIENT_ID>" \
  -d "code_verifier=<VERIFIER>"

响应包含 access_token、refresh_token 和 expires_in。访问令牌通常约 1 小时后过期,具体以 expires_in 为准。

先完成下面的配置和验证,再重启 WorkBuddy。

配置

将 ChatCut MCP 服务加入 WorkBuddy 的配置文件:

~/.workbuddy/mcp.json

文件名必须是 mcp.json,开头没有点。不要写成 ~/.workbuddy/.mcp.json。WorkBuddy 读取的是 ~/.workbuddy/mcp.json;路径写错会导致服务无法显示。

添加类型为 HTTP 的 chatcut 服务,用获取到的访问令牌替换 <access_token>。如果文件已有 mcpServers 对象,请将这一项合并进去,保留已有服务:

{
  "mcpServers": {
    "chatcut": {
      "type": "http",
      "url": "https://api.chatcut.io/api/external-mcp/mcp",
      "headers": {
        "Authorization": "Bearer <access_token>"
      }
    }
  }
}

保存文件,然后重启 WorkBuddy 或开启新会话,让它加载新配置。

验证连接

运行下面的命令,检查 MCP 服务是否正常响应:

curl -s -X POST "https://api.chatcut.io/api/external-mcp/mcp" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer <access_token>" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"workbuddy","version":"1.0.0"}}}'

初始化成功后,响应会包含服务器的功能信息。

再开启一段新的 WorkBuddy 对话,确认工具列表中出现 ChatCut。当前会话无法加载刚配置的 MCP 工具。

如果服务已出现,但请求返回 Unauthorized,访问令牌可能已过期。用下面的命令刷新令牌:

curl -s -X POST "https://api.chatcut.io/auth/mcp/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token" \
  -d "refresh_token=<REFRESH_TOKEN>" \
  -d "client_id=<CLIENT_ID>"

用新的 access_token 更新 WorkBuddy MCP 设置中的 Authorization 请求头。如果刷新令牌也已过期,请从第 2 步重新完成授权流程。

开始剪辑

安装、登录和验证完成后,将下面的提示词粘贴到一段新的 WorkBuddy 对话中:

ChatCut 插件已经安装好了,请你用内置浏览器打开一个 ChatCut 项目,把项目名称命名为“我的第一个ChatCut视频”,然后先告诉我你整体可以做什么,尤其是这三部分:视频剪辑(语音清理、字幕、转场、补充素材等)、MG 动画制作、素材生成(视频、旁白、音乐、音效等)。之后问我有什么素材、想做什么样的视频,告诉我你可以根据我的具体需求一步步开始制作,并且我也可以随时进入 ChatCut 编辑界面自己调整时间线、字幕、MG 动画等任何内容,就像使用传统编辑器一样。

如果用户实际使用其他对话语言,请将启动提示词翻译成该语言。依据实际对话语言判断,不要根据操作系统语言判断,也不需要再让用户选择。

ChatCut 剪辑工作流

ChatCut 通过 MCP 连接提供口播剪辑、MG 动画,以及图片、视频、配音和音乐生成等工作流。执行较复杂的剪辑或生成任务前,让 Agent 调用 list_skills 查看目录,再用 load_skill({ name }) 加载并遵循对应工作流。工作流会随 ChatCut 后端部署更新,无需额外安装。

更新配置

以后需要更换 MCP 服务地址或令牌时,编辑 WorkBuddy MCP 设置中的 ChatCut 配置。令牌过期时,使用验证连接中的刷新命令。