gRPC Just Became the Proposed Transport for MCP (Model Context Protocol) — Is REST's Dominance in AI-Era APIs Finally Ending?

Something significant happened in the API world last week, and I think it deserves more attention than it’s getting: Google proposed gRPC as a transport layer for Anthropic’s Model Context Protocol (MCP) — the emerging open standard that defines how AI agents communicate with external tools and APIs.

If you’re not tracking MCP, you should be. It’s quickly becoming the de facto standard for AI tool integration. When you ask an AI agent to “check my calendar” or “query the database,” MCP is the protocol that makes that handshake work. And now Google wants gRPC to be the wire protocol underneath it.

Why This Matters

MCP defines the what — the schema for tool discovery, invocation, and response. The transport layer defines the how — how bytes move between client and server. If gRPC becomes the standard MCP transport, every MCP server and client in the ecosystem needs gRPC support. That’s a massive shift from the current REST/JSON-over-HTTP world.

gRPC’s Case for AI Workloads

Honestly, gRPC makes a compelling argument for AI agent communication:

  • Bidirectional streaming: AI agents need persistent, real-time communication channels. An agent might send a tool call, receive partial results, send follow-ups, and get streaming responses — all on one connection. gRPC’s bidirectional streaming handles this natively. REST’s request-response model requires workarounds like long-polling or WebSocket upgrades.
  • Protocol Buffers for serialization: Protobuf messages are 3-10x smaller than equivalent JSON and parse 20-100x faster. When an AI agent is making hundreds of tool calls per session, that efficiency compounds.
  • Built-in service discovery and strong typing: Protobuf contracts define exactly what a tool accepts and returns. No more guessing at JSON shapes or writing validation code. The compiler catches mismatches before runtime.
  • HTTP/2 multiplexing: Multiple concurrent tool calls over a single connection, with header compression and flow control built in.

REST’s Limitations (for This Use Case)

I want to be clear: REST is excellent for what it was designed for. But AI agent communication pushes against its boundaries:

  • Request-response doesn’t model streaming well. Server-Sent Events help for one direction, but true bidirectional communication requires additional protocols.
  • JSON parsing overhead becomes significant at high-volume tool call rates. When an agent executes 50 tool calls in 10 seconds, serialization costs matter.
  • No native type safety means integration bugs surface at runtime rather than compile time.

Our Team’s Experience

We migrated internal service-to-service APIs from REST to gRPC about two years ago. The results were meaningful: latency dropped roughly 40%, payload sizes dropped about 60%, and the protobuf contracts eliminated an entire category of integration bugs where services disagreed on field names or types.

But the trade-offs are real. Debugging is significantly harder — HTTP traffic is human-readable, protobuf is binary. We had to build custom tooling for inspecting gRPC traffic. Developer onboarding took longer because protobuf compilation adds a build step that REST doesn’t have.

The Current Landscape

The API world isn’t monolithic:

Protocol Dominant Use Case Market Share (approx)
REST/JSON Public APIs, browser-to-server ~80% of APIs
gRPC Service-to-service, internal Growing fast, especially at scale
GraphQL Frontend-focused, flexible queries ~10% of frontend APIs

My Prediction: Convergence, Not Replacement

I don’t think gRPC replaces REST. I think we’re heading toward a three-layer world:

  1. External/public APIs stay REST — human developers need readability, curl-ability, and a low barrier to entry
  2. Internal service-to-service APIs move to gRPC — machines talking to machines benefit from efficiency and type safety
  3. AI agent APIs adopt gRPC — agents need streaming, type safety, and performance, and they don’t care about human readability

The MCP proposal, if accepted, would accelerate layer three significantly.

The Question

Is your team using gRPC today? And more importantly — does the MCP transport proposal change how you’re thinking about your API strategy? I’m particularly curious if anyone has experience with gRPC in client-facing (not just internal) contexts.

@alex_infrastructure, solid analysis as always, but I want to push back on the streaming argument a bit — because I think it’s doing a lot of heavy lifting in the gRPC-for-MCP case, and I’m not sure it needs to.

The Developer Experience Gap

Here’s what I love about REST: I can test any API with curl, read the response in my terminal, and understand exactly what happened. No compilation step, no generated clients, no binary inspection tools. I can prototype a new integration in 20 minutes. With gRPC, I need to:

  1. Get the .proto files
  2. Set up protobuf compilation in my build pipeline
  3. Generate client stubs for my language
  4. Use a specialized tool like grpcurl or evans for testing
  5. Build custom tooling to inspect traffic

That’s not a minor friction — it’s a fundamental change to the development workflow.

SSE Could Solve the Streaming Problem More Simply

The current MCP transport uses Server-Sent Events (SSE) over HTTP for streaming, and honestly? It works fine for most use cases. Yes, SSE is unidirectional (server-to-client), but MCP’s interaction pattern is mostly request-response with streaming responses — which is exactly what SSE handles well. For the cases where you need client-to-server streaming, you can POST new messages. It’s not as elegant as gRPC’s bidirectional streams, but it’s dramatically simpler to implement and debug.

The Ecosystem Barrier Worries Me

