我如何用 Agent Flows 构建我的 MCP CMS
tech
MCP
AI Agents
Next.js
Supabase

我如何用 Agent Flows 构建我的 MCP CMS

我在 Next.js 里构建了一个 MCP CMS,用来把内容、工具和 AI 工作流统一到一个快速、可控的发布系统中。

Uygar DuzgunUUygar Duzgun
Mar 22, 2026
Updated Mar 23, 2026
11 min read

我不想再在自己的网站上“硬挂”另一个通用型 CMS。以我的经验,这种搭建方式总会带来摩擦。我想要的是一种 mcp cms:它感觉像产品的一部分,而不是每天都要跟它“对抗”的外部系统。

本文解释了我如何用 mcp cms(Next.js、Supabase、MCP 和 agent flows)来构建系统。我会讲清架构、工具层、管理后台,以及内容流水线,让你看到整个系统在实践中如何运作。

为什么我选择构建 MCP CMS,而不是使用通用的无头栈

我把网站和 CMS 放在同一个 Next.js 应用里构建,因为我想要一个代码库、一个数据模型、以及一个发布流程。我已经用过足够多彼此割裂的技术栈,知道它们会多快地变成维护债务。当你的前端、CMS 和自动化层分别部署在不同地方时,每一次改动都会比应该花的时间更多。

我的 mcp cms 把公开站点、管理 UI、API 路由以及 AI 工具都放在同一个产品边界内。这意味着我可以在不跨越三个系统的情况下,修改 SEO 元数据、本地化或文章逻辑。我也避免了常见的“同步问题”:内容在一个工具里,而真正的逻辑却在另一个地方。

在实践中,这让我迭代更快、边角处更少出错。它也更容易观察,因为每一次写入动作都会流经同一层。如果你想了解我如何思考面向运营的内容系统,我关于 在 Next.js 中使用带 Search Console 的多智能体内容流水线(Multi-Agent Content Pipeline in Next.js With Search Console) 的文章展示了该工作流的研究侧。

系统背后的核心想法

核心想法很简单:CMS 应该像产品一样工作,而不是像表单搭建器。我想要的是类型化内容、可控的写入,以及一层自动化,能让我更快发布,同时不丢失监督能力。这就是为什么我把架构保持得严格、边界保持得清晰。

我从传统 CMS 改了什么

传统 CMS 通常会把内容编辑和产品代码库分开。听起来很灵活,但当网站变得更“定制化”之后,它往往会拖慢团队。我的 mcp cms 移除了这种拆分。我现在可以在一个地方管理内容、SEO 和工作流逻辑,从而在更少的开销下获得更大的杠杆。

MCP CMS 如何使用 MCP 作为控制层

最重要的决定是把 MCP 放在系统中间。我不想让 AI 功能被困在某一个聊天窗口或某一个仪表盘里。我想要一个可复用的命令层,它能从不同客户端与同一套后端规则通信。

因此我同时构建了一个独立的 MCP 服务器,以及一个应用内的 MCP 路由。通过 mcp cms 暴露出来的工具包括:博客 CRUD、发布、SEO 分析、文章生成、研究、图片生成,以及站点地图检查。换句话说,agent 层不会“猜”该做什么。它会调用真正的工具,并带着真正的状态。

这种做法与 Model Context Protocol specification 相一致,也符合我喜欢的内部系统组织方式:一个契约、多个客户端、没有重复。它也让在管理后台和外部 MCP 客户端中复用同一套动作变得很容易。

我通过 MCP 暴露的工具

工具面板的覆盖范围是刻意设计的。我希望智能体去做有用的工作,而不仅仅是聊天。

create_post、update_post、publish_post 和 rewrite_post 负责内容变更
content_pipeline 运行完整的自主工作流
brave_search 和 scrape_url 支持实时调研
YouTube 研究和站点地图检查为 SEO 流程提供输入
图片生成为媒体支持增加能力,同时不离开工作流

