CLI 对比 MCP 有哪些优势
CLI 与 GUI
CLI:命令行界面,用户通过命令行输入指令,程序通过解析指令执行对应的功能。不擅长图形界面,CLI 是 AI 母语。
GUI:图形用户界面,用户通过图形界面操作程序,程序通过用户操作触发对应功能。不擅长记忆命令,擅长图形界面。
开源 CLI
CLI-Anything
项目地址:https://github.com/yangshun/opencli
一行命令,让任意软件接入 OpenClaw、nanobot、Cursor、Claude Code 等 Agent 框架。
一行命令生成 CLI:
# 为 GIMP 生成完整的 CLI(7 个阶段全自动)
/cli-anything:cli-anything ./gimp完整流水线自动执行:
- 🔍 分析 — 扫描源码,将 GUI 操作映射到 API
- 📐 设计 — 规划命令分组、状态模型、输出格式
- 🔨 实现 — 构建 Click CLI,包含 REPL、JSON 输出、撤销/重做
- 📋 规划测试 — 生成 TEST.md,涵盖单元测试和端到端测试计划
- 🧪 编写测试 — 实现完整测试套件
- 📝 文档 — 更新 TEST.md,写入测试结果
- 📦 发布 — 生成 setup.py,安装到 PATH
项目原理:
以 draw.io 为例,生成 CLI 后,运行 CLI 命令,实质上是运行 python 代码,python 代码可以根据 draw.io 的文件标准来读写 draw.io 的工程文件。这样同一份文件,可以被 draw.io 读写,也可以被 CLI 读写。 标准
OpenCLI
项目地址:https://github.com/jackwener/opencli
OpenCLI 将任何网站、本地 CLI 或 Electron 应用(如 Antigravity)变成命令行工具
OpenCLI 除了使用作者已经编写好的命令行工具,还可以基于该项目进行二次开发,把自己需要的工具加入进来。操作步骤:
- 克隆项目
- 打开 AI 编程工具,如 Claude Code、Codex 等
- 让 AI 创建一个新的命令,描述命令行的功能,如将某个网站的所有博客输出出来
- AI 创建新命令后,根据 AI 提供的安装步骤,安装命令行工具
- 使用新的命令
官方 CLI
除了使用 CLI-Anything 和 OpenCLI,很多大型软件都提供了官方的 CLI,如:GitHub。
以 GitHub CLI: https://cli.github.com 为例:
- 安装 GitHub CLI 后,输入命令
gh --help可以看到 GitHub CLI 的帮助信息。
- 登录 GitHub 账号,输入命令
gh auth login会提供给我们一个检验码,在浏览器中打开,输入检验码,完成登录。
- 创建一个仓库,输入命令
gh repo create my-repo --public会创建一个名为 my-repo 的公开的仓库。
提示
更多命令可以参考官方文档:https://cli.github.com/manual
MCP vs CLI
MCP(Model Context Protocol)全称模型上下文协议,是一种用于构建智能助手的协议,它允许用户与 AI 模型进行交互,并获取模型的输出。简单来说,MCP 就是大模型的标准化工具箱,大模型可以利用这些工具与外界互动,获取信息并完成具体任务。
MCP 与 CLI 的主要区别是:
| 对比维度 | MCP | CLI |
|---|---|---|
| 上下文占用 | 高 | 低 |
| 适用方 | Agent专用协议,难以调试 | 同时对人类跟Agent友好,方便调试 |
| 可组合性 | 差 | 支持管道符 |
| 安装规范 | 标准化安装包 | 无 |
MCP 上下文占用高。MCP 需要将所有工具的工具名称、参数格式、调用示例全部注入上下文,每新增一个工具,就会占用大量的 token 开销。CLI 则可以让 AI 自己学习工具的使用方法,使用渐进式披露的方法来减少 token 的消耗。ScaleKit 做过一组测试(https://github.com/scalekit-inc/mcp-vs-cli-benchmark),使用 GitHUb 的官方 MCP 与 官方 CLI 进行对比,在所有任务上面,CLI 的消耗 token 成倍小于 MCP。 p
MCP 是 Agent 专用协议,难以调试。MCP 是一个黑盒,整个运行过程都是在 Agent 内部,一旦运行出错,很难在本地复现,调试难度大大增加。CLI 是通用协议,对人类和 Agent 都友好,方便调试。
MCP 可组合性差。CLI 支持管道符操作(上个命令的输出结果输入到下个命令),可以将多个命令组装成流水线,轻松实现复杂能力。MCP 实现复杂任务需要频繁调用工具,大大增加 token 消耗和时间开销。
MCP 拥有标准化安装包。在多租户和严格权限控制的场景下,MCP 好于 CLI,因为 MCP 有标准化安装包、有统一的鉴权规范,可以保证所有用户使用相同的工具。而 CLI 则需要用户自行安装工具,可能会导致用户环境不一致,导致工具无法运行。
但 MCP 取代 CLI 还为时尚早,而且两者也在互相学习进化:
Claude Code 和 Codex 最近都上线了 Tool Search 功能,不再全量注入 MCP 的 schema,而是按需加载 MCP,把 Skills 跟 CLI 的渐进式披露提示词的思路引入了 MCP。
MCPorter 项目(https://github.com/steipete/mcporter)可以把任意的 MCP 转换成 CLI 格式,提供给 Agent 调用。