让 AI 使用外部工具,常见的两条路径是 MCP 和 CLI + Skills。两者都能完成查询数据、修改内容和执行任务,但接入方式与工作流程不同。
MCP(Model Context Protocol,模型上下文协议)让 AI 客户端通过统一协议发现和调用工具。服务端提供工具描述、参数定义和执行能力,AI 根据任务选择工具并提交参数。
CLI(Command Line Interface,命令行界面)通过终端命令提供操作入口;Skills 则为 AI 提供命令用法、任务步骤和检查要求。两者配合后,AI 可以将命令与本地文件、脚本及其他工具组合,完成一套工作流程。
MCP 也可以配合 Skills 使用。选择 MCP 还是 CLI + Skills,主要看工具如何接入、执行环境如何维护,以及权限、扩展和记录是否符合需求。
下面以 Halo 建站工具为例,从发布一篇文章开始,对比 Halo MCP Server 与 Halo CLI 的功能、执行方式和管理体验,并结合实际界面说明如何选择。
Halo 的两种接入方式
Halo MCP Server 是运行在 Halo 服务端的插件,通过 MCP(Model Context Protocol,模型上下文协议)向 AI 客户端提供网站操作工具。
Halo CLI 是 Halo 的命令行工具。用户、脚本或具备终端执行能力的 AI Agent 都可以通过命令管理网站。
Halo CLI 提供配套 Skills,指导 AI 完成内容管理、认证、搜索和运维等操作。Halo MCP Server 则通过已注册工具提供能力,并支持社区应用接入。
功能对比
Halo MCP Server 的内置工具覆盖内容搜索、文章、独立页面、分类、标签、评论、附件,以及主题设置和模板读取。CLI 覆盖内容操作,并提供主题安装、升级、启用,以及插件、备份等管理命令。MCP 还可以通过 Halo 社区应用扩展能力。
| 功能范围 | Halo MCP Server | Halo CLI |
|---|---|---|
| 文章与独立页面 | 查询、创建、更新、发布、回收和恢复 | 查询、创建、更新、删除及发布等操作 |
| 分类与标签 | 支持管理 | 支持管理 |
| 评论与回复 | 查询、审核状态修改、删除 | 支持评论与回复管理 |
| 附件 | 查询、读取、上传、从 URL 上传、删除 | 提供附件管理命令 |
| 文件导入导出 | 以在线工具调用为主 | 支持文章 JSON、Markdown 导入导出等 |
| 主题设置与模板 | 查询、读取和更新主题设置组;查询和读取主题模板 | 主题命令侧重安装、升级、启用等管理操作 |
| 主题安装、插件与备份 | 本文所示内置工具列表未包含这些操作 | 提供对应命令组 |
| 通知 | 内置功能说明中未列出 | 提供通知管理命令 |
| 瞬间 | 由适配的瞬间应用提供工具 | 提供 moment 命令组 |
| 社区应用扩展 | 应用可以接入并提供 MCP 工具 | 需要对应的 CLI 命令实现 |
功能范围可查看 MCP 仓库和 CLI 仓库,CLI 的文件处理方式见内容管理文档。
MCP 已注册工具
下图展示了一个实例中的 39 个内置工具,按业务分为 8 组:内容搜索 1 个、文章管理 7 个、页面管理 7 个、分类 4 个、标签 4 个、评论管理 6 个、附件管理 5 个、主题 5 个。
每个工具卡片列出了名称、调用标识、用途和操作类型,包括“只读”“写入”“破坏性”。例如,读取文章属于只读操作,创建文章属于写入操作,更新文章和修改发布状态被标记为破坏性操作。这些标记便于识别操作影响;实际可调用范围由访问密钥授权决定。
主题工具支持读取当前启用主题的设置组,并通过 JSON Merge Patch 更新设置;也可以查询和读取主题 HTML 模板。模板读取工具不提供执行模板或修改模板代码的能力。

