Halo MCP 部署指南:让 Codex 直接读写你的博客

Halo MCP 部署指南封面

以前管理 Halo 博客,要么打开后台慢慢点,要么写脚本调 REST API。现在有了 MCP(Model Context Protocol),事情变得简单了:只要给 Halo 装上 MCP 插件、生成一个访问令牌,再把端点配置进 Codex、Claude Code、MCP Inspector 等任意 MCP 客户端,AI 就能直接读文章、写文章、管理评论和附件。

💡 本文就是走这条链路发布的——封面由 HTML/CSS 排版渲染,经 halo_upload_attachment 上传,再经 halo_create_post 创建并发布,全程没有打开后台编辑器。

一、准备工作

  • 一个可正常访问的 Halo 2.x 站点(示例域名:https://idindoo.com);
  • 具备管理员权限的账号;
  • 一台装有 Codex Desktop / CLI 的电脑(其他 MCP 客户端同理)。

二、安装 MCP 插件

Halo 官方提供了 MCP Server 插件:halo-dev/plugin-mcp-server。在 Halo 后台进入「插件」→「插件市场」,搜索并安装即可;也可以按官方仓库说明下载插件包后手动上传安装。

安装完成后,插件会在你的站点上暴露一个 MCP 端点,默认路径为:

https://你的域名/mcp

三、创建访问令牌

MCP 插件使用 Halo 的「个人访问令牌(PAT)」做鉴权。在 Halo 后台进入「个人资料 / 安全设置」,创建一个新的访问令牌,复制生成的密钥。令牌通常以 hmcp_ 开头,形如:

hmcp_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxx
⚠️ 安全提醒:请把令牌当作密码保管。它拥有与你的账号同等的权限,不要把它提交到代码仓库、写进文章或发送给任何人。

四、在 Codex 中配置

编辑 Codex 的全局配置文件 ~/.codex/config.toml,追加以下内容:

# ~/.codex/config.toml
[mcp_servers.halo]
url = "https://你的域名/mcp"
enabled = true

[mcp_servers.halo.http_headers]
Authorization = "Bearer hmcp_你的访问令牌"

官方 README 推荐的写法是通过环境变量注入令牌,适合多台机器复用同一份配置、避免令牌直接写进配置文件:

# ~/.codex/config.toml
[mcp_servers.halo]
url = "https://你的域名/mcp"
bearer_token_env_var = "HALO_MCP_TOKEN"
# shell 中导出环境变量
export HALO_MCP_TOKEN="hmcp_你的访问令牌"

保存后重启 Codex(或重载会话),halo_* 工具就会注入到当前对话中。

五、验证联通

配置完成后,先在 Codex 里直接说一句:「用 halo 工具列出最近的文章」。如果一切正常,它会调用 halo_list_posts 并返回文章列表。

想手动确认链路,也可以直接 curl 走一遍 MCP 协议,一共三步:

  1. 发送 initialize 握手,拿到 200;
  2. 发送 notifications/initialized;
  3. 调用 tools/list 查看工具列表。
curl -X POST https://你的域名/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer hmcp_你的访问令牌" \
  -d '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"initialize",
    "params":{
      "protocolVersion":"2025-03-26",
      "capabilities":{},
      "clientInfo":{"name":"curl-test","version":"1.0.0"}
    }
  }'
curl -X POST https://你的域名/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer hmcp_你的访问令牌" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

返回示例:

{
  "jsonrpc":"2.0",
  "id":2,
  "result":{
    "tools":[
      {"name":"halo_list_posts",...},
      {"name":"halo_create_post",...}
    ]
  }
}
✅ 本次实测结果:握手 200 → initialized 202 → tools/list 返回 24 个 halo_* 工具;不带令牌的请求返回 401。插件、令牌、客户端三层全部联通。

六、能力一览

插件提供的 24 个工具覆盖了博客日常管理的方方面面,大致分为五组:

分组代表工具用途
文章halo_list_posts
halo_create_post
halo_update_post
halo_set_post_publish_state
列出、创建、更新、发布/撤回文章
页面halo_list_single_pages
halo_create_single_page
管理独立页面(关于、友链等)
分类与标签halo_list_categories
halo_create_tag
halo_update_category
维护文章组织结构
评论halo_list_comments
halo_set_comment_approval
审核、管理评论与回复
附件halo_upload_attachment
halo_get_attachment
上传图片、读取附件信息

再加上全文检索 halo_search_content,几乎可以把「后台管理」这件事整体交给 AI 完成。

七、安全建议

  • 令牌即账号:只配置在受信任的客户端上,泄露后第一时间到后台吊销并重新生成;
  • 优先使用环境变量注入令牌,避免密钥散落在配置文件里;
  • 务必通过 HTTPS 访问 MCP 端点,防止令牌在传输中被截获;
  • 不要把令牌写进文章、笔记、公开仓库或截图。

八、结语

从「装插件」到「Codex 直接调工具」,整个过程十分钟以内。以后写文章、批量改分类、审核评论,都可以直接对 AI 说一句话完成。本文从封面设计到正文发布,全程没有打开后台编辑器——这就是 MCP 给个人站点带来的新体验。

关联资源:halo-dev/plugin-mcp-server · Codex 官方文档 · MCP 规范

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息