MCP was always a bad idea?
Was MCP a Mistake All Along?
After spending an entire day immersed in the latest developments of the Model Context Protocol (MCP) world, I walked away with a realization: I am exhausted by MCP.
While the passion of the developers and presenters was undeniable, the reality is that MCP is a flawed protocol. It was engineered for an era of LLMs that were significantly less capable than today's models. Simply put, we have already evolved past it.
📜 A Retrospective on MCP
Launched in November 2024 by Anthropic, MCP was intended to bridge the gap between AI agents and external data sources or services.
- The Early Days: Models were primitive. Agentic workflows were unreliable, and tools like Claude Code didn't exist yet.
- The Value Prop: Giving models external access unlocked unprecedented productivity.
- The Surge: MCP adoption skyrocketed alongside the general explosion of LLM integration across the global economy.
- The Transition: After evolving under Anthropic, the protocol was handed over to the Agentic AI Foundation (under the Linux Foundation) in December 2025.
🏗️ The "MCP Industrial Complex"
As adoption grew, a new problem emerged: Context Bloat. When users added numerous MCP servers, each bringing its own set of tools and schemas, the model's context window became overwhelmed.
We can represent this "Context Bloat" mathematically as: Where is total context, is the server schema, and is the individual tool definition.
To fight this, developers created "harnesses" (e.g., Composio, MintMCP, Pipedream) to:
- Centralize credential management.
- Provide a minimized set of tools to reduce token waste.
While these were helpful short-term patches, they ignored a critical variable: the models were getting smarter.
💡 The "Big Labs" Were Right
The major AI labs focused on raw capability, and it paid off. Modern models can now:
- Reason across massive codebases.
- Execute code autonomously on a local machine.
- Compose complex workflows using APIs they have never encountered before.
MCP servers are the only way to connect to tools. LLMs can now just write the scripts themselves.
Cloudflare's Code Mode is a perfect example of this transition; instead of relying on rigid MCP tool calls, it allows LLMs to compose various calls into scripts executed within a secure sandbox.
The Shift in Architecture
🛠️ Moving Toward Direct Integration
Many MCP servers are essentially just wrappers for existing APIs. If an agent has terminal access and can run a --help command, the wrapper becomes redundant.
| Feature | MCP Approach | Direct API/CLI Approach |
|---|---|---|
| Discovery | Pre-defined Schemas | --help / Documentation |
| Flexibility | Limited to Tool Definitions | Full API Capability |
| Overhead | High (Context Bloat) | Low (Direct Execution) |
| Auth | Handled by Server | Standard HTTP/OAuth |
While verbose machine-readable responses (like massive JSON blobs) can still waste tokens, we can solve this through standardized content negotiation.
Real-World Examples of Better Standards
Malte Ubl (@cramforce): "Request to harnesses: I love that you now send
Accept: text/markdown. Next thing is: Put the programming language you prefer into theAccept-Languageheader."
- The
Accept: text/markdownHeader: Many documentation sites now recognize this. Instead of sending a heavy HTML page, the server sends a clean Markdown version optimized for LLMs. - The
Accept-LanguageHeader: As suggested by a Vercel engineer and adopted by Shopify, this allows agents to specify a preferred language (e.g.,Python), ensuring the server returns language-specific SDK examples rather than generic ones.
Example: Agent-to-Server Request
GET /docs/api/auth HTTP/1.1
Host: api.example.com
Accept: text/markdown
Accept-Language: python
User-Agent: AI-Agent/1.0
🏁 Final Thoughts
The internet grew because it standardized around common, open protocols. Agents are now intelligent enough to write their own scripts and request exactly what they need.
Our roadmap should look like this:
- Create MCP for early-stage connectivity.
- Build middleware to handle context bloat.
-
Maintain the MCP ecosystem. - Standardize direct HTTP API and CLI interactions.
It is time to end-of-life MCP. Let's stop building wrappers and start relying on the robust HTTP APIs and CLIs that already exist.
Citations:
- Anthropic, "Introducing the Model Context Protocol", Nov 25, 2024.
- Anthropic, "Donating the Model Context Protocol...", Dec 9, 2025.
- Varda & Pai, "Code Mode: the better way to use MCP", Cloudflare Blog, Sept 26, 2025.