DEV Community

Barbara Wu
Barbara Wu

Posted on

MCP vs A2A: The Two Protocols Defining the AI Agent Economy

One lets agents "use tools," the other lets agents "talk to each other" — understand these two protocols, and you understand the foundation of the 2026 AI Agent ecosystem.

In March 2026, the hottest topic in the AI Agent space isn't which model is stronger — it's the protocol wars. Anthropic's MCP (Model Context Protocol) and Google's A2A (Agent2Agent Protocol) are defining the infrastructure of the Agent economy.

As a developer who has contributed code to LangChain and Haystack, and runs agents on OpenClaw daily, I want to decode from a practitioner's perspective: what problems do these two protocols solve? How do they work together? What do they mean for developers?


First, A Story: Why Do We Need Protocols?

Imagine you run a company with three AI Agent employees:

  • Agent R: Market research — good at search and data analysis
  • Agent C: Coding — can operate GitHub and databases
  • Agent F: Finance — can access ERP and banking systems

Problem 1: Agent R needs to query sales data from the database — how does she connect?
→ This is what MCP solves: letting agents use tools.

Problem 2: Agent R finishes her analysis and needs to hand results to Agent C to write an automation script — how do they communicate?
→ This is what A2A solves: letting agents talk to each other.

Without MCP, agents are "brains without hands." Without A2A, agents are "isolated islands." Together, they form a complete Agent economy.


MCP: Giving Agents Hands and Feet

What is MCP?

MCP (Model Context Protocol) is an open protocol launched by Anthropic in November 2024.

MCP is the USB standard of the Agent world — one protocol to connect all tools.

Before MCP, every AI app needed separate integration code for each tool. MCP unifies this: build one MCP Server, and any MCP-compatible agent can use it.

Architecture: Three-Layer Design

┌──────────────────────────────────┐
│          MCP Host                │  ← App running the agent
│  (Claude Desktop, VS Code)       │    (like the "OS")
├──────────────────────────────────┤
│         MCP Client               │  ← Communication middleware
│   (Protocol impl, JSON-RPC)      │    (like a "driver")
├──────────────────────────────────┤
│         MCP Server               │  ← Tool provider
│  (GitHub, Database, Slack...)    │    (like a "USB device")
└──────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

Key design: The Host acts as a Security Broker — all agent-to-resource interactions go through the Host. Like an OS controlling hardware access — agents can't bypass the Host to directly operate tools.

Three Core Primitives

Primitive Purpose Example
Tools Functions agents can call search_web(query), create_issue(title)
Resources Data agents can read Database tables, file contents, API responses
Prompts Pre-defined interaction templates "Summarize the following data in a table..."

Communication: JSON-RPC 2.0

MCP uses JSON-RPC 2.0 under the hood — stateless, transport-agnostic, simple and reliable. A real tool call looks like:

// Agent  MCP Server (request)
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "query_database",
    "arguments": {
      "sql": "SELECT product, SUM(revenue) FROM sales GROUP BY product"
    }
  }
}

// MCP Server  Agent (response)
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [{
      "type": "text",
      "text": "Product A: $120,000\nProduct B: $89,000\nProduct C: $210,000"
    }]
  }
}
Enter fullscreen mode Exit fullscreen mode

November 2025 Major Update

  • Tasks primitive: Async long-running operations (previously sync-only)
  • OAuth 2.1: Enterprise-grade authentication
  • Resource Indicators: Prevents malicious servers from stealing access tokens

Ecosystem Status

  • SDK downloads: 97M+/month (Python + TypeScript)
  • Official MCP Servers: 50+
  • Supported Hosts: Claude Desktop, VS Code, Cursor, Windsurf, OpenClaw...

A2A: Letting Agents Talk to Each Other

What is A2A?

A2A (Agent2Agent Protocol) was launched by Google in April 2025, now hosted by the Linux Foundation.

A2A is the telephone network of the Agent world — letting different agents discover, communicate, and collaborate.

Why Do Agents Need Inter-Communication?

Because real-world tasks require multiple specialists. Your "customer service agent" is great at conversation but doesn't understand refund processes. Your "finance agent" knows refunds but doesn't understand what the customer is saying. They need to talk to each other to complete "customer requests a refund."

Four Core Concepts

1. Agent Card (Business Card)