图 1:Halo MCP 内置工具列表。工具数量以截图中的实例为例;管理概览配图展示的是另一个时点,数量可能不同。
发布文章的两种方式
MCP:调用工具
安装 Halo MCP Server 插件后,管理员在后台创建访问密钥,为它勾选允许使用的工具,再将服务地址和密钥配置到 AI 客户端。
当你说“把这篇文章发布到 Halo,放进技术分类”,AI 会通过 MCP 获取可用工具及参数说明,然后按任务需要执行:
- 调用
halo_list_categories和halo_list_tags,查询分类与标签。 - 如果有配图,调用
halo_upload_attachment上传图片,或使用halo_upload_attachment_from_url转存远程图片。 - 调用
halo_create_post创建文章,并提交文章内容与所需属性。 - 如果先创建草稿,再调用
halo_set_post_publish_state修改发布状态,最后通过halo_get_post读取并核对结果。
halo_create_post 可以创建草稿或已发布文章,因此也可以在创建时直接发布。需要先检查内容时,再采用“创建草稿 → 检查 → 修改发布状态”的流程。
整个过程中,AI 通过结构化参数调用 Halo 服务端工具,不需要拼接终端命令。管理员可以限制这个客户端能使用哪些工具,并在 Halo 后台查看调用记录。MCP 功能与配置
CLI:执行命令
CLI 需要先在执行环境中安装 Node.js 和 Halo CLI,并完成站点登录。随后,AI 通过终端执行命令。
例如,先查询已有分类:
halo post category list
再创建并发布文章:
halo post create \
--title "使用 Halo 管理个人博客" \
--content "这里是文章正文" \
--publish true
如果文章已经保存在本地 Markdown 文件中,可以使用 Markdown 导入命令;如果需要上传图片、处理分类或设置封面,再组合相应命令完成。CLI 内容管理文档
流程对比
两种方式最终都将内容写入 Halo。区别在执行过程:
| 发布环节 | MCP | CLI |
|---|---|---|
| AI 获取操作方法 | 读取工具描述和参数定义 | 读取命令帮助或 Skills |
| 提交文章内容 | 向工具传入结构化参数 | 执行带参数的命令,或导入文件 |
| 处理本地素材 | 由客户端读取素材,再交给工具 | 可直接结合本地文件和处理脚本 |
| 获取结果 | 读取工具调用结果 | 读取命令输出,可使用 JSON |
| 控制操作范围 | 按访问密钥授权具体工具 | 由登录身份及服务端 API 权限控制 |
| 查看执行记录 | Halo 后台的工具调用记录 | 终端、Agent 或自动化平台的执行日志 |
使用体验与管理
配置成本
MCP Server 运行在 Halo 服务端。使用支持远程连接的 MCP 客户端时,无需为了操作 Halo 在电脑上安装 Node.js 或 Halo CLI,只需配置连接地址和访问密钥。
这更适合经常切换设备、使用多个 AI 客户端的场景。服务端统一提供能力,各客户端分别连接即可。Halo MCP Server 要求客户端支持 Streamable HTTP 和自定义 Bearer Token。MCP 使用要求
CLI 需要在执行环境中安装和维护。目前要求 Node.js 22 或以上版本,支持保存多个站点配置,凭据保存在系统 keyring 中。执行环境可以是本地电脑,也可以是固定的远程工作机。CLI 安装说明
如果日常已经在终端里处理 Markdown、图片和代码,CLI 很容易接入现有流程;如果主要通过对话管理网站,MCP 的安装配置更集中在服务端。
细粒度权限
Halo MCP Server 支持按访问密钥选择可用工具。不同 AI 客户端可以持有不同密钥,获得不同的操作范围。
例如,可以给资料整理助手开放查询工具,给写作助手开放创建和更新工具,把发布权限留给另一个客户端。密钥还支持有效期、禁用、轮换和 IP 白名单。MCP 访问控制
CLI 使用登录凭据访问 Halo,由服务端对该身份执行权限检查。它适合沿用现有账号和 API 授权体系;MCP 则提供了直接面向 AI 工具的授权界面,便于按任务分配能力。
Skills 可以约定“先创建草稿,再进行发布检查”,但这属于工作流程。要限制某个客户端实际能做什么,仍需通过服务端权限配置实现。

