HARNESS 工程 · 模型外面那层
部件② 工具 · TOOLSEP05 下集01 / 17
Harness 工程系列 · 部件② 工具 · MCP × CLI

该用 MCP
还是直接敲命令

英文圈喊「CLI 才是未来,MCP 已死」,中文这边也在传「越来越多人抛弃 MCP」。可偏偏有人转头就给 MCP 造了个管理器。一边送葬、一边加码,到底信谁?我把这半年的架从头看完了——两边都对,但吵错了轴。

▸ 方向键 / 空格 / 点击翻页 · 右下角可"自动播放" · 按 S 开讲者提词
开场。这集接着上集讲"手"。上集说 MCP 没被 Skill 干掉,这集英文圈换了个说法——CLI 才是未来、MCP 已死,还成了收藏爆款。但同一时间又有人认真给 MCP 造管理器。一边喊死一边加码,很反常。我把这半年的争论看完了,结论跟上集一样:两边都有道理,但他们吵错了轴。
本期速览 · OVERVIEW

先把关键数字摆桌上

经典 MCP 用法
0K
token · 活没干先吃掉
改让 AI 写代码调
0K
同一个活 · Anthropic 实测
于是省了
−98.7%
token 开销 · 官方原文
这场争论的真相
2 条轴
不是二选一

150K → 2K,省 98.7%,是 CLI 派最硬的那张牌。这集我要讲的是:这张牌后来被 MCP 的亲爹亲手收回去了。

四个数先摆出来。经典 MCP 用法要烧十五万 token,改让 AI 写代码去调只要两千,省了九成八,这是 Anthropic 官方原文的数字。最后一个格子是这期的题眼:真相是两条轴,不是二选一。记住十五万到两千这张牌,第五节它会反转。
对手换人了

先说人话:CLI 到底跟 MCP 争什么

上集把"手"讲清了:MCP 就是给 AI 装一个统一插座,让它够得着外面的数据库、日历、地图。这集的新问题是——既然要给 AI"手",那这只手,非得是 MCP 这种插座不可吗?

>_
CLI · Command-Line Interface

CLI · 命令行界面

就是程序员在黑框框里敲命令那套:git commit 提交代码、curl 抓网页、ffmpeg 转视频。CLI 派的主张特别朴素:这些命令 AI 早就会了,它在 GitHub、Stack Overflow 上见过几百万次,根本不用教。那为啥还要费劲装 MCP?

💡 争论一句话:与其给 AI 装一堆花里胡哨的连接器,不如让它像老程序员一样,直接敲命令行,又快又省。

先把新角色讲成人话。CLI 就是命令行,程序员在黑框框里敲 git、curl、ffmpeg 那套东西。CLI 派的主张很朴素:这些命令 AI 在训练语料里见过几百万次,天生就会,你根本不用教。那为什么还要费劲给它装 MCP,直接让它敲命令不就完了?争论就这么起来了。
半年吵出三派

从"已死"到"根基",一条光谱

FIG.01争论光谱 · 从「MCP 已死」到「MCP 才是根基」
◀ 激进派「MCP 已死」让 AI 直接敲命令,又省又可靠,MCP 是绕远路源:Eric Holmes · HN 爆帖 ● 中间派「看场景」有命令行又会的走 CLI,要授权、无命令行的走 MCP代表:Firecrawl / CircleCI 稳健派「MCP 才是根基」▶CLI 只覆盖一小撮场景,企业系统离不开 MCP代表:Tyk《Is MCP dead?》
三派都默认「MCP 和 CLI 是同类、要二选一」——可这个前提本身就错了,这才是这期要拆的地方

🧲 先记个反差:就在"MCP 已死"喊得最凶时,有人用 Rust 认真给 MCP 写了个管理器 mcpmate,卖点是"导入一次、到处能用、还帮你省 token"。一个"已死"的东西,会有人费劲做管理器吗?这个反差第 05 节会变成关键证据。

我把英文圈这半年的文章扫了一遍,声音大致三派,摆成一条光谱:最左是激进派"MCP 已死、CLI 上位",中间是"看场景混着用",最右是稳健派"MCP 才是根基"。注意,这三派吵得再凶,都默认一个前提——MCP 和 CLI 是同类、得二选一。这个前提本身就是错的。另外记个反差:喊死喊得最凶的时候,有人在认真给 MCP 造管理器 mcpmate,这个矛盾先记着。
核心观点 ① · 先替 CLI 派把话说足

