douyin-upload-mcp-skill

通过抖音创作者平台(creator.douyin.com)发布视频和图文内容。首选调用 MCP 工具完成操作,MCP 无法满足时可运行 Skill 脚本兜底。禁止自行启动外部浏览器访问抖音。

install
source · Clone the upstream repo
git clone https://github.com/WJZ-P/douyin-upload-mcp-skill
Claude Code · Install into ~/.claude/skills/
git clone --depth=1 https://github.com/WJZ-P/douyin-upload-mcp-skill ~/.claude/skills/wjz-p-douyin-upload-mcp-skill-douyin-upload-mcp-skill
manifest: SKILL.md
source content

抖音 MCP Skill

⚠️ 操作优先级(必须遵守)

  1. 🥇 首选:调用 MCP 工具 — 直接调用本 Skill 暴露的 MCP 工具完成操作。绝大多数场景都应该走这条路径。
  2. 🥈 兜底:运行 Skill 脚本 — 当 MCP 工具无法满足需求时,运行本 Skill 项目中的脚本(如
    demo.js
    demo-imagetext.js
  3. 🥉 最次:连接 Skill 管理的浏览器 — 仅前两种方式都无法解决时,通过
    douyin_browser_info
    获取 CDP 连接信息接管浏览器。需先征得用户同意

绝对禁止:自行启动新的浏览器实例访问抖音页面。

支持范围

类型支持说明
发布视频上传视频 + 选封面 + 填标题简介 + 发布
发布图文上传图片 + 填标题简介 + 选音乐 + 发布
发布全景视频不支持(场景极少)
发布纯文字不支持(场景极少)

可用 MCP 工具

核心发布工具

工具名说明入参
douyin_publish_video
发布视频(全自动,内部自动检查登录)
filePath
(必填),
title
,
description
,
timeout
douyin_publish_imagetext
发布图文(全自动,内部自动检查登录)
filePaths
(必填,字符串数组),
title
,
description

登录与状态

工具名说明入参
douyin_check_login
检查登录状态并推进登录流程
smsCode
(可选,短信验证码)
douyin_probe
探测页面各元素状态
douyin_screenshot
对当前页面截图保存

页面操作

工具名说明入参
douyin_navigate_to
打开指定抖音页面 URL(仅 douyin.com 域名)
url
,
timeout
douyin_reload_page
刷新页面
timeout
douyin_browser_info
获取浏览器连接信息(兜底接管用)

典型使用流程

1. 登录(多次调用
douyin_check_login
推进)

第1次调用 → phase: qrcode      → 用户扫码
第2次调用 → phase: sms_verification → 自动点击接收短信
第3次调用 → phase: sms_code_input   → 用户告知验证码
第4次调用(smsCode="123456") → phase: logged_in → 登录完成

2. 发布视频

调用 douyin_publish_video:
  filePath: "C:/videos/test.mp4"
  title: "我的视频"
  description: "视频简介 #标签"

3. 发布图文

调用 douyin_publish_imagetext:
  filePaths: ["C:/images/1.png", "C:/images/2.png"]
  title: "我的图文"
  description: "图文简介 #标签"

MCP 客户端配置

{
  "mcpServers": {
    "douyin": {
      "command": "node",
      "args": ["<项目绝对路径>/src/mcp-server.js"]
    }
  }
}

也可通过

npm run mcp
手动启动。

架构

MCP Client → mcp-server.js → index.js → browser.js → Daemon
                                ↓
                          douyin-ops.js → operator.js → CDP → Chrome → douyin.com
  • Daemon(独立进程):管理浏览器生命周期,闲置 30 分钟自动销毁
  • browser.js:Skill 侧连接器,按需自启 Daemon
  • operator.js:纯 CDP 底层原子操作
  • douyin-ops.js:抖音业务编排层
  • mcp-server.js:MCP 工具协议层

端口配置(与 gemini-skill 共享同一浏览器实例)

配置项默认值说明
CDP 端口40821与 gemini-skill 共享
Daemon 端口40225与 gemini-skill 共享

多个 skill 共用同一个浏览器实例 + 同一个 Daemon,各 skill 各用各的 tab。