用 Agent 驱动 OmniPost

OmniPost 天生为 Agent 驱动而设计。Agent 准备内容;OmniPost 负责账号、会话、发布与记录。同一个发布内核有三种接入方式。

MCP(推荐给 Agent)

桌面应用内置一个 MCP over SSE 服务。把你的 Agent 指向它:

claude mcp add --transport sse omnipost http://127.0.0.1:8787/sse

需要应用处于运行状态。也有 stdio 服务,但它仅在从源码运行 OmniPost 时有效——安装版无法被外部 node 启动,因此安装版必须用 SSE

为帮助 Agent 自助接入,应用还提供:

  • GET /api/health —— 状态、端口、MCP SSE 地址,以及数据/日志目录。
  • GET /api/agent-tools —— 实时的 MCP 工具清单。
  • GET /api/skill —— 现成的 Claude Skill(?download=1 下载 ZIP)。

推荐的 Agent 工作流

  1. get_status —— 确认应用已就绪(平台/账号/已登录数量)。
  2. list_accounts —— 查看可用账号。
  3. preview_content —— 按目标渲染 Markdown。
  4. create_draftpublish_post —— 执行动作。
  5. list_posts —— 检查结果、定时与失败。

小贴士:尽量用 targets(具体账号)而不是整个 platforms;图片传文件路径或 http URL——不要自己转 base64,OmniPost 会读取并重新托管它们。

CLI

面向脚本,或不走 MCP 的 Agent:

node bin/omnipost.js publish --doc post.md --targets csdn:default,juejin:default --mode draft

omnipost mcp(启动 stdio MCP 服务)和 omnipost oauth-connect(连接 Mastodon 族或 LinkedIn 账号)外,其余命令都要求桌面应用在运行。完整命令见接口参考

HTTP

一切都是 http://127.0.0.1:8787/api/* 下的本机 REST 调用(非本机请求返回 403)。还有一个流式发布端点(POST /api/publish/stream,按账号返回 NDJSON 事件),为 UI 的进度面板提供支持。

Agent 的免费版与专业版

只读调用(get_statuslist_platformslist_posts……)在免费版可用。Agent 的写操作——创建草稿、发布、定时——是专业版功能;免费版会返回 LICENSE_REQUIRED。桌面 UI 不受这个 Agent 门禁限制(但仍遵循上面的发布规则)。