CLI 派的三条硬理由(不是抬杠)

  • ① token 账太贵:MCP 的老规矩是每只"手"的说明书都得提前全文塞进上下文,不管用不用得上。叠三四个 server,活还没干,桌子先被说明书铺满。
  • ② 链路太长:MCP 里模型是调度中心,一件事拆四五步,就得跟模型来回四五趟。换成命令行,一条命令用管道符在本地串完,只回模型一趟。
  • ③ AI 是"母语级"熟练:gitcurlffmpeg 在语料里出现过千万次,天生就会,还能像乐高一样拼起来用。

💬 CLI 派有句话很扎心:Unix 命令行这套组合逻辑,是跑了 50 年、被全世界程序员用出来的成熟系统;而 MCP 的组合能力,还是个刚出生的 0.1 版。

我得先替 CLI 派把话说足,因为他们的理由是实打实的数据,不是情绪。三条:第一,token 账太贵,说明书得提前全塞进上下文;第二,链路太长,每步都要回模型,一件事来回四五趟;第三,git、curl、ffmpeg 这些命令 AI 是母语级熟练,还能像乐高一样拼起来。你不先承认这三条,就不算真读懂这场争论。
理由一 · 拿数据说话

同一个活,两种用法的 token 账

FIG.02150K → 2K,省 98.7%(Anthropic 官方数据)
同一个跨系统任务,token 开销(越长越贵) 经典 MCP 全量塞 + 结果来回传 ≈ 150,000 写代码调 用到才读 · 结果落地 ≈ 2,000 独立佐证:工程师 Zechner 自测 MCP ≈52,000 · 等价 CLI ≈1,200,撞上同一量级 −98.7%
数据出自 Anthropic《Code execution with MCP》(2025-11)。省的从哪来:① 说明书不再一次性全铺开;② 中间结果不再穿过 AI"脑子"来回传(一份大文档穿两趟,能凭空多烧 5 万 token
Anthropic 自己给过一组最扎眼的对比:同一个任务,传统方式把工具定义和中间结果全塞进上下文,要烧十五万 token;换一种用法只要两千,省了九成八,差不多两个数量级。省的从两处来:说明书不再一次性铺开,中间结果不再穿过模型的脑子来回传。而且这不是 Anthropic 一家自说自话,工程师 Zechner 独立实测也撞上同一量级。这就是 CLI 派最硬的一张牌。
理由二 · 链路长短

挑横板照片→加水印→上传:两种跑法

FIG.02b执行层实况 · MCP 4 趟往返 vs CLI 一条命令
MCP 模式模型当调度中心 · 每步都回模型
模型 调度中心 ①列文件 ②读尺寸 ③加水印 ④上传
4 趟往返 · 每趟都等模型
CLI / 代码一条命令 · 本地串起来跑完
模型 只回一趟 一条命令 exiftool | 筛出横板 ImageMagick | 加水印 scp 结果一次回来
1 趟往返 · 本地一次跑完
MCP 里每步结果都要回模型、等它决定下一步(来回四趟);写成一条命令 exiftool|ImageMagick|scp,三步本地串完、只回一趟。这就是"执行层"为什么归 CLI:链路短、等待少
举个具体的活:把一堆照片里的横板挑出来、加水印、再上传。MCP 模式下模型是调度中心,列文件、读尺寸、加水印、上传,每一步结果都要先回模型、等它想下一步,来回四趟。写成一条命令就不一样:exiftool 筛出横板、ImageMagick 加水印、scp 上传,三步在本地用管道串完,只回模型一趟。这就是执行层为什么归 CLI——链路短、等待少。
核心观点 ② · 大厂反而在加码

那 MCP 凭什么没死,还越做越大?

如果 CLI 真能取代 MCP,Google、微软应该忙着拆 MCP 才对。现实是反的——它们一边出 CLI,一边还在拼命做 MCP。因为 CLI 有三个够不着的地方:

没命令行
Salesforce、Notion、飞书、Slack、Gmail 这些 SaaS 压根没有命令行给 AI 敲
要授权
代表某人登录去操作,得走 OAuth、按人分权限、保持会话——不是 shell 一下就行
是标准
"AI 界的 USB-C":做成 MCP server,任何客户端插上就用,单个 CLI 给不了

🗳️ 市场自己投的票:Google 一边发命令行工具、一边发 Workspace 的 MCP server,两个都做,等于当众承认"不是二选一";连喊"MCP 已死"最凶的圈子,转头也在给它造管理器、写最佳实践——嘴上送葬,身体加码

如果 CLI 真能取代 MCP,那 Google、微软应该忙着拆 MCP。现实是反的,它们一边出 CLI 一边拼命做 MCP。因为 CLI 有三个够不着的地方:第一,绝大多数系统根本没有命令行,你能对 git 敲命令,但 Salesforce、飞书、Gmail 这些 SaaS 永远不会有命令行;第二,一旦要代表某个人登录去操作,得走授权、分权限、保持会话,CLI 顶不住;第三,MCP 是"写一次处处能接"的标准,单个 CLI 给不了。市场已经投票了——Google 两个都做。
核心观点 ③ · 本期最想让你带走的

拆穿这场架:它俩不在一条轴上

两边文章都读完,我反应过来问题出在哪:大家把"AI 用工具"当成了一个问题,其实它是两个问题叠在一起。一拆成两条轴,MCP 和 CLI 各自站的位置立刻就清楚了。

用公司打个比方

花名册 ≠ 干活方式

登记层是墙上那块工具挂钩板 + 花名册,写清"我们这儿有哪些活能干、去哪找";执行层是员工到底怎么把活干完——是每一步都念给老板听(穿上下文),还是自己去工具间做完、只把结果交上来。花名册和干活方式,是两码事。

💡 两条轴:轴 A「怎么知道能干什么」= 登记层;轴 B「真动手时怎么跑」= 执行层。它们根本不抢同一个位子。

把两边文章都读完,我反应过来问题出在哪:大家把"AI 用工具"这一件事当成了一个问题,其实它是两个问题叠在一起。用公司打比方——登记层是墙上的工具挂钩板加花名册,写清有哪些活能干;执行层是员工到底怎么把活干完。花名册和干活方式是两码事。一旦拆成这两条轴,MCP 和 CLI 各站各的位置,根本不抢同一个位子。
招牌图 · 看懂这张全场就散了

两轴分层图:MCPCLI 各赢一层

FIG.03两轴分层图 · 各赢一层(建议保存)
轴 A · 登记层 / REGISTRY AI 怎么知道自己能干什么? 注册一次、处处能用,把"有哪些能力、参数怎么传"标准化登记下来, 任何客户端插上就认 MCP ✓ 赢在这层 轴 B · 执行层 / EXECUTION 真动手时,说明书和结果穿不穿"脑子"? 让 AI 写代码 / 敲命令,在旁边把活干完、只把答案带回来, 说明书用到才读,不占满上下文窗口 经典 MCP 调用输在这层:全量塞 + 结果来回传 代码执行 / CLI ✓ 赢在这层
"CLI 干掉 MCP" = 把两条轴压成一条轴时的口误。CLI 赢的是"怎么跑"(轴 B),MCP 赢的是"怎么登记"(轴 A)。真正过时的,只是"经典 MCP 那种把说明书全塞进脑子"的执行方式,不是 MCP 这个登记标准
这是这期最想让你带走的一张图。两条轴:上面轴 A 登记层,问的是"AI 怎么知道自己能干什么",这层 MCP 赢,因为它把能力标准化登记、处处能插;下面轴 B 执行层,问的是"真动手时说明书和结果穿不穿脑子",这层代码执行、CLI 赢,经典 MCP 那种全量塞、结果来回传,恰恰输在这层。看懂这张图整场架就散了——CLI 干掉 MCP,只是把两条轴压成一条轴时的口误。过时的是那种执行方式,不是 MCP 这个登记标准。
核心观点 ④ · 下次能直接对着用

速查:这个活,走 MCP 还是走 CLI

FIG.04决策速查 · 建议保存
REGISTRY · 登记层
挂到 MCP
当这活"够不着":要连外面的活系统
▸ 目标是 SaaS / 云服务(飞书、Notion…),根本没命令行
▸ 要 登录授权、按人分权限、保持会话
▸ 你是服务方,想让所有 AI 客户端都插上你
EXECUTION · 执行层
直接敲命令 / 写代码
当这活"AI 本来就会":本机能跑
▸ 有现成命令行gitffmpegcurl
▸ 要省 token / 多步串联:写代码在旁边跑完,只回结果
▸ 纯本机工作流,连 MCP 都不用装

🔗 BOTH · 正解是两层各就各位:一次完整的"AI 用工具"往往两层都要——用 MCP 把外部能力登记进来(轴 A),再让 AI 写代码去调用、在执行层省掉那 98.7%(轴 B)。这正是 Anthropic 的收场方式:不删 MCP,而是让 AI 用代码去用 MCP

把两条轴翻译成你下次能直接对着用的判断。左边登记层:当这活够不着——目标是没有命令行的 SaaS、要登录授权、或者你是服务方想让所有客户端都能插上——挂 MCP。右边执行层:当这活 AI 本来就会——有现成命令行、要省 token 多步串联、纯本机工作流——直接敲命令、写代码,连 MCP 都不用装。而一次完整的用工具,往往两层都要:MCP 登记,代码执行。这就是 Anthropic 的收场方式。
核心观点 ⑤ · 剧情反转

Anthropic 没删 MCP,而是让 AI"用代码去用它"

最有意思的是,那波"抛弃 MCP"说法里最硬的牌——"MCP 天生费 token"——其实已经被 MCP 的亲爹亲手收回去了。省 token 这件事,MCP 自己也学会了。

它的做法:不再把 MCP 工具当成"一个个按钮"让 AI 挨个点,而是把每个 MCP server 变成文件系统上的一段代码接口(比如一个 ./servers/ 目录,每个服务一个文件)。AI 需要什么能力,先去翻目录、只读用得上的那个文件,再写一小段代码把能力串起来跑,中间结果在代码里就地处理掉,只有最后答案才回"脑子"。

🎯 一句话:它没在"MCP 还是 CLI"里选边,而是把 MCP 塞进了 CLI 那条更省的执行轴里。文首那个 150K → 2K、省 98.7% 的来历,就在这。争论到此其实已经结束了。

最有意思的来了。那波抛弃 MCP 说法里最硬的一张牌,就是 MCP 天生费 token。可这张牌已经被 MCP 的亲爹亲手收回去了。2025 年 11 月 Anthropic 抛出一个做法:不再把 MCP 工具当成一个个按钮让 AI 挨个点,而是把每个 server 变成文件系统上的一段代码接口,AI 用到才去翻目录、读那个文件,写代码把能力串起来,中间结果就地处理,只有最后答案才回脑子。它没在 MCP 还是 CLI 里选边,而是把 MCP 塞进了 CLI 那条更省的执行轴。
回收前面那个反差

mcpmate 那个反差,现在全通了

市场之所以要给 MCP 造管理器,恰恰因为"经典用法"确实不好用:server 一多就 token 爆炸、配置到处散。mcpmate 干的"集中管起来、按客户端裁工具省 token",本质上就是在给执行层打补丁

所以它不是"MCP 赢了"的证据,而是"MCP 的默认执行方式确实过时、得有人补"的证据——跟 Anthropic 的判断是同一个方向。

FIG.05真机 · 我的工厂里两层怎么分工
# 登记层 —— 挂成 MCP 够不着的外部服务才走这条 Gmail / 日历 / Drive 没命令行、要登录授权 → 只能 MCP Exa 联网搜索 云端语义搜索 → 挂 MCP,插上就用 # 执行层 —— 本机直接跑 AI 本来就会的,不装 MCP git / ffmpeg / python 提交、合成视频、批处理 → 直接写命令 _build.py 出贴图 写代码调用,结果落盘不占脑子
同一台机器:够不着的挂 MCP(登记层),够得着的直接敲命令(执行层)。它俩在我这儿从不是竞争关系,是上下两层
现在回头看 mcpmate 那个反差就全通了。市场要给 MCP 造管理器,恰恰因为经典用法确实不好用——server 一多 token 就爆炸、配置到处散。mcpmate 干的集中管理、按客户端裁工具省 token,本质就是给执行层打补丁。所以它不是 MCP 赢了的证据,而是 MCP 默认执行方式确实过时、得有人补的证据。这套两条腿走路我这个内容工厂天天在跑:够不着的挂 MCP,够得着的直接敲命令,从来没纠结过谁取代谁。
泼点冷水再走

诚实讲边界:两轴不是万能钥匙

  • 还没到开箱即用:Anthropic 那篇文末自己写着"实现留给读者做练习"。这套省 98.7% 的用法眼下更多是方向和范式,能不能吃到,看你用的客户端跟没跟进。
  • 敲命令 = 权限面更大:让 AI 自由敲命令行,等于把真机方向盘交给它——删错文件、跑错脚本的代价,比调一个只读 MCP 大得多。这正好是下期的引子。
  • 漂亮数字都来自厂商自测:150K→2K 是 Anthropic 在它自己选的示例任务上测的,换个任务数字会变。当方向信,别当铁律念。

⚠️ 按本栏目老规矩:讲完得泼冷水。这套"两轴"听着清爽,但别当真理背——它是个好用的判断框架,不是万能钥匙。

按本栏目老规矩,讲完得泼三盆冷水。第一,这套省九成八的用法还没到开箱即用,Anthropic 自己文末都写着"实现留给读者做练习",眼下更多是方向和范式。第二,直接敲命令等于权限面更大,让 AI 自由敲命令行就是把真机方向盘交给它,删错文件的代价比调只读 MCP 大得多,这正好是下期引子。第三,那些漂亮数字都来自厂商在自己选的任务上自测,当方向信,别当铁律念。
核心观点 ⑥ · 一句话带走

MCP 和 CLI 不是对手,是插座和插头
够不着外面 → 挂 MCP(登记层);
具体怎么跑最省 → 写代码 / 敲命令(执行层)。

这句能复述给别人,这期就没白看

🔌 回到开头那个问题——该用 MCP 还是直接敲命令?我的答案是:这问题本身就问偏了。"MCP 过时了",过时的只是"把说明书全塞进脑子"这一种执行方式,不是 MCP 这个登记标准;CLI 也不是来取代 MCP 的,它俩是上下两层。

收尾一句话:MCP 和 CLI 不是对手,是插座和插头。够不着外面的,挂 MCP 把能力登记进来;具体怎么跑最省的,写代码、敲命令去执行。回到开头那个问题——该用 MCP 还是直接敲命令?我的答案是这问题本身就问偏了。所谓 MCP 过时了,过时的只是把说明书全塞进脑子这一种执行方式,不是 MCP 这个登记标准。这句你能复述给别人,这期就没白看。
素材来源 · 关键数据均回原文逐字核实

这期的话,从哪儿来

来源提供了什么
Anthropic 工程博客《Code execution with MCP》2025-11,原文逐字 150,000 → 2,000 token · 省 98.7%;做法=把 server 呈现为文件系统上的代码接口
Mario Zechner独立 token 实测,MCP ≈52,000 vs 等价 CLI ≈1,200,与官方同量级——不是一家自说自话
mcpmate(loocor)Rust 本地 MCP 管理器,卖点"导入一次到处能用 + 按客户端裁工具省 token",对齐 2025-11 规范
SmartScope / 多方两轴框架=其"输的是 eager-load 执行模式、不是 MCP 协议"的大众化简化;争论多方交叉:Holmes/Firecrawl/Tyk/CircleCI 等
📘 本文为面向普通读者的中立技术科普,不构成对任何产品的推广。协议与数字以官方文档为准,厂商自测数据仅代表其特定示例,换任务会变;欢迎指正。
这期不是我一个人拍脑袋。关键数据都回到原文逐字核实过:150K 到 2K 出自 Anthropic 工程博客原文;Zechner 的独立实测撞上同一量级,证明不是官方自说自话;mcpmate 是真实存在的 Rust 管理器;两轴框架是 SmartScope 那套判断的大众化简化。免责一句:这是中立科普不推广任何产品,厂商自测数字换个任务就会变,当方向信别当铁律。
— END · HARNESS 工程 EP05 · 下集 —

会勇禾口王的AI笔记

HARNESS 工程 · 部件② 工具 · @huiyonghkw

完整系列在 hekouwang.pages.dev
🔔 关注 会勇禾口王的AI笔记,不聊 AI 会不会取代你,只聊先用 AI 的人怎么取代你
收官。这两集把"手"彻底讲透了:上集是手是什么、怎么长出来,这集是手怎么伸出去最省劲。MCP 和 CLI 不是对手,是上下两层。下一期 EP07 拆部件六,权限与信任边界——越给 AI 放权,越要有人在危险操作前举个手。关注会勇禾口王的AI笔记,完整系列在 hekouwang.pages.dev。