MCP 可以让模型调用程序中的工具,但平台发布接口、账号认证和内容审核仍由发布平台决定。浏览器抓包得到的 CSDN 内部接口不是稳定开放 API,复制旧 Cookie、签名和请求字段不能构成可长期复用的发帖方案。
下面把示例改成“生成并预览草稿”。检查标题和正文后,在 CSDN 编辑器 中粘贴并发布。程序没有自动发布功能。
先跑通工具调用
按 Spring AI 接入 MCP 建立 Java 21、Spring Boot 3.5.16、Spring AI 1.1.8 的 STDIO 服务。使用 spring-ai-starter-mcp-server,在启动类扫描范围内保存 ArticleDraftTools.java,包名替换为自己的:
package example;
import org.springframework.ai.tool.annotation.Tool;import org.springframework.ai.tool.annotation.ToolParam;import org.springframework.stereotype.Component;
@Componentpublic class ArticleDraftTools { @Tool(description = "预览文章草稿,不保存、不发布") public String previewArticle( @ToolParam(description = "文章标题") String title, @ToolParam(description = "Markdown 正文") String markdown) { if (title == null || title.isBlank() || title.length() > 120) { throw new IllegalArgumentException("标题长度须为 1 到 120 个字符"); } if (markdown == null || markdown.isBlank() || markdown.length() > 20000) { throw new IllegalArgumentException("正文长度须为 1 到 20000 个字符"); } return "# " + title.strip() + "\n\n" + markdown; }}在已有启动类里注册这个工具,替换原来的工具注册方法:
@BeanToolCallbackProvider articleTools(ArticleDraftTools tools) { return MethodToolCallbackProvider.builder().toolObjects(tools).build();}所需导入为 org.springframework.context.annotation.Bean、org.springframework.ai.tool.ToolCallbackProvider、org.springframework.ai.tool.method.MethodToolCallbackProvider。
STDIO 配置使用 spring.ai.mcp.server.stdio=true。日志写文件或 stderr,stdout 留给协议消息;不能往里面打印文章调试信息。
检查结果再发布
- 让 MCP 客户端列出工具,确认存在
previewArticle。 - 请求生成一篇短草稿,确认工具被调用;模型直接返回正文不等于调用了工具。
- 检查引用、代码和图片来源,将 Markdown 粘贴进编辑器。
- 在平台确认可见范围、分类和正文后发布,核对文章地址。
若以后接入平台正式发布 API,单独实现认证、参数校验、幂等和失败查询。MCP 工具描述不能替代这些检查,API 返回 HTTP 200 也不能单独证明发布成功。
评论