这种工具设计就是 mcp cms 的骨架。它让系统保持可组合,并让每一次操作都可被观察。

为什么这种架构在真实工作中很重要

在我构建网站和内容系统的过程中,最大的瓶颈通常不是“写”。瓶颈是协调。MCP 会降低这种协调成本,因为同一个动作可以从仪表盘调用,也可以从聊天界面调用,或者从另一个 agent flow 调用。结果就是:我花更少时间重复步骤,把更多时间用于提升产出质量。

管理后台把 MCP CMS 变成一间控制室

我不想让管理区域看起来像无聊的 CRUD 页面。我把它做成了一间控制室。它包含草稿管理、翻译、图片、SEO 和发布的功能;同时还有一层运营能力,让我可以运行 AI 工作流并观察它们如何推进。

在后台内部,MCP 聊天会像系统其他部分一样暴露相同的内容工具。我可以列出文章、检查草稿、触发 SEO 分析、发起研究,或用自然语言请求来运行完整流水线。关键在于:聊天并不是“魔法”。它基于与其余 mcp cms 相同的类型化动作。

这种设计在实践中节省了时间。我不需要为每一个新工作流重建界面。我只需要再暴露一个工具,或再提供一条控制路径。如果你想看看我如何从系统层面思考自动化,How I Built My CMS With MCP and Agent Flows 是围绕这个设置的更完整文章。

我可以从后台做什么

后台让我能快速推进,同时不失去控制。

管理草稿、翻译以及发布状态
在文章上线前运行 SEO 检查
从一个地方触发研究与内容生成
在保存任何最终内容之前审阅 agent 的输出
把所有动作都限制在已认证的产品边界内

为什么我用控制室而不是简单编辑器

当你只需要编写并发布时,简单编辑器就够了。但我需要更多。我想要一个地方:我可以观察工作流、批准变更,并在模型偏离轨道时进行介入。mcp cms 的真正价值在于:它给我的不仅是内容录入,而是运营层面的控制能力。

MCP CMS 的 Agent Flow 实际是如何工作的

agent flow 并不是一个巨大的单次提示词。我把它拆成多个阶段,这样我能在每一步控制质量。这很重要,因为内容工作本来就很“乱”。研究、SEO、结构和编辑每一步都需要不同的推理方式。

下面是我最常用的流程:

如果主题来自 YouTube,我会先提取转录稿
Search Console 的快照用来识别真实机会与内容空白
Brave 搜索与抓取收集实时调研
Research Agent 验证主题,并提出聚焦的关键词
SEO Agent 设计标题、标题层级、关键词位置以及内部链接
Writer Agent 使用研究结果与约束条件起草文章
Editor Agent 给草稿打分;如有需要则要求修改
图片生成与教程发现会在接近尾声时运行
Publisher Agent 清理 markdown 并保存草稿

我反复测试了这个流程,因为我不想要一个“假”的演示流水线。我想要的是:某个阶段可以把反馈推回给另一个阶段。这个反馈闭环也是 mcp cms 比单次写作助手更好用的原因之一。

为什么我把流程拆成阶段

每个阶段解决的是不同的问题。研究减少幻觉。SEO 让结构更精准。编辑保护质量。发布清理最终输出。把这些任务拆开后,整个系统会更可靠,也更容易在之后持续改进。

我如何防止智能体漂移

我用类型化输入、明确输出以及质量检查,让智能体保持在“短链条”上。这比一串含糊的提示词链条能带来更好的结果。它也让失败更容易诊断——当你依赖自动化来做生产工作时,这一点尤其重要。

Search Console 让 MCP CMS 更聪明

系统最强的部分之一在于:我并不只依赖提示词。我把 Search Console 的数据接入研究流程,让智能体基于真实的需求信号工作,而不是基于假设。这会改善主题选择步骤,并帮助我优先处理那些确实有机会获得排名的内容。

Search Console 层会把快照存入 Supabase,并计算关键词机会、低 CTR 页面以及内容空白。我会把这些洞察用于 mcp cms,来引导研究与 SEO。也就是说,这个系统不只是生成文章,它还在帮助我做更好的发布决策。

