跪拜 Guibai
← All articles
Artificial Intelligence · AI Programming

MCP Is Losing to the 50-Year-Old CLI, and Even Anthropic Agrees

By web_Leon ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

Chasing protocol standards like MCP adds integration overhead that most AI workflows don't need. The entire Unix toolchain is already a battle-tested, zero-configuration API that any LLM can drive today, which means teams can skip months of MCP server maintenance and get straight to automation.

Summary

MCP was designed as a universal translator for AI agents, but its complexity — three-way handshakes, JSON-RPC encoding, and state-machine debugging — has driven developers back to the Unix pipe. CLI tools like git, npm, docker, and kubectl already speak the only protocol AI needs: text streams over stdin/stdout. The comparison across development cost, debugging, reliability, composability, and maintenance cost is lopsided: CLI wins every dimension. Even Anthropic's own Claude Code, along with Cursor, Windsurf, and OpenAI Codex CLI, default to subprocess calls rather than MCP integrations. The practical upshot is immediate: any tool with a CLI becomes a native AI tool without a single line of adapter code. MCP isn't dead, but it's shrinking from a would-be universal standard into a niche protocol for bidirectional real-time interactions, while /bin/sh remains the real universal interface.

Takeaways
Anthropic's own Claude Code relies on system CLI calls — git, npm, eslint — not MCP.
Cursor, Windsurf, and OpenAI Codex CLI all default to native terminal commands instead of MCP integrations.
Writing an MCP server demands understanding JSON-RPC, state management, and protocol specs; a CLI script that outputs to stdout takes five minutes.
The MCP ecosystem has roughly 200+ servers, while the Unix/Linux/Node/Python CLI ecosystem numbers in the hundreds of thousands.
CLI debugging produces plain-text errors like 'command not found' or 'permission denied'; MCP debugging means parsing 500-line JSON stack traces.
Unix pipes let one tool's output feed directly into another with no format conversion; MCP servers remain isolated islands requiring host-layer translation.
Any tool with a CLI — Jira via jira-cli, Kubernetes via kubectl, AWS via aws-cli — becomes an AI-native tool with zero adapter code.
Conclusions

Complexity is the real adoption killer: MCP's design is technically complete but operationally punishing, which explains the flight to simplicity.

The Unix philosophy of 'do one thing well' and compose with pipes turns out to be a better fit for LLM-driven tool use than a purpose-built RPC protocol.

Protocols that require every tool to be rewritten as a server will always lose to protocols that treat existing tools as already compatible.

Anthropic building MCP while its own flagship product sidesteps it is a signal that the protocol solves a problem most developers don't actually have.

CLI's reliability comes from 50 years of unchanged text-stream contracts; MCP's fragility comes from rapid iteration that breaks integrations on every SDK update.

The shift from MCP to CLI mirrors the broader industry pattern where 'dumb' interfaces outlast 'smart' ones because they impose fewer assumptions.

Concepts & terms
MCP (Model Context Protocol)
Anthropic's 2024 open standard for connecting AI models to external tools and data sources via JSON-RPC, designed as a universal interface between agents and the outside world.
CLI (Command Line Interface)
A text-based interface where users or programs issue commands and receive text output via stdin/stdout/stderr, forming the foundation of Unix/Linux tooling for 50 years.
Unix pipe (|)
A shell operator that chains commands by feeding the stdout of one program directly into the stdin of the next, enabling composable workflows without intermediate files or format conversions.
JSON-RPC
A remote procedure call protocol encoded in JSON, used by MCP for message passing between AI hosts and tool servers, adding serialization and state-management overhead.
stdin / stdout / stderr
The three standard data streams in Unix-like systems: standard input (data into a program), standard output (data out), and standard error (diagnostic messages), forming CLI's universal text contract.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