← 返回观点

MCP 内容分发完整教程:从接入到自动发文

这是一篇面向开发者的 MCP 内容分发教程,讲清如何把 OmniPost 以 MCP、CLI、HTTP 接进 agent 工作流,并稳定完成预览、草稿、正式发布与记录。

先说结论:如果你想把“写好的 Markdown 文章”稳定接进 AI agent 工作流,最实用的结构不是让 agent 直接硬控每个平台后台,而是把内容分发抽象成一个 MCP 工具层。 对 OmniGoAI 的 OmniPost 来说,这一层已经同时提供了 MCP、CLI、HTTP 和桌面 UI 四种入口;对 agent 来说,最适合自动化编排的通常是 MCP,最适合长正文文件的是 CLI,最适合已有后端系统的是 HTTP。

换句话说,MCP 内容分发并不是“再套一层协议”这么简单,它真正解决的是:让写作 agent 与发布系统解耦。 上游 agent 负责选题、写作、改写、补摘要和标签;下游分发层负责平台能力、账号会话、草稿/正式发布、校验失败和记录留痕。这样同一套内容流水线既可以被 Claude Code 调,也可以被 Codex、Cursor 或任何别的 agent 调。

如果你最近刚开始做 AI 驱动内容工作流,这篇文章可以直接回答三个核心问题:MCP 为什么适合做内容分发;MCP、CLI、HTTP 三种接入方式该怎么选;以及一篇文章从“写完”到“真正发出去”应该如何落地。

MCP 内容分发到底是什么

MCP 内容分发,本质上是把“发布文章”这件事变成一组可被 agent 调用的结构化工具

以 OmniPost 为例,桌面应用本地运行后,会暴露一组能力明确的接口:查询平台、查询账号、预览内容、建草稿、正式发布、查询记录、设置策略、安排定时任务。README 当前公开写明,OmniPost 是一个 agent-中立的多平台内容分发桌面应用,对外暴露 MCP / CLI / HTTP,当前已接入 30 个平台,并且强调“只做已有内容的分发,不生成内容”。这点很关键,因为它决定了分层边界:内容生成在 agent,分发动作在 OmniPost。

对内容团队来说,这个边界非常值钱。你不需要把所有平台差异都塞进提示词,也不需要把账号会话散落在多个自动化脚本里。你只需要让 agent 面向统一接口组织内容,再由发布层去适配不同平台。

为什么内容分发比普通 MCP 工具更适合独立成一层

很多人第一次听到“内容分发 MCP”时,会把它理解成一个普通的工具封装:把几个 HTTP 接口包装成 MCP 工具就完了。

但真正跑过内容工作流的人很快会发现,内容分发有三个天然复杂点:

  1. 平台差异明显:不同平台对标题、摘要、分类、标签、外链、编辑器格式的要求不同;
  2. 账号会话是有状态的:登录态会过期,平台会限频,部分站点还需要人工登录或重新校验;
  3. 发布不是单步动作:成熟工作流通常至少要经过预览、校验、草稿或正式发布、结果记录这几层。

如果把这些复杂度直接压给 agent,提示词会越来越臃肿,而且很难复用。反过来,如果分发层把这些问题吃掉,agent 就能始终面向较稳定的“内容对象 + 目标平台 + 发布模式”进行编排。

这也是为什么我们在另一篇文章 用 Claude Code 把一篇文章发到 30+ 平台 里强调:写作系统与发布系统应该分离。

MCP、CLI、HTTP 三种接入方式怎么选

先给一个实用结论:MCP 优先给 agent 原生调用,CLI 优先给本地长 Markdown,HTTP 优先给已有服务端系统。

这三种方式在 OmniPost 里调的是同一套核心能力,但使用体验完全不同。

什么时候优先用 MCP

如果你的工作流本来就是“agent 看上下文 → 调工具 → 继续推理 → 再调工具”,那 MCP 最自然。

原因有三个:

  1. 工具是结构化的,参数含义清楚;
  2. agent 可以先查状态、再选号、再 preview、再 publish,流程比较稳;
  3. 失败会以工具结果返回,而不是混在一大段命令输出里。

