MCP太难受了!才被Skill锤过,又来一个CLI?

张开发
2026/4/21 17:40:34 15 分钟阅读

分享文章

MCP太难受了!才被Skill锤过,又来一个CLI?
最近AI Agent圈子又因为CLI躁动了。不少开发者抛弃MCP转向 CLI Skills 混合模式用CLI干重活用轻量Skill做结构化控制。CLI到底是什么简单来说CLI就是让大模型直接生成命令行指令然后由Agent在本地或受控环境中执行。举几个直观的例子“帮我把今天下载的PDF全部重命名为‘会议记录-日期-序号.pdf’”大模型输出find . -name *.pdf -mtime -1 | xargs -I {} mv {} 会议记录-$(date %Y%m%d)-{}.pdf“把这个项目的依赖更新到最新但只更新patch版本”npm outdated --parseable | cut -d: -f2 | xargs -I {} npm install {}latest --saveAgent拿到命令后直接丢给shell执行拿到输出再喂回大模型。整个流程极简粗暴却异常高效。CLI vs MCP相比MCPCLI有几个优势1. Token消耗大幅降低MCP每次调用都要把当前可用的所有工具列表、参数 schema、描述全塞进上下文。而CLI呢git、curl、jq、awk、rsync、docker……这些通用命令大模型自带知识根本不用传文档。遇到较新的CLI如Playwright只需要把帮助文档喂给大模型token也不会比MCP高。目前社区讨论中认为MCP在简单任务上token消耗是CLI的10-32倍而且因为上下文限制等原因失败率更高。2. 不依赖MCP Server维护成本低MCP需要专门维护一个Server来暴露工具接口。CLI直接用现有的服务器就能跑基本零额外成本。3. 灵活性更强MCP的每个工具都是孤立的函数你要实现“查找→过滤→批量重命名→压缩”这样的流程往往需要多次往返大模型。CLI却可以让大模型一次性生成管道命令甚至是带逻辑的多行脚本Bashfind /data -name *.log -mtime 7 | xargs grep -l ERROR | xargs -I {} sh -c mv {} {}.old gzip {}.old一条命令搞定中间结果不需要来回传输提升了效率也节省了token。很多MCP做不到、或者需要写一大堆glue code的事CLI用一行shell就能干。Claude Code、Gemini CLI 等产品直接内置强大的bash工具一些实测表明一条工具就能顶替以前50个MCP工具但CLI也不是万能的它的痛点也很明显1. 约束弱结果不稳定大模型也许会给出最优的命令但对于复杂的命令有时候会生成非最优命令或者错误命令比如路径没加引号、特殊字符没转义、甚至直接 rm -rf /* 这种灾难操作。2. 安全风险更高让大模型生成命令本质上是把root权限间接交给了它。理论上必须配合严格的沙箱、权限控制、最小化原则才能用。3. 调试体验较差命令执行失败后错误信息有时很原始大模型需要多轮才能定位问题不像MCP的结构化返回那么明确。最后现在一些人有非黑即白的误区——要么all in MCP要么all in CLI。但我认为CLI和MCP是互补不是替代。CLI的本质是用最低成本、最高灵活度把大模型已有的“终端知识”激活它不会完全取代MCP。真正聪明的做法是分场景选用。

更多文章