MCP 自动发帖服务上线:从本地工具到定时内容分发
上一章我们把“发布文章”封装成了 MCP 工具,让 AI 可以调用接口创建草稿或发布内容。接下来要解决的问题是:如何让这套能力稳定运行,并按照计划自动执行?
本文用通用方案,带你完成 MCP 自动发帖服务的打包、定时任务和 Docker 部署。
一、整体架构
自动发帖服务可以拆成两个部分:
- MCP 发帖服务:负责接收标题、正文、标签等参数,并调用目标内容平台的发布接口。
- 业务调度服务:负责定时生成文章、调用 MCP 工具,并记录执行结果。
其中,MCP 服务可以打包成独立 Jar,以 stdio 方式由业务服务启动和调用。
整个流程如下:
定时任务触发 → AI 生成文章 → 调用 MCP 发帖工具 → 平台创建草稿或发布文章 → 返回文章链接
二、为什么需要定时任务?
MCP 工具本身只负责“能发帖”,不会自己决定何时发、发什么。
因此需要增加一个定时任务,例如:
- 每天上午生成一篇技术文章;
- 每周发布一次行业总结;
- 不同时间生成不同主题的内容;
- 先创建草稿,人工审核后再发布。
Spring Boot 中可以使用 @Scheduled 实现:
@Scheduled(cron = "0 0 10 * * ?")
public void publishArticleJob() {
// 每天 10:00 执行
}
如果只是测试,也可以先设置为每 10 分钟执行一次;正式使用时应降低频率,避免重复发布或触发平台风控。
三、让 AI 调用 MCP 工具
在业务服务中,需要配置 ChatClient,并将 MCP 工具注册进去:
@Bean
public ChatClient chatClient(OpenAiChatModel chatModel,
ToolCallbackProvider tools) {
return ChatClient.builder(chatModel)
.defaultTools(tools)
.build();
}
定时任务执行时,向 AI 发送一段明确的提示词:
String prompt = """
请生成一篇面向 Java 初学者的技术文章。
要求:
1. 主题:Spring Boot 项目中的异常处理;
2. 包含标题、正文、标签和 100 字以内摘要;
3. 内容通俗易懂,带简单示例;
4. 完成后调用发布文章工具,先保存为草稿。
""";
String result = chatClient.prompt(prompt).call().content();
提示词越清晰,生成内容和工具调用的成功率越高。建议明确文章主题、目标读者、格式要求、标签规则,以及“发布”还是“保存草稿”。
四、stdio 模式如何配置?
stdio 模式下,业务服务会把 MCP Jar 当作子进程启动,并通过标准输入输出通信。
本地配置通常类似这样:
mcp:
servers:
article-publisher:
command: java
args:
- -jar
- /app/mcp-server-article.jar
本地开发时可以使用 classpath 或本机 Jar 路径;部署到 Docker 后,应改为容器内的绝对路径。
需要注意:stdio MCP 服务的输出必须遵循 MCP 协议,因此不要随意向标准输出打印普通日志。业务日志建议输出到标准错误流或统一日志系统。
五、Docker 部署思路
部署时可以把业务服务和 MCP Jar 一起放入镜像:
FROM eclipse-temurin:17-jre
WORKDIR /app
COPY app.jar /app/app.jar
COPY mcp-server-article.jar /app/mcp-server-article.jar
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
再通过 Docker Compose 启动:
services:
article-job:
image: your-registry/article-job:1.0
restart: unless-stopped
environment:
SPRING_PROFILES_ACTIVE: prod
AI_API_KEY: ${AI_API_KEY}
PLATFORM_TOKEN: ${PLATFORM_TOKEN}
这样可以实现“一次构建,多处运行”,无论是本地服务器、NAS 还是云主机,都能使用同一份镜像部署。
六、上线前必须注意的事
自动发帖看起来简单,但上线前建议做好以下控制:
- 不要把 Cookie、Token、API Key 写进代码或配置仓库。
- 使用环境变量、密钥管理服务或平台官方 OAuth 授权。
- 默认发布为草稿,审核通过后再正式发布。
- 为任务增加幂等控制,避免同一篇文章重复发送。
- 记录任务日志、文章链接和失败原因,方便排查。
- 设置合理执行频率,并遵守目标平台的接口规则。
- 对 AI 输出增加基础校验,例如标题不能为空、正文长度达标、标签数量受限。
七、总结
MCP 自动发帖服务的上线,本质上是把三个能力连接起来:
- AI 负责创作内容;
- MCP 负责调用平台发布能力;
- 定时任务负责在合适的时间自动执行。
完成这套闭环后,你就拥有了一套可扩展的内容自动化系统。后续可以继续接入多个平台,实现“一次生成、多平台草稿分发”,再由人工统一审核发布。