Google 官方的 Search Console 文档 也印证了为什么这很重要:搜索表现数据应该指导优化,而不应仅凭直觉。我的流水线里直接采用了这一原则。

数据层能给我什么

真实的查询数据,而不是猜测
基于需求的更好主题选择
对现有页面更清晰的 SEO 优先级
更快识别薄弱内容机会

为什么数据在这里胜过直觉

我喜欢创意工作,但内容策略需要证据。当我使用 Search Console 信号时,我能看到哪些页面需要帮助、哪些主题值得新增文章。这让 mcp cms 比静态的管理面板更有用。

为什么我拆分了读取路径与写入路径

我有意把博客的读取端和写入端分开。公开页面只通过内容层读取;而管理操作则通过变更(mutation)层写入。这样能让渲染更快,也让发布更安全。

这种拆分之所以重要,是因为每一侧的工作不同。读取层需要缓存、元数据以及干净的兜底行为。写入层需要认证、校验以及可控的变更。在 mcp cms 中,这两层共享同一套契约,但它们从不混在一起。

这种分离也让未来添加新界面更容易。如果我再做一个后台,或者我连接另一个 MCP 客户端,我不需要重新设计整个系统。我只需要把新工具指向同一条写入边界。

这种分离保护了什么

公开性能
发布可靠性
已认证的内容变更
当出现故障时更干净的调试

为什么我更喜欢这种结构

我见过系统因为“所有东西都在互相通信”而失败。这种架构降低了这种风险。它让 mcp cms 拥有稳定的核心,并保持产品易于演进。

真实结果与实际权衡

最大的结果并不是一个花哨的后台,而是杠杆。我现在可以从想法出发,经过调研大纲,再到草稿,再到 SEO 审核,而不需要在不同工具之间来回跳转。这节省了时间,也让上下文保持完整。

我也获得了对系统运行情况更好的可视性。我可以观察流水线、检查智能体的决策,并在需要时调整流程。这比“纯粹的自动化速度”更重要。一个好的 mcp cms 应该让你的流程更强,而不是让它更不透明。

不过也有权衡。定制系统比现成 CMS 需要更多工程投入。你要自己承担 bug、功能以及维护成本。对我来说,这个成本是值得的,因为工作流适配我的网站和内容策略。

我获得了什么

更快的内容操作
更紧的 SEO 控制
可复用的 agent 工具
更清晰的发布逻辑
更好的可观测性

我仍需要管理什么

定制维护
agent 输出中的边界情况
持续改进工具设计

我现在如何思考内容操作系统

这个项目改变了我对内容基础设施的看法。我不再把 CMS 软件仅仅当作存放文章的地方。我把它视为内容创建、审阅与发布的操作系统。这种思维转变也是为什么我的 mcp cms 感觉是有用的,而不是装饰性的。

如果你也在构建类似的东西,先从工作流开始。然后定义写入边界。之后,只为那些值得自动化的动作添加 MCP 工具。这样的顺序能让系统保持清醒。

我也建议你阅读我相关的文章:AI agents用 Next.js 扩展电商、以及我的 SEO 仪表盘。这些内容解释了搭建这个设置背后的构建模块,并展示了各部分如何连接。

结论

这次构建带来的主要经验很简单:

我把 mcp cms 构建在与公开站点相同的 Next.js 应用中
MCP 给我一个可复用的控制层,用于真实的后端动作
Search Console 数据让系统更具策略性,而不是纯靠猜
管理后台像一间控制室,而不是基础编辑器
拆分读取与写入路径让系统更快、更安全

我构建这个 mcp cms 是为了给自己更多杠杆、更好的可视性,以及更清洁的发布流程。如果你在设计自己的内容系统,请先从工作流开始,然后再围绕它塑造工具。

如果你愿意,阅读上面相关的文章,或者留言说说你会如何组织你自己的 CMS。