例如一个典型流程会是:先 get_status 确认 OmniPost 已就绪,再 list_accounts 看哪些平台已登录,然后 preview_content 预览正文,最后再决定 create_draftpublish_post

什么时候优先用 CLI

如果你处理的是长篇 Markdown,尤其是包含代码块、引用块、列表和大量链接的技术文章,CLI 往往更省心。

原因不是 CLI 更高级,而是它可以直接读取 Markdown 文件。这意味着你不需要把几千字正文硬塞进 JSON 字符串,也不需要在命令行里手工转义所有换行和引号。

OmniPost README 也明确给出了 node bin/omnipost.js publish --doc article.md ... 这类命令形式。对本地流水线来说,这种“先写文件,再让发布工具读文件”的方式是最稳的。

什么时候优先用 HTTP

如果你已经有 CMS、队列系统、计划任务或后端服务,HTTP 会更容易接进去。

它适合这些场景:

  1. 你的文章不是在 agent 本地临时写出来的,而是来自现有内容库;
  2. 你要把“写作”和“发布”拆给不同服务;
  3. 你想让多个上游系统共用同一个分发层。

代价是你得自己组织 payload,也要更注意长正文和错误分支的处理。

一篇文章从接入到自动发文,推荐工作流是什么

如果你想今天就搭一套最小可用流程,可以直接照下面的顺序走。

第一步:先把文章写成“可发布资产”

先准备完整内容,而不是边发边补。至少包括:

  1. 标题;
  2. 一句话摘要;
  3. 2 到 4 个标签;
  4. Markdown 正文;
  5. 若目标包含掘金正式发布,再补分类和至少 1 个已有标签。

这里最容易被低估的一点是:MCP 负责的是结构化调用,不是替你绕开平台元信息。 如果正式发布缺分类、缺标签、缺摘要,工具也只能诚实返回校验失败。

第二步:先查平台与账号,不要盲发

在真正发文前,先确认两件事:

  1. OmniPost 是否正在运行并就绪;
  2. 目标平台账号是否仍然有效。

在 MCP 语义里,这通常对应 get_statuslist_accounts。这一步看起来像“前戏”,但能挡掉大量无意义重试。比如平台掉登录、应用没启动、目标账号不存在,这些都不该在最终发布时才发现。

第三步:preview 不是可选项,而是必选项

只要文章要进入多个平台,就应该先 preview。

重点看这些内容:

  • 标题是否正常;
  • 列表、引用、代码块是否渲染正确;
  • 文首导语和文末引流句是否符合目标平台风格;
  • 链接是否保留;
  • 目标平台所需字段是否齐全。

在技术内容场景里,很多失败并不是正文逻辑错,而是 Markdown 被渲染后层级变了、列表断了、或者摘要长度不合适。preview 能把这些问题提前暴露出来。

第四步:按平台轻量改写,而不是一稿群发

真正稳定的内容分发,一定不是“官网原文复制四份”。

至少要做这些改写:

  1. 知乎:更适合问答体开头,弱化营销口吻;
  2. CSDN / 掘金 / 博客园:可以保留技术链接、命令和参考来源;
  3. 技术社区:标题要更平实,题文一致;
  4. 对外链敏感的平台:把引流改成“搜索品牌名”而不是强塞链接。

如果你想系统理解中文平台的链接差异,可以继续看我们站内这篇 2026 中文内容平台外链政策横评(10 平台官方依据)

第五步:先决定草稿还是正式发布

默认情况下,草稿比正式发布更稳,因为它给了你最后一道人工检查。

但如果任务已经明确授权“直接正式发布”,并且平台能力支持自动发布、必填项也都补齐,那就可以直接走正式发布模式。OmniPost 的 README 对这一点写得很清楚:平台会返回 supports.publishpublishRequires,发布结果也会带 stagepublishedcode,所以 agent 在调用前后都能明确知道真实状态,而不是靠猜。

