Skip to content
All posts

A2A vs MCP: Two Different Answers to 'How Should AI Agents Talk?'

Model Context Protocol and Agent2Agent solve related but distinct problems in the AI agent stack. Here's how they differ, and when you actually need each one.

Nathan Levine

4 min read

A2A vs MCP: Two Different Answers to 'How Should AI Agents Talk?'

If you've been building with LLMs over the past year, you've probably run into both of these acronyms and had a vague sense they're "for agent stuff" without being totally sure where one ends and the other begins. That confusion is reasonable — they were built by different teams to solve different halves of the same problem.

The short version: MCP connects an agent to its tools and data. A2A connects an agent to other agents. One is about giving a single model hands and eyes. The other is about letting separate, independently-built agents collaborate without knowing each other's internals.

Multiple connected nodes representing distributed systems

MCP: standardizing how a model reaches the outside world

Model Context Protocol, introduced by Anthropic, solves a problem every team building LLM applications had independently reinvented: every tool integration was a bespoke, one-off adapter. Want your model to query a database, hit an internal API, and read from a file system? You wrote three different glue layers, each shaped by whatever SDK or framework you happened to be using.

MCP standardizes that boundary. An MCP server exposes a set of capabilities — tools, resources, prompts — over a common protocol. An MCP client, embedded in whatever agent or application you're running, discovers and calls those capabilities the same way regardless of what's on the other end. The mental model is close to what USB-C did for peripherals: one connector shape, many devices behind it.

Practically, this means:

  • Tool authors write one MCP server instead of N framework-specific plugins.
  • Agent frameworks that speak MCP get the entire ecosystem of MCP servers "for free."
  • The scope is deliberately narrow — it's about a single agent's context and capabilities, not about coordinating multiple agents.

A2A: standardizing how agents delegate to each other

Agent2Agent, originally put forward by Google and now under broader industry stewardship, targets a different layer. Once you have multiple agents — maybe one specialized in scheduling, another in code review, another owned by a completely different vendor — how do they hand work to each other without every pair needing a custom integration?

A2A defines a protocol for agent discovery (via "agent cards" describing capabilities), task delegation, and streaming results back, all without requiring one agent to know the internal implementation, framework, or even the model powering the other. It treats each agent as a black box with a well-defined interface, which matters a lot in enterprise contexts where you genuinely don't want — or aren't allowed — to expose internal reasoning or tooling across an org boundary.

Where they overlap, and where they don't

It's tempting to think of these as competitors, but they're closer to complementary layers in the same stack:

| | MCP | A2A | |---|---|---| | Connects | Agent ↔ tools/data | Agent ↔ agent | | Unit of work | Tool call | Task delegation | | Typical scope | Single application boundary | Cross-team, cross-vendor boundary | | Analogy | USB-C for tools | HTTP for agent-to-agent requests |

A realistic system uses both: an orchestrating agent talks to specialized sub-agents over A2A, and each of those sub-agents reaches its own tools and data sources over MCP. Neither protocol tries to do the other's job, and trying to force one to cover both concerns tends to produce awkward designs — MCP servers pretending to be autonomous agents, or A2A agents exposing raw tool calls instead of task-level interfaces.

What I'd actually recommend

If you're building a single agent that needs to read files, hit APIs, or query a database, reach for MCP — there's already a wide ecosystem of servers, and rolling your own adapter layer at this point is mostly wasted effort.

If you're coordinating multiple independently-deployed agents — especially across team or organizational boundaries — A2A is worth adopting specifically because it keeps that black-box separation intact. Don't reach for it just to let two tools inside your own codebase talk to each other; that's almost always simpler as a direct function call or an MCP tool.

The bigger trend underneath both of these is the one I keep coming back to: the industry is converging on standard protocols for agent interoperability instead of everyone building bespoke integrations forever. That's good news for anyone building agentic systems right now — the plumbing is finally becoming boring, which means more time can go toward the actual product logic.

Thanks for reading. If this was useful, the newsletter below is the best way to catch the next one.

Keep reading

More essays