30know
MCP、CLI:软件是怎么把”权限”交给 AI 的?

MCP、CLI:软件是怎么把”权限”交给 AI 的?

上章讲到Skill 可以告诉 Agent,一件事情应该按照什么步骤去做、需要参考哪些资料,最后又该怎么检查结果。但如果 Agent 不只是“知道应该怎么做”,而是真的要去调用一个具体的软件呢?

大家应该多多少少都刷到过类似的演示:让 AI 直接创建飞书文档、读取微信读书里的划线和笔记、控制设计软件修改页面,甚至帮你点一杯咖啡。

这些事情以前往往需要我们自己打开软件,一个个点击,或者先把资料复制出来,再粘贴给 AI。现在却变成了,你只需要在对话框里说一句话,AI 就可以自己去读取信息、调用功能,甚至真的创建一份文档、一个任务或者一笔订单。

那么问题来了:AI 为什么突然可以调用这么多软件了?

因为进入大AI 时代了,现在越来越多的软件,都在主动把自己的部分能力开放给 AI,大家经常看到的 MCP 和 CLI CLI,就是其中两种很常见的入口。

可以先粗略理解成:这些软件开发了一些权限,专门留给AI可以直接调用。

那么还是经典三个问题:

MCP 和 CLI 到底是什么?
它们之间有什么区别?
普通人能用到哪些,又该怎么选择?

MCP 和 CLI 到底是什么?

先讲 MCP。

MCP 的全称是 Model Context Protocol,中文一般翻译成“模型上下文协议”。它最早由 Anthropic 在 2024 年提出并开源。

MCP 官方对它的定义是一种开放协议,用来让大语言模型应用连接外部的数据源和工具。

这句话听起来还是有点抽象。再翻译成大白话,其实可以先把 MCP 理解成:一套专门给 AI 连接和调用外部能力的公开规则。

这里最重要的不是“MCP 能连接某一个软件”,而是它规定了一种相对统一的方式,让外面的工具把自己的能力告诉 AI。

比如一个接入了高德地图的MCP 以后,它可以告诉 Agent:” 我这里有“搜索”“查天气”“查询地点”“创建任务”这些工具;这个工具是干什么的,你调用它的时候需要给我哪些信息;执行完以后我又会返回什么。“。

paste-20260916-162758

在 MCP 里,一个工具本身就会带有名称、功能描述和参数结构。Agent 因此不只是“知道有一个接口”,而是可以先理解这个工具能干什么、什么时候应该使用、调用时要传什么信息,再结合当前任务自己选择和调用。MCP 官方把这种 Tools 直接定义为可以被模型发现和调用的能力。

比如你对一个 Agent 说: “帮我看看深圳明天会不会下雨,再推荐几个适合下午去的地方。”

如果它连接了相应的天气、地图 MCP,Agent 可以先判断这个任务需要“查询天气”和“地点搜索”,再分别调用对应工具,把得到的结果组合起来回答你。

所以 MCP 最核心的一点并不是“它自己会执行很多事情”,而是: 外部服务可以按照一套统一格式,把自己的能力描述给 AI;AI 理解以后,再自己组合和调用这些能力。

这也是为什么 MCP 特别适合 Agent。

以前每一种工具都有自己的接口和说明方式;MCP 出现以后,大家至少可以按照相近的规则告诉 Agent:“我有什么工具、这个工具怎么用。”

严格来说,MCP 不只有 Tools,还可以提供其他类型的信息。不过对于普通人理解“AI 为什么突然能调用各种软件”这个问题,就先理解 Tools,也就是工具调用这一部分就够了。

然后再说 CLI。

CLI 的全称是 Command Line Interface,中文叫“命令行界面”。

它和 MCP 最大的区别之一就是:CLI 并非是 AI 时代的新技术,它已经在计算机里存在很多年了。

平时我们操作一个软件,最熟悉的方式是用鼠标点击按钮;CLI 则是把这些操作变成一条条文字命令。你输入一条命令,电脑或者软件就按照命令去做。

所以 CLI 可以先非常简单地理解成:不用点按钮,直接通过命令告诉软件做什么。

以前这些命令主要是程序员、运维人员或者自动化脚本在用。而现在 Agent 本身越来越擅长操作电脑、运行终端,它自然也可以直接使用 CLI。

这里就可以拿飞书来举例。

paste-20260916-162819 飞书现在提供了官方 lark-cli,而且它的定位非常明确:不仅是给人用,也是专门给 AI Agent 使用的,目前已经覆盖消息、文档、多维表格、日历、邮箱、任务、会议等等

paste-20260916-162832

假如你想让 Agent: “帮我新建一份飞书周报,把我今天整理好的内容放进去。”

以前,你需要自己打开飞书,找到文档、新建、复制文字、粘贴进去,有了飞书 CLI 以后,这些操作可以被表示成一条命令。比如飞书有专门用于创建文档的命令,Agent 只需要知道要创建什么、内容是什么,就可以自己在后台运行对应命令,飞书再把创建好的文档结果返回回来。

然后使用流程大概是:你说人话 → Agent 理解你的任务 → Agent 自己生成并执行飞书 CLI 命令 → 飞书完成操作 → Agent 把结果告诉你。

