Hexo博客管理服务器

一个基于Model Context Protocol的Hexo博客管理服务器,支持AI客户端直接管理Hexo博客的文章、预览和发布。

  • by leejersey
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 leejersey/hexo-mcp-server

使用说明

🚀 Hexo Blog MCP Server

一个基于 Model Context Protocol 的 Hexo 博客管理服务器,让 AI 客户端(Claude Desktop、Cursor 等)能够直接管理你的 Hexo 博客。

✨ 功能特性

  • 📝 文章管理 — 列出、搜索、读取、创建、编辑、删除博客文章
  • 👀 本地预览 — 一键启动/停止 Hexo 本地预览服务器
  • 🌐 一键发布 — 构建并部署到 GitHub Pages
  • 💾 源码备份 — 自动 Git 提交并推送到 hexo-source 分支
  • 🔒 安全防护 — 路径沙盒、分支锁定、命令超时保护

📦 安装

# 克隆或进入项目目录
cd /Users/lizexi/Documents/AI/aiMcp/hexo-mcp-server

# 安装依赖
npm install

# 构建
npm run build

⚙️ MCP 客户端配置

在你的 AI 客户端中添加以下 MCP 配置:

Claude Desktop

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "hexo-blog": {
      "command": "node",
      "args": ["/Users/lizexi/Documents/AI/aiMcp/hexo-mcp-server/dist/index.js"],
      "env": {
        "BLOG_ROOT": "/Users/lizexi/Documents/code/leejersey.github.io"
      }
    }
  }
}

Cursor

在 Cursor Settings → MCP 中添加相同配置。

🛠️ 可用的 Tools

文章管理

工具 参数 功能
list_posts keyword? 列出所有文章,支持按关键词过滤标题和标签
search_posts query 按关键词全文搜索文章(标题+正文)
read_post filename 读取指定文章的完整内容(含 Front-matter)
create_post title, content?, tags? 创建新文章并自动生成 Front-matter
update_post filename, content, title?, tags? 修改文章内容或元数据
delete_post filename 删除指定文章

博客操作

工具 功能
preview_blog 执行 hexo clean && hexo g && hexo s,启动本地预览(localhost:4000)
stop_preview 停止正在运行的预览服务器
deploy_blog 执行 hexo clean && hexo g && hexo d,发布到 GitHub Pages

Git 操作

工具 参数 功能
backup_source message? Git add → commit → push 到 hexo-source 分支
quick_publish message? 一键完成 deploy + backup 组合操作
git_status — 查看当前工作区的 Git 状态

📚 可用的 Resources

URI 描述
blog://config/site 站点配置 _config.yml 的内容
blog://config/theme Apollo 主题配置 _config.apollo.yml 的内容
blog://posts/summary 所有文章的元数据汇总(标题、日期、标签、字数)

🏗️ 项目结构

src/
├── index.ts              # MCP 服务器入口
├── config.ts             # 路径与常量配置
├── tools/
│   ├── post-tools.ts     # 文章管理工具(6个)
│   ├── hexo-tools.ts     # 构建/预览/部署工具(3个)
│   └── git-tools.ts      # Git 操作工具(3个)
├── resources/
│   └── blog-resources.ts # 博客数据资源(3个)
└── utils/
    ├── post-manager.ts   # 文章文件操作核心逻辑
    ├── hexo-runner.ts    # shell/hexo 命令封装
    └── git-runner.ts     # git 命令封装

🔧 技术栈

  • TypeScript + Node.js 18+
  • @modelcontextprotocol/sdk — MCP 官方 SDK(stdio 传输)
  • zod — 工具参数验证
  • gray-matter — Hexo 文章 Front-matter 解析

📄 License

MIT