Every A2A agent publishes a JSON "business card" telling the world who they are and what they can do:

// https://finance-agent.example.com/.well-known/agent-card.json
{
  "name": "FinanceAgent",
  "description": "Handles refunds, reconciliation, budget approvals",
  "url": "https://finance-agent.example.com/a2a",
  "capabilities": {
    "streaming": true,
    "pushNotifications": true
  },
  "skills": [
    {
      "id": "process-refund",
      "name": "Process Refund",
      "description": "Process refund requests by order ID and reason"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Analogy: An Agent Card is like a LinkedIn profile — other agents read your Card to decide whether to collaborate with you.

2. Task

The core unit of work in A2A, with a full lifecycle:

submitted → working → completed
                  ↘ input-required (needs more info)
                  ↘ failed
Enter fullscreen mode Exit fullscreen mode

Key features: supports long-running operations, multi-turn interaction, real-time status sync via SSE.

3. Message

Agents exchange information via Messages, each with a role (user / agent) and content (Parts).

4. Artifact

The output when an agent completes a task — can be text, files, or structured data.

A2A Workflow

Customer Service Agent              Finance Agent
    │                                    │
    │ 1. GET /.well-known/agent-card     │
    │───────────────────────────────────→ │
    │ 2. Returns Agent Card              │
    │ ←─────────────────────────────────│
    │                                    │
    │ 3. POST /a2a (create refund Task)  │
    │───────────────────────────────────→ │
    │ 4. Task status: working            │
    │ ←─────────────────────────────────│
    │                                    │
    │ 5. Poll status                     │
    │───────────────────────────────────→ │
    │ 6. completed + Artifact (receipt)  │
    │ ←─────────────────────────────────│
Enter fullscreen mode Exit fullscreen mode

Ecosystem Status

  • 150+ enterprises supporting (Google, Salesforce, SAP, Atlassian...)
  • Hosted by Linux Foundation
  • Latest version v0.3 (July 2025)
  • AWS Bedrock natively supports A2A

MCP vs A2A: Not Rivals — Partners

This is where many people get confused. MCP and A2A are not competitors. They solve completely different problems.

Dimension MCP A2A
Problem solved How agents use tools How agents collaborate
Direction Vertical: Agent ↔ Systems Horizontal: Agent ↔ Agent
Analogy USB port (connect peripherals) Phone network (call each other)
Launched by Anthropic (2024.11) Google (2025.04)
Protocol JSON-RPC 2.0 JSON-RPC 2.0 + SSE
Core abstractions Tools / Resources / Prompts Agent Card / Task / Artifact
Transparency Fully transparent (Host sees internals) Opaque (only knows skills)
Governance Anthropic-led Linux Foundation

How They Fit Together

          ┌────────────────────────────────────┐
          │         A2A Protocol Layer          │
          │   Agent ←── collaborate ──→ Agent   │
          │  (Service)                (Finance) │
          └─────┬────────────────────┬─────────┘
                │                    │
          ┌─────▼─────┐      ┌──────▼────┐
          │ MCP Layer │      │ MCP Layer │
          │Agent↔Tools│      │Agent↔Tools│
          └─────┬─────┘      └──────┬────┘
                │                    │
          ┌─────▼─────┐      ┌──────▼────┐
          │  CRM      │      │  ERP      │
          │  Chat logs│      │  Bank API │
          └───────────┘      └───────────┘
Enter fullscreen mode Exit fullscreen mode

MCP is vertical (agents connect down to tools). A2A is horizontal (agents connect to each other). A complete enterprise Agent system needs both.


Practical Example: Cross-Department Procurement

Let's wire everything together with a real scenario — user tells the Procurement Agent: "We need to purchase 200 new laptops."

# Step 1: Procurement Agent uses MCP to query internal systems
# (MCP: Agent → Tools)

inventory = mcp_call("erp_server", "check_inventory",
    {"item": "laptop", "quantity": 200})
# Result: 45 in stock, need to procure 155

budget = mcp_call("finance_server", "check_budget",
    {"department": "IT"})
# Result: remaining budget $72,500

# Step 2: Coordinate with other agents via A2A
# (A2A: Agent → Agent)

supplier_card = a2a_discover("supplier-agent.vendor.com")
# Reads supplier Agent's card: can quote, order, track logistics

quote_task = a2a_send_task(
    agent="supplier-agent.vendor.com",
    skill="get-quote",
    message="155 ThinkPad X1 Carbon, deliver to Shanghai HQ")
# Artifact: unit price $400, total $62,000, delivery 15 days

legal_task = a2a_send_task(
    agent="legal-agent.internal",
    skill="compliance-review",
    message="Supplier quote $62,000, please review compliance")
# Task: working → input-required → completed (approved)

# Step 3: Execute final operations via MCP
# (MCP: Agent → Tools)

po = mcp_call("erp_server", "create_purchase_order", {
    "vendor": "Lenovo",
    "items": [{"name": "ThinkPad X1", "qty": 155, "price": 400}],
    "total": 62000})

mcp_call("slack_server", "send_message", {
    "channel": "#procurement",
    "text": f"PO {po['id']} created, awaiting CFO approval"})
Enter fullscreen mode Exit fullscreen mode

Notice the alternating use of MCP and A2A: MCP handles "downward" operations on specific systems (ERP, Slack), A2A handles "lateral" coordination with other agents (supplier, legal). The entire workflow is automated, with human intervention only at critical points (CFO approval).


What This Means for Developers

What to learn now

  1. Build MCP Servers: The MCP ecosystem is in its "early App Store" phase — the platform exists, but quality apps are severely lacking. One high-quality MCP Server can get massive attention.

  2. Understand A2A Agent Cards: Designing good Agent Cards is like writing good API docs — your agent's discoverability depends on how well the Card is written.

  3. Master LangGraph + MCP + A2A: This is the standard tech stack for building production-grade Agent systems in 2026.

Where the opportunities are

Direction Opportunity Skills needed
MCP Server dev Domain-specific MCP connectors Python/TS + domain knowledge
A2A platforms Agent discovery and orchestration Distributed systems + Agent frameworks
Protocol bridging MCP ↔ A2A interoperability Deep knowledge of both protocols
Agentic Commerce Agents that shop for users MCP (payments) + A2A (price comparison)
Vertical domains Healthcare/legal/finance Agent solutions Protocols + industry expertise

My Practitioner's Take

As someone who contributes PRs to LangChain, runs agents on OpenClaw daily, and has built multi-agent systems with LangGraph:

  1. MCP is already the de facto standard. Regardless of which Agent framework you use, you'll end up calling tools through MCP. Learning MCP has extremely high ROI.

  2. A2A is early but directionally certain. Most multi-agent systems still use framework-internal communication (like LangGraph's state passing), but cross-framework, cross-organization agent collaboration will inevitably need a standard like A2A.

  3. The real barrier isn't the protocols — it's "agent design." Protocols are just communication pipes. How to split agent responsibilities, how to design Agent Cards that others want to use, how to handle trust and errors between agents — these design questions are the real competitive advantage.

  4. Non-English MCP Servers are blue ocean. Current official and community MCP Servers are almost entirely English-world focused. MCP Servers for Chinese users (WeChat, Alipay, Feishu, Chinese academic search) are nearly blank territory. The same applies to French, Dutch, and other language ecosystems.


Looking Ahead: Three-Layer Architecture of the Agent Economy

┌──────────────────────────────────────────────────┐
│              Application Layer                    │
│   Agentic Commerce · Agent Social (Moltbook)     │
│   Enterprise workflow automation · Personal AI    │
├──────────────────────────────────────────────────┤
│              Protocol Layer                       │
│      MCP (tool calls) + A2A (agent comms)        │
│      + UCP/ACP (commerce protocols)              │
├──────────────────────────────────────────────────┤
│           Infrastructure Layer                    │
│    LLM (Claude/GPT/Gemini) + Vector DBs          │
│    + Payments (Skyfire) + Identity/Auth           │
└──────────────────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

In 2026, we're standing at the starting line of the Agent economy. MCP and A2A are like HTTP and TCP/IP in the early internet — they look like mere technical protocols, but they're actually defining the foundational architecture of digital economy for the next decade.

For developers, now is the best time: the protocols are still early, the ecosystem has massive gaps, and those who build first benefit first.


Author: Barbara Wu — Open source contributor to LangChain & Haystack. PhD from Sorbonne University. Studied how language creates meaning, then discovered AI Agents are doing the same thing.

References:

Top comments (0)