writedock-mcp
v0.4.16
Published
WriteDock local MCP server for the browser extension
Maintainers
Readme
WriteDock MCP
连接你自己的 agent 与 WriteDock 浏览器扩展:agent 写稿并准备图片或视频,一次调用发布到多个平台,并按平台查询结果。
MCP 运行在你自己的电脑上,只监听 127.0.0.1。第一次启动时会在后台开一个服务,负责端口和扩展连接,所以 agent 只在需要时才启动 MCP,或者重启 MCP,都不影响连接。部分 agent 退出时会连带结束后台服务(在 Windows 上的 WorkBuddy 见过),重新打开 agent 后就会恢复;没有扩展和 agent 用它超过 2 小时,它会自己退出,下次用到时再启动。平台 Cookie 留在浏览器里,稿件和媒体不经过 npm。
安装
需要 Node.js 22+ 和 Chrome 或 Edge。没有 Node.js 时,agent 应先帮用户安装(nodejs.org 的 LTS 版,或系统的包管理器),需要用户操作时告诉用户,装好后可能要重启 agent 才找得到 npx。然后运行:
npx -y writedock-mcp@latest setup它会做两件事,并在最后告诉用户下一步:
- 给本机已有的 Codex、Claude Code、WorkBuddy、Cursor、Claude Desktop 添加 MCP 配置,原文件留一份
.writedock-backup。之前setup写的配置会更新,带自定义端口等设置的配置不会改动。 - 生成启动脚本
~/WriteDock/start-mcp(Windows 是.cmd)。电脑上有多个 Node 时,它依次找:setup用的 Node、系统的 Node、常见安装位置,用第一个 22 或以上的版本。 - 把内置的扩展放到本机固定目录。
然后重启 agent,在扩展管理页打开开发者模式,加载提示中的文件夹,打开扩展点「连接」。
其他客户端手动添加:
{
"mcpServers": {
"writedock": {
"command": "npx",
"args": ["-y", "--prefer-online", "writedock-mcp@latest"]
}
}
}Windows 上要写成 "command": "cmd"、"args": ["/c", "npx", "-y", "--prefer-online", "writedock-mcp@latest"]。手动配置依赖系统默认的 Node,版本要够新,能用 setup 就用 setup。如果 PowerShell 提示禁止运行脚本,把安装命令换成 cmd /c npx -y writedock-mcp@latest setup。
首次下载较慢,请把启动超时设为 120 秒。启动后调用 get_connection_status;未连接时,让用户打开扩展点「连接」。
发布
优先使用 publish,一次调用即可:
{
"platforms": ["zhihu", "baijiahao", "weibo", "xiaohongshu", "douyin"],
"article": { "file_path": "/absolute/path/article.md" },
"post": { "kind": "image", "title": "标题", "content": "正文", "image_paths": ["/absolute/path/1.png"] },
"request_id": "my_post_20261105_01"
}扩展按平台选择内容:
| 平台 ID | 默认发送 | 说明 |
|---|---|---|
| zhihu | 文章 | 标题最多 100 字,可内嵌本地 MP4 |
| baijiahao | 文章 | 标题最多 64 字;没有 cover 时使用正文第一张图 |
| bilibili | 文章 | 不接独立封面;LV1–3 账号每天只能发 1 篇,删除不退额度 |
| weibo | 有 post 发图文或视频,否则发长文章 | 长文章标题最多 32 字;视频必须明确 weibo_video_creation |
| xiaohongshu | 有 post 发图文或视频,否则发长文 | 长文标题最多 64 字、正文最多 10000 字 |
| douyin | 图文或视频 | 不接文章 |
| weixin、sohu | 只保存文章草稿 | 不公开发布 |
- 用
modes可为微博、小红书指定内容类型,如{"weibo": "article"}。 - 某个平台未登录、不能接收这份内容或失败时,只跳过该平台,其他平台继续。
- 不支持的
cover会被忽略,并写入该平台的warnings。标题超长不会被截断,该平台直接失败。 - 平台依次执行,全部完成通常需要几分钟。同一时间只运行一个任务。
- 只有用户明确要求发布并指定平台时,才调用发布工具。
rehearse_publish 参数相同,但会在点击发布之前停下,也不需要 request_id。可能上传图片并留下草稿,结果 rehearsed 不代表已发布。
查询结果
publish 立即返回 task_id,随后用 get_sync_task 查询,直到 finished: true。任务结束后,按 summary 逐平台告诉用户结果:
| summary 分类 | 含义 | agent 应该怎么做 |
|---|---|---|
| submitted | 平台已接受提交,可能还在审核 | 汇报结果和链接 |
| draft_saved | 已保存草稿 | 汇报,说明未公开发布 |
| rehearsed | 演练结束,未发布 | 不得说已发布 |
| not_logged_in | 未登录,未执行 | 请用户登录后,用新 request_id 只重发这些平台 |
| login_unconfirmed | 无法确认登录状态,未执行 | 请用户检查后再提交 |
| waiting_verification | 正在等用户完成验证码 | 立即转告 user_actions 的提示和链接,继续查询 |
| needs_user_action | 需要用户在页面上处理 | 转告原因和链接,不重发;type 为 old_draft 时见下方 |
| unknown | 结果未确认,可能已经发布 | 让用户核对,不要重发 |
| failed | 未能完成 | 汇报 error,必要时提供 diagnostics |
抖音有上次没发完的内容时,这篇不会上传,user_actions 的 type 是 old_draft。agent 必须先问用户是否放弃旧内容,放弃后无法恢复。用户同意后,用新的 request_id 只对抖音再调用 publish,并传 "discard_old_drafts": ["douyin"];用户不同意就保留旧内容,抖音不发。
验证码由用户手动完成,agent 和扩展都不代做。用户完成后任务会自动更新,不需要重新提交。
相同 request_id 和相同内容不会重复提交;内容变化必须换新 ID。部分平台失败时,只针对失败的平台用新 ID 重发,unknown 的平台不要重发。
工具
| 工具 | 用途 |
|---|---|
| get_connection_status | 连接状态、运行版本和更新提示 |
| list_platforms、check_auth | 平台能力和登录状态 |
| publish、rehearse_publish | 一次调用发多平台,以及演练 |
| get_sync_task、list_sync_history | 任务结果和最近 25 次记录 |
| prepare_article、prepare_post | 可选:把稿件存到扩展里预览 |
| publish_article、publish_post、sync_article | 旧版按类型发布,继续可用 |
| rehearse_article、rehearse_post | 旧版按类型演练 |
文章来源支持 file_path、markdown、html 三选一,图片支持 PNG/JPEG/GIF/WebP,单张 8 MB,整篇 24 MB。图文图片单张 20 MB、总量 100 MB;视频支持 MP4/MOV/WebM,最大 512 MB。实际限制还以平台页面为准。
已知限制
- 发布依赖平台页面,平台改版可能导致失败。失败结果的
diagnostics含阶段、页面结构和请求路径,不含 Cookie、输入内容和 URL 查询参数。 - 抖音只能通过页面提示确认结果,没有接口回执。遇到短信验证时任务最多再等 10 分钟,没有等到成功提示就交给用户核对。
- 除 B站外,其他平台的验证码流程尚未在真实验证码上验证过。
- 视频发布已走到发布前,但尚未真实发布验证。
submitted不跟踪之后的审核结果。
更新
- MCP:
--prefer-online在每次启动时检查新版,重启 agent 即可。配置里的@latest是有意的,不要固定版本,否则收不到更新。新版会在旧的后台服务空闲后替换它;有任务时会等,通常几分钟内完成。 - 扩展: 新版 MCP 内置更新的扩展时,扩展的「连接 agent」页会出现「更新扩展」。用户点一下,MCP 覆盖扩展目录,扩展自行重新加载;发布任务进行中不能更新。
有新版本时,任务结束的结果和 get_connection_status 会带 update_notice,agent 应在汇报时把里面的步骤原样转告用户一次。扩展不会自己更新,要用户点「更新扩展」。
调用工具时如果扩展还没连上,服务最多等 45 秒,等不到才报错。这时还没有发送任何内容,所以不会重复提交。
连接资料保存在用户数据目录的 identity-端口.json:
- macOS:
~/Library/Application Support/WriteDock/mcp/ - Windows:
%LOCALAPPDATA%/WriteDock/mcp/ - Linux:
${XDG_DATA_HOME:-~/.local/share}/writedock/mcp/
后台服务的日志是同目录下的 service.log。
卸载重装扩展后,在扩展里再点一次「连接」即可,不需要重装 MCP。npx -y writedock-mcp@latest --version 只显示版本。
对应源码位于包内 source/。本服务遵循 GPL-3.0-only,见 LICENSE、NOTICE.md 和 THIRD_PARTY_NOTICES.txt。