第六步:记录每个平台结果,不要只看一个成功提示

一个可复用的自动发文系统,必须留下这些记录:

  1. 哪个平台已经正式发布;
  2. 哪个平台只建了草稿;
  3. 哪个平台需要重新登录;
  4. 哪个平台缺字段导致校验失败;
  5. 哪个平台返回了编辑器链接或文章链接。

这一步的价值在于“可追踪”。你下次补发、改写、定时或复盘时,不用再靠记忆回想到底卡在哪。

为什么 MCP 特别适合做内容流水线的“中枢层”

从工程角度看,MCP 最有价值的地方不是调用成功率,而是它让内容流水线更容易拆分角色。

你可以把一整条链路拆成:

  1. 选题与写作 agent;
  2. 质量检查与构建验证;
  3. 分发 agent 或分发步骤;
  4. 记录与汇总。

只要发布层对外仍是同一套 MCP 工具,整个系统就不会因为上游换了模型或换了 agent 而推倒重来。

这也是 OmniPost README 强调“agent-中立”的原因:今天你用 Claude Code,明天换 Codex,本地发布层仍然不动。

自动发文时最常见的坑是什么

实践里最常见的坑,不是“工具不能发”,而是下面这些:

  1. 把正文组织好了,却没补元信息
  2. 把平台都选了,却没检查登录态
  3. 能建草稿,就误以为能正式发布
  4. 一篇原文全平台照搬,结果命中平台规则差异
  5. 发完没记账,下次不知道该补哪一步。

其中最典型的是掘金。正式发布时,分类、标签、摘要往往都是硬门槛;少一项,工具就应该失败,而不是帮你“猜一个默认值”。

这套流程适合哪些人

MCP 内容分发特别适合三类人:

1. 独立开发者和开发者工具团队

你已经用 Markdown 写官网原文,希望顺手再发到知乎、CSDN、掘金、博客园。这类场景最适合用 agent 处理写作与改写,再用 MCP 把分发动作接出去。

2. 做 SEO + GEO 的内容团队

这类团队真正需要的不是“再多一个写稿模型”,而是一条完整链路:官网原文、平台改写、分发记录、收录与复盘。MCP 让这条链路可编排,也更容易自动化。

3. 已有自动化系统、想补一个发布层的人

如果你的团队本来就有选题库、日历、知识库或调度系统,那你最需要的往往不是单个平台接口,而是一个统一发布层。MCP 适合给 agent 调,CLI/HTTP 则可以接现有系统。

常见问题

FAQ 1:MCP 内容分发是不是一定比 CLI 更好?

不一定。MCP 更适合 agent 原生调用和结构化编排;CLI 更适合本地长 Markdown 文件;HTTP 更适合已有服务端系统。关键不是“谁更先进”,而是谁更适合你的上下游结构。

FAQ 2:为什么说内容分发不应该直接塞进提示词?

因为平台差异、账号状态、草稿与正式发布、失败记录这些问题都不是纯文本推理能优雅解决的。把它们固化在分发层里,复用性和稳定性都会更高。

FAQ 3:自动发文前一定要 preview 吗?

强烈建议。preview 可以提前暴露渲染问题、链接问题、列表结构问题和字段缺失问题,比发失败后再返工便宜得多。

FAQ 4:为什么正式发布前还要先查平台能力?

因为不是每个平台都支持自动正式发布。只有先知道 supports.publishpublishRequires,你才能判断应该走草稿还是直发,也才能提前补齐必填字段。

FAQ 5:这套流程的核心收益是什么?

不是“让 AI 替你点按钮”,而是让你得到一条能长期复用的内容流水线:一份原文、多份平台版本、统一发布入口、清晰失败原因和可追踪的发布记录。

如果你已经在用 agent 写文章,下一步最值得补上的通常不是更复杂的提示词,而是一个真正能承接发布动作的分发层。想直接开始实践,可以先从 OmniPost 下载页进入:<https://omnigoai.com/zh/download/omnipost/>。

#MCP#内容分发#OmniPost#Agent

更多文章