图 2:Halo MCP 服务管理界面,集中展示访问密钥、工具数量、调用统计与最近调用。图中的 29 个工具和成功率是该实例当时的状态。
社区应用扩展
MCP Server 提供了应用接入机制。Halo 社区应用可以实现工具 Provider,将自己的功能提供给 AI。
官方仓库已经列出几个接入案例:
- Docsme:让 AI 管理文档。
- Image Stream:让 AI 搜索并转存图片。
- 瞬间:让 AI 管理瞬间内容。
安装并启用适配的应用后,MCP Server 会发现其提供的工具。管理员将新工具加入密钥授权范围后,AI 客户端便可以获取并使用这些能力。已接入应用 · 应用接入指南
这意味着,MCP 的功能可以随着 Halo 社区应用扩展,客户端无需为每个应用分别安装命令行工具。
CLI 的能力则由已安装版本提供。新增业务操作通常需要补充对应命令并升级 CLI。不过,现有命令可以与脚本、图片处理工具、文件转换工具组合,用于批量整理和发布内容。
调用记录
MCP Server 支持在 Halo 控制台查看工具来源和最近调用记录。多个客户端接入后,管理员可以在服务端集中查看工具使用情况。MCP 调用记录
CLI 的执行记录通常保存在终端、AI Agent 或自动化平台中。例如,批量导入文章的脚本可以记录每篇文章的执行结果,CI 平台也可以保留完整任务日志。
两者的差别在于记录的位置和组织方式:MCP 提供面向网站工具调用的集中记录;CLI 更依赖执行环境保存和整理日志。

图 3:Docsme 应用通过 MCP 执行文档创建、内容更新和发布状态修改。记录中可以查看工具名称、调用时间、耗时、插件来源及成功状态,并按密钥、工具和结果筛选。
截图中的数据说明标明:只保留当前实例最近 500 条调用记录,Halo 或插件重启、重载后记录会清空。该界面适合查看近期执行情况;需要长期留存时,应另行设计日志归档。
Skills 的作用
Halo CLI 官方提供了内容管理、认证、搜索、运维、评论与通知等 Skills,帮助 AI 正确使用命令。官方 Skills
以发布文章为例,Skill 可以指导 AI 先检查目标站点,再查询分类、处理素材、创建内容并核对结果。你也可以加入自己的写作要求,例如摘要长度、封面尺寸、标签命名方式,以及默认保存为草稿。
CLI 负责执行操作,Skills 负责指导 AI 如何组织这些操作。
MCP 同样可以配合 Skills 使用。通过 MCP 发布,也可以遵循相同的文章检查流程。选择工具连接方式之后,再补充适合自己的工作规范即可。
怎么选
| 使用场景 | 优先选择 |
|---|---|
| 在 AI 对话中查询、编辑和发布文章 | MCP |
| 给不同 AI 客户端分配不同操作权限 | MCP |
| 在 Halo 后台集中查看工具调用记录 | MCP |
| 使用社区应用提供的 AI 工具 | MCP |
| 批量处理本地 Markdown 和图片 | CLI + Skills |
| 查询或调整当前主题设置、读取模板 | MCP |
| 导入导出内容、安装升级主题、管理备份 | CLI |
| 将发布流程接入脚本或自动化任务 | CLI + Skills |
日常内容管理可以通过 MCP 完成,本地整理、批量导入和网站维护可以交给 CLI。两者同时使用时,只需明确每项任务的执行入口,再用 Skills 固定重复的操作流程。