我要发表一个大胆的言论:MCP(模型上下文协议)已经快不行了。

这话听着耳熟吗?这是工程师 Ejholmes 在最新博客里扔出的第一颗炸弹。

当 Anthropic 高调发布 MCP 时,整个科技圈像集体失了智一样。各大公司争先恐后地发布 MCP 服务器,生怕被贴上"不懂 AI"的标签。新的端点、新的线格式、新的授权方案……成吨的资源砸进去,只为了让 LLM 能跟服务对话。

但问题来了:LLM 早就学会怎么对话了。

被高估的"AI原生"狂欢

说实话,我从来没搞懂 MCP 到底解决了什么痛点。

你知道 LLM 最擅长什么吗?自己琢磨。 给它一个 CLI(命令行界面),再扔给它几页文档,它就能跑得飞快。它们在数百万个 man pages、Stack Overflow 答案和 GitHub 仓库里"长大",shell 脚本对它们来说就是母语。

AI配图

MCP 承诺提供一个更干净的接口,这听起来很美。

但在实践中?你还得写同样的文档:这个工具干嘛用的?接受什么参数?什么时候该用?

LLM 根本不需要一个新协议来告诉它怎么干活。

黑盒里的幽灵:调试的噩梦

这一点,我是真觉得 MCP 在开倒车。

当 Claude 用 CLI 操作 Jira 时,如果出了岔子,我只需要在终端敲下同样的 jira issue view 命令。输入一样,输出一样,没有秘密。

这就是确定性。

但在 MCP 的世界里,工具只存在于 LLM 的对话里。一旦出错,你就得像个傻瓜一样去翻 JSON 传输日志,拿着放大镜找报错原因。

调试居然需要协议解码器?这不是折腾人吗。

管道符的胜利:重剑无锋

老实讲,CLI 最狠的地方在于"组合性"。

这是 MCP 完全无法比拟的。CLI 可以通过管道连 jq,可以链 grep,可以重定向到文件。这不仅仅是方便,这往往是唯一的实操路径。

看看这个 Terraform 的例子:

terraform show -json plan.out | jq '[.resource_changes[] | select(.change.actions[0] == "no-op" | not)] | length'

一行命令,行云流水。

换成 MCP 呢?你要么把整个计划 dump 进上下文窗口(贵得要死,甚至根本塞不下),要么就得给 MCP 服务器专门写个过滤逻辑。

干得更多,效果更差。 CLI 用的是现成的、文档齐全的工具,人类能用,Agent 也能用。

谁在为脆弱的进程买单

AI配图

MCP 的拥护者们往往忽略了维护成本。

本地的 MCP 服务器是进程。它们得启动、得活着、不能悄悄挂掉。在 Claude Code 里,它们被拉起来当子进程跑——直到跑不动为止。

CLI 工具呢?就是硬盘上的二进制文件。 没有后台进程,没有状态管理,没有初始化舞蹈。用的时候它在,不用的时候它隐形。

再说认证,这点简直让人头大。

AI配图

MCP 非常自作主张地搞了一套认证逻辑。但这有必要吗?aws 用 profiles 和 SSO,ghauth loginkubectl 用 kubeconfig。这些都是久经沙场的认证流程,不管是我敲键盘还是 Claude 在开车,它们都照常工作。

用 MCP,你得给每个工具单独认证。认证没完没了。

权限管理也是一言难尽。Claude Code 只能让你把 MCP 工具加白名单,仅此而已。你想限制只读操作?没门。想限制参数?做梦。

但在 CLI 里,我可以放行 gh pr view,但 gh pr merge 必须人工批准。这种颗粒度,才是安全感。

反转:CLI 不是万能药

不过,话说回来,MCP 真的一无是处吗?

评论区里也不是一边倒。有人说,MCP 就像个黑盒 API——你不需要装东西,不需要配资源,点一下就能用。对于非技术用户,或者像 Sentry 这种只给一个 URL 就能跑的服务,MCP 确实方便。

也有人说,CLI 的问题是"太硬核"。

如果你的 CLI 文档不像 gh 那么完美,LLM 光靠 --help 也会懵圈。想做点复杂操作,比如创建一个复杂的 Jira issue,你还得把 schema 塞进帮助文档里。

这时候,MCP 把工具 schema 烘焙进协议的优势就出来了。

但我个人还是认同作者的观点:如果你是一家公司,还没把 CLI 做好就先搞 MCP,那你可能走偏了。

先搞定 API,再搞定 CLI。Agent 聪明得很,它们自己会搞定剩下的路。

结语

MCP 试图构建一个更好的抽象层,结果发现我们手里早就有一个挺完美的了。

最好的工具,是人和机器都能用的工具。CLI 经过了几十年的迭代,可组合、可调试、认证成熟。

别为了"AI First"的虚名,把简单的事情搞复杂了。

参考链接:
https://ejholmes.github.io/2026/02/28/mcp-is-dead-long-live-the-cli.html