如果你是有在用飞书的,那么飞书的CLI是很好的一个可以马上跟练实操的案例,具体的一些使用可以看看飞书官方的文档:飞书CLI安装与使用指南:让AI Agent真正接入飞书!

所以现在 CLI 又重新变得特别重要,不是因为大家突然开始喜欢命令行窗口了,而是因为:
对于 Agent 来说,文字命令本身就是一种非常直接的操作软件的方式。

不过在讲MCP和CLI区别之前,有一件事得先说清楚。

不管是 MCP 还是 CLI,Agent 最后要做的判断动作,其实是同一件事:要不要调用、调用谁、填什么参数。

这个判断能力,不是 MCP 给的,也不是 CLI 给的,
是模型自己就会——业内管它叫 Tool Use,也叫 Function Calling。

MCP 和 CLI 的区别,只是在"怎么把工具信息喂给这个判断能力"
这一步不一样。

MCP 和 CLI 有什么区别?

看到这里你可能会觉得: 等一下,MCP 和 CLI 不都是让 AI 去调用软件或工具吗?

对,从最终效果来看,它们确实可能完成非常相似的事情。

AI 可以通过 MCP 查数据、创建任务;也可以通过 CLI 查数据、创建任务。真正的区别,不在于"一个能做,一个不能做",而是:软件用什么方式把自己的能力交给 Agent

不过在讲区别之前,有一件事得先说清楚。

不管是 MCP 还是 CLI,Agent 最后要做的那个判断动作,其实完全是同一件事:

要不要调用一个工具、调用哪一个、传什么参数进去。

这个判断能力,不是 MCP 给的,也不是 CLI 给的。是模型自己就会——业内管这个能力叫 Tool Use,也叫 Function Calling。

说白了就是:模型看到一个工具的名字和说明以后,自己判断"这个任务用得上它",然后自己填好参数,生成一份"调用申请"。

注意,是申请,不是执行。模型自己从来不会真的去跑这个工具。它生成完申请之后,真正动手执行的,是你的程序,或者是对方的服务器。执行完了,结果再喂回去给模型,模型才接着往下说话。

所以 MCP 和 CLI 真正的差别,其实只是发生在"申请"这一步之前:软件用什么方式,把工具的信息喂给模型,让模型能做出这个判断。

这也是为什么前面说,MCP 和 CLI 最终效果可能一样,过程却不同——因为它们只是换了一种方式,去支撑同一个判断动作。

CLI 更像是软件给 Agent 一套可以直接执行的文字口令。Agent 需要知道有什么程序、有哪些命令,再生成一条正确的命令执行。

MCP 更像是软件按照统一规则给 Agent 一张结构化的工具菜单。Agent 可以先发现:"这里有哪些工具?每个工具干什么?分别需要哪些参数?"再根据当前任务选择其中一个调用。

举个非常简单的例子。

假如一个软件都可以完成“搜索资料”:

CLI 的思路更像:软件告诉你,有一条 search 命令,后面跟关键词就能搜索。

Agent 决定搜索什么之后,直接生成并执行这条命令。

MCP 的思路更像:

软件告诉 Agent:我这里有一个叫“搜索”的工具,它可以搜索资料,需要提供一个“关键词”参数。

Agent 看到工具说明以后,再决定什么时候调用,并把关键词填进去。

最后结果可能完全一样,但是中间的逻辑不同。

对比 MCP CLI
本质 AI 应用连接外部能力的一套开放协议 用文字命令操作程序的一种传统接口
软件怎样提供能力 把能力描述成结构化工具 提供一条条命令
Agent 怎么理解 可以直接看到工具名称、描述和参数 需要知道命令,或通过帮助文档、Skill 等了解
Agent 怎么执行 选择 Tool 并传入参数 生成命令并在终端执行
最初为谁设计 主要面向 AI 应用与工具连接 最初给人和脚本使用,现在 Agent 也非常适合
常见优势 标准化、工具发现方便 直接、成熟,特别适合本地和批量操作

所以千万不要把 MCP 和 CLI 理解成“上层和底层”,或者“联网的叫 MCP、本地的叫 CLI”。

MCP 也可以调用本地工具,CLI 也完全可以操作云端的软件。比如飞书 CLI 最后操作的就是云端飞书服务。

它们真正的区别还是那句话:MCP 给 Agent 一套结构化工具,CLI 给 Agent 一套可以执行的命令。

而且它们并不互相排斥。

像 Claude Code、Codex 这类本来就能操作终端的 Agent,可以大量调用各种 CLI,同时也完全可以连接 MCP。一个软件也可以同时提供 MCP 和 CLI,让不同的 Agent 自己选择更适合的入口。

真正用的时候,MCP、CLI 和 Skill 到底该怎么选?

讲到这里,可能还有一个更现实的问题。

因为我们真正去使用这些服务时,往往不是只看到一个入口。

有一些平台会同时给你 MCP、CLI,甚至还会再放一个 Skill。这时候对于普通人来说反而更懵了:我只是想让 AI 用一下这个软件,为什么一下有三个东西?到底装哪个?

