Skip to content
Deep Dive mcp a2a spoke

MCP vs A2A: A Decision Table

If you're building an agent and trying to decide which protocol to use for what, here's the decision table.

The two protocols

  • MCP (Model Context Protocol, spec) — for tools. The agent's Brain calls an external function. Stateless, typed, vendor-neutral.
  • A2A (Agent2Agent, spec) — for agents. One agent delegates a task to another. Stateful task object with state machine, principal identity, report-back channel.

The Pillar P2 essay covers the architectural distinction. This spoke is the rule-of-thumb table for picking which one to use.

The decision table

Scenario Protocol Why
Read a row from your Postgres database MCP It's a function call. No identity needed.
Call Stripe to refund a charge MCP Same. Function with typed input + output.
Ask another agent (yours, intra-firm) to review a case A2A The receiver is an agent with its own work queue + budget.
Ask another firm's KYC agent to review your customer A2A Cross-firm delegation. Identity + audit + billing all matter.
Run a complex sub-task in parallel with the parent A2A The sub-task is itself agent-shaped (reasoning loop, retries).
Send a notification to Slack MCP Function call. No conversation needed.
Spawn a debugging agent to investigate a failure A2A The debugger is itself an agent.
Translate a string MCP Stateless function.
Get a second opinion on a hard reasoning call A2A The reviewer is reasoning, not transforming.

When the call is borderline

Two tells that you've picked the wrong protocol:

  1. MCP call grows a state machine. If your "tool" is tracking task state across multiple calls, it's actually an agent. Switch to A2A.
  2. A2A call is just one round-trip. If your "delegation" is request + response with no intermediate state, it's actually a function call. Switch to MCP.

Auth contexts — common confusion

MCP auth is the calling agent's auth: a token scoped to what the agent is permitted to do.

A2A auth is the calling firm's auth: a token attesting which firm is delegating, so the receiver can decide whether to accept.

Confusing the two breaks the audit trail and may trigger SOC 2 access-control findings during attestation.

FAQ

Q: What if the receiving system is human-staffed?
A: A2A handles this too — the receiver can be a "human-as-agent" stub that routes to a real person via Slack or email. The task state machine still applies.

Q: What about systems that speak neither protocol?
A: Wrap them. A legacy SOAP API becomes an MCP server (3-line wrapper). A partner firm's REST endpoint becomes either MCP (if function-shaped) or A2A (if agent-shaped).

Q: Are MCP and A2A actually orthogonal?
A: Yes. They sit at different layers. The Brain talks MCP outbound. The Friends graph talks A2A outbound. Both layers operate concurrently in the same agent.


Want MCP + A2A working in your firm? Start free →

🚀 Ready to build this yourself?

Create the agent described in this article in under 2 minutes — no code required.

Try It Free → Book a Demo
Share this article
𝕏 Share 🔗 LinkedIn
Playbooks

Turn this into a working agent

Browse all playbooks →

Ready to build this agent?

Setup takes less than 2 minutes. No coding required.

Start Building Free →
Image
Copy link
X
LinkedIn
Reddit
Download