About
Csdn — Model Context Protocol server
README
一个基于 Spring AI MCP Server 的 CSDN 文章发布服务,支持通过 AI 自动发布 Markdown 文章到 CSDN 平台。
功能特性
- ✅ 发布文章到 CSDN 平台
- ✅ 支持 Markdown 格式内容
- ✅ 支持文章标签设置
- ✅ 支持文章分类设置
- ✅ 基于 Spring AI MCP Server 标准协议
- ✅ 支持 stdio 和 SSE 两种模式
技术栈
- Java 17
- Spring Boot 3.4.3
- Spring AI 1.0.0-M6
- Retrofit 2.9.0 - HTTP 客户端
- Flexmark 0.64.8 - Markdown 解析器
- Lombok
- FastJSON 2.0.28
项目结构
mcp-server-csdn/
├── src/
│ └── main/
│ ├── java/
│ │ └── cn/bugstack/mcp/server/csdn/
│ │ ├── domain/ # 领域层
│ │ │ ├── adapter/ # 端口接口
│ │ │ ├── model/ # 领域模型
│ │ │ └── service/ # 领域服务
│ │ ├── infrastructure/ # 基础设施层
│ │ │ └── adapter/ # 适配器实现
│ │ ├── gateway/ # 网关层
│ │ │ └── dto/ # 数据传输对象
│ │ ├── types/ # 类型定义
│ │ │ ├── properties/ # 配置属性
│ │ │ └── utils/ # 工具类
│ │ └── McpServerApplication.java
│ └── resources/
│ └── application.yml
├── Dockerfile
├── build.sh
└── push.sh
快速开始
环境要求
- JDK 17+
- Maven 3.6+
配置说明
在 src/main/resources/application.yml 中配置 CSDN Cookie:
csdn:
api:
categories: Java场景面试宝典 # 文章分类
cookie: your-csdn-cookie-here # CSDN 登录 Cookie
spring:
application:
name: mcp-server-csdn
ai:
mcp:
server:
name: ${spring.application.name}
version: 1.0.0
如何获取 CSDN Cookie:
- 登录 CSDN 网站
- 打开浏览器开发者工具(F12)
- 在 Network 标签中找到任意请求
- 复制请求头中的
Cookie值
构建项目
mvn clean package
运行项目
stdio 模式(默认):
java -jar target/mcp-server-csdn-app.jar
SSE 模式:
修改 application.yml,注释掉 web-application-type: none,然后运行:
java -jar target/mcp-server-csdn-app.jar
服务将在 http://localhost:8101 启动。
Docker 部署
# 构建镜像
docker build -t mcp-server-csdn:1.0.0 .
# 运行容器
docker run -d \
-p 8101:8101 \
-v $(pwd)/data:/app/data \
mcp-server-csdn:1.0.0
功能说明
发布文章到 CSDN
通过 @Tool 注解暴露的工具方法,AI 可以调用 saveArticle 方法发布文章。
请求参数:
title: 文章标题markdowncontent: Markdown 格式的文章内容tags: 文章标签(多个标签用逗号分隔)
返回信息:
- 文章发布结果
- 文章链接(如果成功)
架构设计
项目采用 DDD(领域驱动设计)架构:
- 领域层(Domain): 包含业务逻辑和领域模型
- 基础设施层(Infrastructure): 实现外部接口适配
- 网关层(Gateway): 处理外部 API 调用
数据流转:
AI → @Tool 方法 → CSDNArticleService → ICSDNPort → CSDNPort → ICSDNService → CSDN API
使用示例
当作为 MCP Server 运行时,AI 可以通过以下方式调用:
{
"method": "tools/call",
"params": {
"name": "saveArticle",
"arguments": {
"title": "Spring Boot 入门教程",
"markdowncontent": "# Spring Boot 入门\n\n这是一篇关于 Spring Boot 的教程...",
"tags": "Spring Boot,Java,后端"
}
}
}
开发说明
核心类说明
- McpServerApplication: Spring Boot 主启动类
- CSDNArticleService: 领域服务,提供
saveArticle工具方法 - CSDNPort: 适配器实现,连接领域层和网关层
- ICSDNService: Retrofit 接口,定义 CSDN API 调用
- MarkdownConverter: Markdown 转换工具
添加新功能
- 在
CSDNArticleService中添加新的@Tool注解方法 - 在
ICSDNPort接口中定义新的端口方法 - 在
CSDNPort中实现适配逻辑 - 在
ICSDNService中添加对应的 API 接口 - 重新构建并运行
日志
日志文件位置:data/log/mcp-server-csdn.log
注意事项
- Cookie 会过期,需要定期更新
- 发布文章需要遵守 CSDN 社区规范
- 建议在测试环境先验证功能
许可证
本项目采用 MIT 许可证。
作者
Daniel G
Installing Csdn
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/CorgiBoyG/mcp-server-csdnFAQ
Is Csdn MCP free?
Yes, Csdn MCP is free — one-click install via Unyly at no cost.
Does Csdn need an API key?
No, Csdn runs without API keys or environment variables.
Is Csdn hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Csdn in Claude Desktop, Claude Code or Cursor?
Open Csdn on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Csdn with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
