1. OpenCut 到底能用到哪一步从 Docker 部署到 MCP server 接入的完整边界OpenCut 是一个 MIT 协议的开源视频剪辑工具定位是「开源版 CapCut」支持网页、桌面、移动端三端。它最吸引人的地方在于时间线剪辑、多轨道、实时预览这些日常操作都能跑导出视频不带水印素材在本地浏览器处理不需要先上传到云端。对于个人做短视频、又不想为订阅付费的人来说这个组合确实有吸引力。但「能用」和「好用」之间还有距离。我实测下来classic 版本也就是通过官网下载或 Docker 部署的那个稳定版已经能覆盖基础的剪辑工作流导入素材、拖到时间线、裁剪、加转场、导出。素材库肯定比不上剪映或 CapCut 的商业素材但如果你自己拍、自己剪这个短板影响不大。真正让技术人兴奋的是重写版。新版本用 Rust 开发一套代码跑三端还规划了 Editor API、插件扩展、MCP server 和无头模式。MCP server 意味着 AI Agent 可以直接调用剪辑能力无头模式适合批量渲染和自动化。这两件事如果落地OpenCut 就不只是一个「免费剪辑工具」而是一个可以被程序驱动的视频处理引擎。这篇文章要解决的问题是当前版本的 OpenCut从 Docker 部署到 MCP server 接入实际能走到哪一步我会给出可复制的 Docker 启动配置、MCP server 注册步骤以及通过 TaoToken 统一 Key 调用模型能力的验证动作。你看完可以自己判断它能不能覆盖你的日常剪辑工作流。适合谁看想自部署剪辑工具的个人创作者、对 Rust 跨平台方案感兴趣的技术人、想把剪辑能力接进 AI Agent 工作流的开发者。如果你只是想找个免费剪辑软件classic 版够用如果你想做自动化或 Agent 集成重点看 MCP server 那部分。2. TaoToken 前置准备统一 Key 与 MCP server 接入的配置底座在讲 OpenCut 的 MCP server 接入之前先把 TaoToken 这一侧的准备工作做完。原因很简单OpenCut 的 MCP server 本身是剪辑能力的暴露层它需要调用模型能力时走的是统一的 API 入口。TaoToken 在这里的角色是「统一 Key 统一 Base URL」你不需要为每个模型单独配一套鉴权。先明确三个东西后面配置里会反复出现Base URLhttps://taotoken.net/apiAPI Key在控制台创建格式通常是sk-开头Model ID比如claude-sonnet-4-20250514、gpt-4o这类具体看你用哪个模型这三个要素是后面所有配置的核心。OpenCut 的 MCP server 注册、Claude Code 接入、Cline MCP 配置都围绕它们展开。2.1 获取 API Key 与控制台入口打开 TaoToken 控制台进入 API Keys 页面创建一个新的 Key。建议按用途命名比如opencut-mcp方便后面排查问题时定位。创建后立刻复制保存页面刷新后不会再完整显示。控制台地址https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteAPI Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite如果你还没决定用哪个模型可以先在模型对话页面试一下确认 Key 能正常工作再往下走。模型对话入口https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite2.2 确认 Base URL 与模型 IDTaoToken 的 API 入口是https://taotoken.net/api注意这里不加 UTM 参数直接作为 Base URL 使用。模型 ID 取决于你要调用的能力比如做代码生成、文本润色、Agent 推理选的模型可能不同。一个常见的误区是把 Base URL 写成带路径的形式比如https://taotoken.net/api/v1。实际上大多数客户端会自动拼接/v1/messages或/v1/chat/completions你只需要填到/api这一层。如果客户端要求填完整路径再按它的文档补。2.3 环境变量与本地配置文件的位置后面 OpenCut 的 MCP server 和 Claude Code 都会读环境变量或配置文件。建议统一放在一个地方管理比如export TAOTOKEN_API_KEYsk-你的Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api export TAOTOKEN_MODELclaude-sonnet-4-20250514如果你用 Claude Code配置文件通常在~/.claude/settings.json或项目级的.claude/settings.json。如果用 Codex看~/.codex/auth.json。这些文件后面会具体写。2.4 为什么先做这一步OpenCut 的 MCP server 接入不是孤立的。它需要知道「调用哪个模型、用哪个 Key、走哪个 Base URL」。如果这一层没配好后面注册 MCP server 时会一直报 401 或连接失败。先把 TaoToken 这侧跑通再去做 OpenCut 的 Docker 部署和 MCP 注册排障路径会清晰很多。接入文档在这里配置细节可以对照看https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite3. 可复制配置OpenCut Docker 启动与 MCP server 注册这一节是全文的核心操作部分。我会先给 Docker 启动配置再给 MCP server 的注册配置最后给 Claude Code 和 Cline 的接入片段。所有配置都可以直接复制路径和字段名保持和实际一致。3.1 OpenCut classic 版 Docker 启动配置classic 版用 Bun 装依赖Docker 拉起数据库和 Rediscompose 一条命令启动默认端口 3100。下面是一个可用的docker-compose.ymlversion: 3.8 services: opencut-db: image: postgres:16-alpine container_name: opencut-db environment: POSTGRES_USER: opencut POSTGRES_PASSWORD: opencut_dev POSTGRES_DB: opencut ports: - 5432:5432 volumes: - opencut-db-data:/var/lib/postgresql/data restart: unless-stopped opencut-redis: image: redis:7-alpine container_name: opencut-redis ports: - 6379:6379 volumes: - opencut-redis-data:/data restart: unless-stopped opencut-web: image: ghcr.io/opencut-app/opencut-classic:latest container_name: opencut-web depends_on: - opencut-db - opencut-redis environment: DATABASE_URL: postgres://opencut:opencut_devopencut-db:5432/opencut REDIS_URL: redis://opencut-redis:6379 NODE_ENV: production PORT: 3100 ports: - 3100:3100 restart: unless-stopped volumes: opencut-db-data: opencut-redis-data:启动命令docker compose up -d启动后访问http://localhost:3100应该能看到 OpenCut 的编辑器界面。如果端口被占用改ports里的映射比如3101:3100。如果你不想用现成镜像想从源码构建流程是git clone https://github.com/OpenCut-app/OpenCut.git cd OpenCut bun install docker compose up -d opencut-db opencut-redis bun dev:web本地开发模式下浏览器打开localhost:3000进编辑器。注意这里和 Docker 模式的端口不一样Docker 是 3100本地 dev 是 3000。3.2 MCP server 注册配置OpenCut 重写版的 MCP server 是重点。它的作用是让 AI Agent 能调剪辑能力。注册 MCP server 时需要指定命令、参数和环境变量。下面是一个通用的 MCP 配置片段放在 Claude Code 的settings.json或 Cline 的 MCP 配置里{ mcpServers: { opencut: { command: npx, args: [ -y, opencut/mcp-serverlatest ], env: { TAOTOKEN_API_KEY: sk-你的Key, TAOTOKEN_BASE_URL: https://taotoken.net/api, TAOTOKEN_MODEL: claude-sonnet-4-20250514, OPENCUT_API_URL: http://localhost:3100 } } } }这里三个关键字段TAOTOKEN_API_KEY你在 TaoToken 控制台创建的 KeyTAOTOKEN_BASE_URL固定为https://taotoken.net/apiTAOTOKEN_MODEL你要调用的模型 IDOPENCUT_API_URL指向你本地 Docker 启动的 OpenCut 实例。如果 MCP server 需要调用 OpenCut 的 Editor API这个地址必须能通。3.3 Claude Code 接入配置如果你用 Claude Code配置文件在~/.claude/settings.json。把 MCP server 注册进去{ mcpServers: { opencut: { command: npx, args: [-y, opencut/mcp-serverlatest], env: { TAOTOKEN_API_KEY: sk-你的Key, TAOTOKEN_BASE_URL: https://taotoken.net/api, TAOTOKEN_MODEL: claude-sonnet-4-20250514 } } } }Claude Code 的接入文档在这里https://taotoken.net/doc/claudecode?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite3.4 Cline MCP 配置Cline 的 MCP 配置通常在 VS Code 的设置里或者项目级的.cline/mcp.json。格式和上面类似{ mcpServers: { opencut: { command: npx, args: [-y, opencut/mcp-serverlatest], env: { TAOTOKEN_API_KEY: sk-你的Key, TAOTOKEN_BASE_URL: https://taotoken.net/api, TAOTOKEN_MODEL: claude-sonnet-4-20250514 } } } }3.5 Codex auth.json 配置如果你用 Codex鉴权信息在~/.codex/auth.json。格式大致如下{ api_key: sk-你的Key, base_url: https://taotoken.net/api, model: claude-sonnet-4-20250514 }注意base_url不要带/v1Codex 会自己拼。3.6 配置检查清单在往下走之前确认这几件事检查项正确值常见错误Base URLhttps://taotoken.net/api多写/v1或漏写httpsAPI Keysk-开头复制时带空格Model ID控制台确认过的拼写错误或用了不存在的模型OpenCut 地址http://localhost:3100Docker 没启动或端口映射错MCP 命令npx -y opencut/mcp-serverlatest包名写错或没加-y4. 验证请求与成功结果从 curl 到 MCP 工具调用配置写完不算完得验证。这一节给两个验证动作先用 curl 验证 TaoToken 的 Key 能通再用 MCP 工具调用验证 OpenCut 的剪辑能力能被 Agent 触发。4.1 用 curl 验证 TaoToken Key先确认 Key 和 Base URL 没问题。用 curl 发一个最小请求curl -X POST https://taotoken.net/api/v1/messages \ -H Content-Type: application/json \ -H x-api-key: sk-你的Key \ -H anthropic-version: 2023-06-01 \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [ {role: user, content: 回复 OK 两个字母即可} ] }如果返回类似下面的结构说明 Key 和 Base URL 都通了{ id: msg_xxx, type: message, role: assistant, content: [ {type: text, text: OK} ], model: claude-sonnet-4-20250514, stop_reason: end_turn }如果返回 401检查 Key 是否复制完整、有没有多余空格。如果返回 404检查 Base URL 是不是写成了https://taotoken.net/api/v1又重复拼了/v1。4.2 验证 OpenCut Docker 实例确认 OpenCut 在跑curl -I http://localhost:3100返回HTTP/1.1 200 OK或302都算正常。如果连接被拒绝说明 Docker 容器没起来用docker compose ps看状态再用docker compose logs opencut-web看日志。4.3 验证 MCP server 能被 Agent 调用在 Claude Code 或 Cline 里MCP server 注册成功后Agent 会列出可用的工具。你可以让它执行一个简单动作比如「列出 OpenCut 当前项目的时间线轨道」。如果 MCP server 正常它会返回轨道信息如果报错看下面的排障部分。一个典型的成功结果长这样MCP tool: opencut.list_tracks Result: - track_id: 1, type: video, clips: 3 - track_id: 2, type: audio, clips: 1这说明 Agent 已经能通过 MCP server 读到 OpenCut 的剪辑数据。下一步就可以让它做「把第 1 轨道的第 2 个片段裁剪到 5 秒」这类操作。4.4 验证模型能力调用如果你想让 Agent 在剪辑时调用模型做字幕生成或文案润色可以在 MCP 配置里把TAOTOKEN_MODEL指向对应模型然后让 Agent 执行「为当前时间线生成字幕草稿」。成功的话它会返回一段文本并可能自动写入 OpenCut 的字幕轨道。这一步验证的是「TaoToken 统一 Key OpenCut MCP server」的完整链路。如果模型调用失败先回到 4.1 确认 Key 能通再检查 MCP 配置里的环境变量有没有传进去。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节按真实报错来。你在部署 OpenCut 和接入 MCP server 时大概率会遇到下面几个问题。5.1 401 Unauthorized现象curl 或 MCP server 调用返回 401提示invalid api key或authentication failed。原因Key 不对、Base URL 不对、或者请求头字段名写错。排查步骤确认 Key 是sk-开头复制时没有带换行或空格。确认 Base URL 是https://taotoken.net/api不是https://taotoken.net/api/v1。确认请求头用的是x-api-keyAnthropic 格式还是Authorization: BearerOpenAI 格式取决于你调的模型。如果 MCP server 里配了环境变量确认它真的读到了。可以在 MCP server 启动命令里加env打印或者用docker exec进容器看环境变量。5.2 local proxy failed现象MCP server 启动时报local proxy failed或connection refused。原因MCP server 尝试连接 OpenCut 的 API但 OpenCut 没启动或地址不对。排查步骤docker compose ps确认opencut-web在运行。curl -I http://localhost:3100确认能通。检查 MCP 配置里的OPENCUT_API_URL是不是http://localhost:3100。如果你在容器里跑 MCP serverlocalhost可能指向容器本身需要改成宿主机的 IP 或 Docker 网络里的服务名。如果 OpenCut 跑在远程服务器确认防火墙放行了 3100 端口。5.3 reading choices 报错现象调用模型时返回error reading choices或unexpected response format。原因客户端期望的响应格式和实际返回的不一致。常见于 Base URL 拼错导致请求打到了错误的端点。排查步骤确认 Base URL 没有多余路径。TaoToken 的入口是https://taotoken.net/api客户端会自动拼/v1/messages或/v1/chat/completions。确认 Model ID 是控制台里存在的。如果模型名写错有些网关会返回非标准错误。用 4.1 的 curl 命令单独测一次排除是 MCP server 的问题还是 Key 的问题。5.4 OAuth 相关报错现象Claude Code 或 Codex 提示 OAuth 失败、token 过期、需要重新登录。原因有些客户端默认走 OAuth 流程但你用的是 API Key 模式两者冲突。排查步骤确认配置文件里用的是api_key字段不是oauth_token。如果客户端同时支持 OAuth 和 API Key在设置里明确选 API Key 模式。删除旧的 OAuth 缓存文件重新用 API Key 初始化。Claude Code 的缓存通常在~/.claude/下Codex 在~/.codex/下。如果报错提到redirect_uri或authorization code说明客户端还在走 OAuth检查配置文件有没有被覆盖。5.5 MCP server 注册后不显示工具现象配置写好了但 Agent 里看不到 OpenCut 的工具。原因MCP server 启动失败或者配置格式不对。排查步骤手动跑一次 MCP server 命令npx -y opencut/mcp-serverlatest看有没有报错。检查 JSON 配置有没有语法错误比如多余的逗号、引号不匹配。确认mcpServers字段名拼写正确有些客户端要求是mcp_servers。重启客户端MCP 配置通常在启动时加载。5.6 排障通用入口如果上面都没覆盖你的问题去接入文档里对照配置https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteAPI Keys 页面重新生成一个 Key 试试https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite6. 从验证到长期使用OpenCut TaoToken 的接入路径走到这里你应该已经完成了三件事Docker 拉起 OpenCut、MCP server 注册成功、TaoToken 的 Key 能通。接下来是怎么长期用。如果你只是个人剪辑classic 版 Docker 部署就够了。端口 3100浏览器打开就能用素材本地处理导出无水印。这个组合的成本是零维护成本也低docker compose up -d之后基本不用管。如果你要做 Agent 集成或自动化重点在 MCP server。它让 AI Agent 能调剪辑能力配合 TaoToken 的统一 Key你可以让 Agent 做「读时间线 → 生成字幕 → 写回轨道」这类链路。长期跑的话建议把 MCP server 做成常驻服务而不是每次让 Agent 用npx临时拉起。可以用pm2或systemd托管环境变量写在服务配置里。如果你要批量渲染或做无头模式等重写版稳定。当前 classic 版的无头能力有限重写版的 Rust 内核 Editor API 才是为这个场景设计的。在那之前可以用 MCP server 做半自动Agent 生成剪辑指令你手动确认后执行。模型选择上日常剪辑辅助用轻量模型就够比如做字幕断句、文案润色。复杂一点的 Agent 推理再换更强的模型。TaoToken 的好处是 Key 和 Base URL 不变换模型只改TAOTOKEN_MODEL一个字段。长期编码或 Agent 场景可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite模型对话验证入口https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteClaude Code 接入https://taotoken.net/doc/claudecode?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite我自己的做法是classic 版跑在本地 Docker 里做日常剪辑MCP server 注册在 Claude Code 里做 Agent 实验TaoToken 的 Key 统一管理。这样剪辑和 AI 能力是分开的哪一层出问题都好定位。等重写版稳定了再把无头模式和 Editor API 接进来替换掉现在的手动确认环节。