这里我以知乎的搜索接入为例子

知乎数据开放平台现在已经把搜索、知乎直答、热榜这些能力开放给 AI,官方公开介绍里支持 Skills、API、MCP 等不同调用方式;近期知乎也推出了面向 Agent 使用的 Zhihu CLI,并配套提供 Skill,让 Agent 可以完成安装、配置,再调用 CLI 搜索知乎、看热榜、调用直答或者读取自己的知乎数据。

paste-20260916-162853

甚至瑞幸都有AI 开放平台上线时直接写明支持 MCP、CLI、Skill 多种接入方式:MCP 用来把点单服务接给 AI,CLI 可以通过命令调用来点咖啡!(虽然很鸡肋)

paste-20260916-162903

所以你以后很可能会越来越频繁地看到各种软件都会开放起 MCP、CLI、Skill,就是跟上 AI 时代,让 Agent 也能进行部分操作

那么对于我们普通用户而言,这三个形式怎么选择呢?

接入方式 可以先怎么理解
MCP 把软件的一组结构化工具接给 Agent
CLI 把软件的一组命令交给 Agent 执行
Skill 把这个软件应该怎么用、什么时候用、按照什么步骤用,教给 Agent

但这里有个很重要的点:这三个东西看起来并排放在官网上,并不代表技术上也是完全平级的三条路。

尤其是 Skill。

上一篇我们讲过,Skill 更像一份给 Agent 看的说明书和工作流程。它本身不一定负责连接软件,底下仍然可能继续调用 MCP、CLI、API,甚至直接运行脚本。

知乎的例子就非常典型。

你安装它的 Skill 以后,并不是说 Skill 突然变成了另一套“知乎接口”。更像是你把一份知乎操作指南交给 Agent:这里告诉 Agent CLI 怎么安装、怎么认证、搜索知乎应该调用什么命令、遇到不同任务该怎么处理,最后真正去拿知乎数据的,仍然是底下的 CLI 和开放平台能力

如果官方已经把 Skill 做得很完整,而你用的 Codex、Claude Code、WorkBuddy 这类 Agent 又支持 Skill,那么直接装官方 Skill,很多时候反而最省事。因为你不用自己研究“这一条命令怎么写”“这个 MCP 工具什么时候该用”,Skill 已经把这些经验告诉 Agent 了。

大白话来说就是:Skill更适合普通用户,利用Agent使用

像微信读书官方就只出了skill的形式

paste-20260916-162913

(不过这里微信的用到的不是mcp也不是cli,而是API的形式,api就是咱们下篇要讲到,这里就不展开了)

但这并不意味着:Skill 一定比 MCP 或 CLI 更强。

它更多解决的是“怎么用”,比较适合使用通用Agent进行调用

真正决定 Agent 能做多少事情的,还是 Skill 底下接了什么能力。

所以回到最开始的问题:如果一个平台真的同时提供 MCP、CLI 和 Skill,我们到底该怎么选?

其实没有一个绝对的优先级,但对于普通用户来说,可以先按照一个比较简单的思路判断。

如果官方已经提供了完整的 Skill,可以先从 Skill 开始

尤其是你本来就在用 Codex、Claude Code、WorkBuddy 这类支持 Skill 的通用 Agent,官方 Skill 往往已经帮你把安装、认证、调用方式,甚至具体任务应该怎么做都准备好了。你只需要安装好,然后直接跟 Agent 说人话就行。

如果没有 Skill,再看 MCP 和 CLI。

如果你使用的 Agent 本身就能够操作终端,而且这个软件已经提供了成熟的 CLI,我会更建议优先试 CLI。

因为现在的通用 Agent 本来就很擅长执行命令,你并不需要自己去学那些命令,只需要把 CLI 安装好,剩下的基本都可以交给 Agent。

比如你想搜索知乎、创建飞书文档,或者调用其他已经提供 CLI 的服务,你还是直接告诉 Agent“我要做什么”,它自己去生成并执行对应的命令。

这也是为什么我觉得 CLI 在 Agent 时代反而重新变得很有价值:以前 CLI 需要人学命令,现在命令可以让 Agent 自己学、自己执行。

而如果这个服务没有成熟的 CLI,或者你使用的 AI 本身不方便操作终端,但支持 MCP,那么就直接用 MCP。MCP 本来就是为 AI 调用外部工具设计的,接好以后,Agent 可以直接看到这里有哪些工具、每个工具能干什么,再自己选择调用。

所以普通用户其实不用纠结哪个技术更高级,大概可以记成:有完整官方 Skill,先试 Skill;没有 Skill,Agent 能很好地操作终端、CLI 又成熟,就优先试 CLI;否则就看 MCP。

如果 MCP 和 CLI 两边都支持,而且能做的事情也差不多,那就更简单了:哪个官方更推荐、哪个在你当前的 Agent 里更容易安装和授权,就用哪个。

说到底,MCP、CLI 和 Skill 解决的,都是 Agent 怎么更好地使用外部工具和软件能力,这个问题仅此而已。

本章小测

9道题

本章配有随堂小测,登录后即可作答并记录成绩。