Skip to content

CorgiBoyG/mcp-server-csdn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCP Server - CSDN

一个基于 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:

  1. 登录 CSDN 网站
  2. 打开浏览器开发者工具(F12)
  3. 在 Network 标签中找到任意请求
  4. 复制请求头中的 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(领域驱动设计)架构:

  1. 领域层(Domain): 包含业务逻辑和领域模型
  2. 基础设施层(Infrastructure): 实现外部接口适配
  3. 网关层(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 转换工具

添加新功能

  1. CSDNArticleService 中添加新的 @Tool 注解方法
  2. ICSDNPort 接口中定义新的端口方法
  3. CSDNPort 中实现适配逻辑
  4. ICSDNService 中添加对应的 API 接口
  5. 重新构建并运行

日志

日志文件位置:data/log/mcp-server-csdn.log

注意事项

  1. Cookie 会过期,需要定期更新
  2. 发布文章需要遵守 CSDN 社区规范
  3. 建议在测试环境先验证功能

许可证

本项目采用 MIT 许可证。

作者

Daniel G

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published