Bye-Bye MCP: Says Perplexity and Cloudflare
Photo by Luiz Rogério Nunes on Unsplash

After months of hype, Perplexity’s CTO just announced they are moving away from the Model Context Protocol (MCP) internally.

Well, the agentic AI community is experiencing a massive reality check.

If you have been following the developer narrative for some time, the Model Context Protocol (MCP) was supposed to be the universal standard.

And I won’t say it wasn’t helpful. I built the Splitwise MCP because paying for pro wasn’t a great idea.

Free to read for non members

It was the magic glue that securely connected Claude or Gemini to our local databases, APIs, and file systems.

But I guess that phase is officially over.

Over the last 24 hours, the communities have been on fire.

The CTO of Perplexity confirmed they are stepping back from MCP internally in favor of traditional REST APIs and CLIs, especially for their enterprise clients.

Simultaneously, Cloudflare dropped a massive technical teardown explaining exactly why traditional MCP tool-calling architectures are fundamentally flawed for complex AI agents.

Why Perplexity is Pulling the Plug

The premise of MCP is brilliant: standardize the way LLMs interact with external data. But according to the leaked internal consensus at Perplexity, the execution in a high-scale enterprise environment is currently a nightmare.

  • The Security Gap: For a startup that’s small, local MCPs are great. But for a massive enterprise client, the auth story in MCP is practically nonexistent. When dealing with strict compliance requirements, rate limiting, and audit logs, developers are realizing that traditional REST/GraphQL APIs already solved these problems a decade ago.
  • The Stdio Transport Flaw: Developers have reported that using stdio transport, the default way local MCP servers communicate with the IDE becomes incredibly brittle under serious load.
  • Protocol Immaturity: The spec feels outdated to many infrastructure engineers, making it feel more like a great local dev tool than an enterprise-ready pipeline.

Note: Perplexity isn’t deleting MCP entirely, they still maintain it so tools like Claude Desktop can connect to their search.

But for their core, cross-org enterprise routing? They are going back to the boring, battle-tested reality of REST APIs.

The Cloudflare Teardown: Token Waste and Tool Overload

While Perplexity cited infrastructure and security, Cloudflare attacked the actual mechanism of how LLMs use tools via MCP.

In a highly circulated article, they pointed out three fatal flaws in standard tool calling:

  1. Lack of Training Data: LLMs have ingested millions of lines of code, but very few examples of raw JSON tool calling. As Cloudflare put it: “Asking an LLM to use tool calling is like putting Shakespeare through a one-month Mandarin course and then asking him to write a play in it.”
  2. Tool Overload (The Cardinality Problem): When you dump 30+ MCP tools into the context window, the model starts hallucinating because the descriptions blur together. It struggles to pick the right tool.
  3. The “Token Waste” Loop: This is the biggest architectural flaw. In a multi-step task (e.g., A → B → C), every intermediate result has to pass back through the LLM.
  • Call API A → Result goes to LLM → LLM reads it → Calls API B → Result goes to LLM → LLM reads it → Calls API C.
  • Every round-trip adds 1–5 seconds of latency and wastes thousands of tokens just copying data.

The Code Mode Solution

The alternative being pushed by Cloudflare, Pydantic (with Monty), and new open-source runtimes like Zapcode, is a radical shift:

Stop letting the LLM call tools one by one.

Let the LLM write a script that calls them all.

This is what Cloudflare calls “Code Mode.”

Instead of three separate LLM round-trips to compare the weather in two cities, the LLM generates a single block of TypeScript.

The LLM fires off the code, and a sandboxed runtime (like a V8 isolate on Cloudflare Workers) executes the entire chain.

The intermediate values stay in the code, they never pass back through the neural network.

What used to be four expensive LLM round-trips becomes one single generation step followed by native code execution :)

What This Means for the Local Stack?

If you are running an M3 Max and relying on the Claude Code CLI to manage your backend, this debate is critical.

MCP is not dead. It is just being demoted.

Cloudflare explicitly stated that MCP remains the absolute best “tool discovery protocol.”

What is changing is the last mile of execution.

Instead of letting Claude call my database 15 times to generate a report, the future of the stack involves Claude reading the MCP schema, writing a 50-line TypeScript or Python script, and handing that script to a sandboxed local runtime (like Zapcode) to execute in one shot.

So, If you are building an agentic workflow this week, don’t throw away your MCP servers.

Just stop treating them like a magic wand.

Treat them like an API schema, and let your LLM do what it actually does best: write the code to consume it.

Btw, I recently built a medium-no-bait-reader

In case we are meeting for the first time, come over here, it’ll be worth the roller coaster of articles that are gonna come up in the next few weeks.