Think about what made MCP successful so quickly: any developer could build an MCP server in an afternoon. You write a Python or TypeScript file, expose some JSON endpoints, and you’re done. If gRPC becomes the standard transport, building an MCP server means learning protobuf, setting up code generation, and dealing with a completely different toolchain.

I’ve seen this pattern before. Technologies that optimize for machine efficiency at the cost of developer simplicity tend to stay in the infrastructure niche. REST won not because it was the best protocol — it won because it was the most accessible.

My honest take: gRPC is the right choice for high-performance, internal MCP deployments where you control both ends. But making it the default transport risks shrinking the ecosystem of tool developers who are building the integrations that make MCP valuable in the first place.

The question isn’t whether gRPC is better technically — it clearly is for many dimensions. The question is whether the ecosystem can absorb the complexity cost.

I want to zoom out from the technical merits and look at this through a strategic lens, because there’s something important happening beneath the surface.

Follow the Incentives

Google proposing gRPC as MCP’s transport is a strategically brilliant move. Let me connect the dots:

  • gRPC is Google’s protocol. They created it, they maintain it, and their entire internal infrastructure runs on it (Stubby, its predecessor, has been Google’s internal RPC framework for over a decade).
  • MCP is becoming the standard for AI tool integration. If MCP runs on gRPC, the entire AI tool ecosystem adopts Google’s protocol stack.
  • Google Cloud already has best-in-class gRPC support. Cloud Run, GKE, and their API Gateway all have native gRPC support. AWS and Azure support it, but not as deeply.

I’m not saying the proposal is bad faith — gRPC genuinely has technical advantages for this use case. But I’ve been in this industry long enough to recognize when a company is positioning their technology as the default infrastructure layer for an emerging ecosystem. Microsoft did it with .NET, Amazon did it with their service primitives, and now Google is doing it with gRPC + MCP.

What I’d Advocate For

MCP should support multiple transports and let the ecosystem decide. The protocol layer should be transport-agnostic:

  • REST/JSON over HTTP as the baseline — lowest barrier to entry, widest tooling support
  • gRPC as a performance option for high-throughput deployments
  • WebSocket for use cases that need persistent bidirectional channels but can’t adopt gRPC

This isn’t just good engineering — it’s good governance. An open standard shouldn’t be coupled to a single company’s technology stack, no matter how good that technology is.

The Practical Reality

At our company, we use gRPC for about 30% of our internal services — the ones where latency and type safety matter most. The rest are REST because the debugging experience is better and the hiring pool is larger (more developers know REST than gRPC). We won’t rewrite working REST services just because gRPC is theoretically better.

The same principle applies to MCP. If you mandate gRPC, you exclude the vast majority of developers who build tools with REST. If you support both, you get the best of both worlds — accessibility for the long tail and performance for the high-end.

My bottom line: support gRPC as an option, don’t mandate it as the default. The ecosystem’s breadth matters more than any single transport’s performance characteristics.

Reading this thread as a product person, and I want to reframe the entire conversation because I think we’re optimizing for the wrong variable.

The Protocol Doesn’t Matter. The Ecosystem Does.

I’ve spent my career in platform businesses — Google APM, then Airbnb, now building a B2B platform. The single biggest lesson I’ve learned: platforms win or lose based on the number of third-party developers who build on them, not on the technical elegance of the underlying protocol.

Let me give you the analogy that keeps running through my head:

The iPhone didn’t win because it had the best operating system kernel. It won because Apple made it relatively easy for any developer to build an app, submit it to the store, and reach millions of users. The developer experience — Xcode, Swift, well-documented APIs — was the competitive moat, not the technical substrate.

MCP is in the same position right now. It’s early. The protocol is gaining traction. The thing that will determine whether MCP becomes the standard for AI tool integration is how many developers build MCP servers for their tools. That number is directly correlated with how easy it is to build one.

The gRPC Question Through a Product Lens

So here’s my evaluation framework — not “is gRPC technically better?” but “does gRPC make it easier or harder for a developer to build their first MCP integration?”

Current state (REST/SSE transport):

  • Developer reads the MCP spec
  • Writes a Python or TypeScript server
  • Exposes JSON endpoints
  • Tests with curl or Postman
  • Ships it in an afternoon

Proposed state (gRPC transport):

  • Developer reads the MCP spec
  • Learns Protocol Buffers (new skill for many)
  • Sets up protobuf compilation pipeline
  • Generates server stubs
  • Builds the service implementation
  • Tests with specialized gRPC tooling
  • Ships it in… a few days? A week?

That delta — from “an afternoon” to “a few days” — is the difference between a vibrant ecosystem and a niche one. I’ve seen this exact pattern kill platform adoption at multiple companies.

My Recommendation

Keep the barrier as low as REST/JSON for building MCP servers. That’s the on-ramp. Make gRPC available as an optional optimization for teams that need the performance. But never, ever make it a requirement for participation in the ecosystem.

The developers building the 10,000th MCP tool integration (the long tail that makes the platform valuable) are not infrastructure engineers who live in protobuf-land. They’re full-stack developers, indie hackers, and small teams who want to expose their tool to AI agents with minimal friction.

Build for them first. Optimize for the power users second. That’s how platforms win.