[ ABORT TO HUD ]
SEQ. 1
SEQ. 2
SEQ. 3
SEQ. 4
SEQ. 5
Building Multi-Protocol Systems
MCP + A2A + ADK: The Full Stack
Production agent systems in 2026 use multiple protocols together. Here's how they fit:
The Three-Protocol Architecture
┌─────────────────────────────────────────────────┐
│ YOUR AGENT (built with ADK) │
│ │
│ ┌────────────────┐ ┌─────────────────────┐ │
│ │ MCP Clients │ │ A2A Client │ │
│ │ (Tools/Data) │ │ (Agent Delegation) │ │
│ └───────┬────────┘ └──────────┬──────────┘ │
└──────────┼─────────────────────────┼────────────┘
│ │
┌──────▼──────┐ ┌──────▼──────────┐
│ MCP Servers │ │ Remote A2A │
│ • Database │ │ Agents │
│ • GitHub │ │ • Travel Agent │
│ • Slack │ │ • Legal Agent │
│ • Files │ │ • Finance Agent │
└─────────────┘ └─────────────────┘
When to Use Which
| Need | Protocol | Example |
|---|---|---|
| Read a database | MCP | Query customer records via MCP server |
| Call an API | MCP | Send a Slack message via MCP tool |
| Delegate a complex task | A2A | Ask a travel agent to book a trip |
| Get a second opinion | A2A | Ask a legal agent to review a contract |
| Orchestrate everything | ADK | Build the central agent with sub-agents |
Production Implementation
from google.adk import Agent, MCPTool, A2AClient
# MCP tools for direct data access
db_tool = MCPTool(server="postgres-mcp", tool="query_customers")
slack_tool = MCPTool(server="slack-mcp", tool="send_message")
# A2A clients for agent delegation
travel_agent = A2AClient("https://travel.example.com")
legal_agent = A2AClient("https://legal.example.com")
# Build the orchestrator
orchestrator = Agent(
name="executive_assistant",
model="gemini-3.1-pro",
tools=[db_tool, slack_tool],
a2a_agents=[travel_agent, legal_agent],
instruction="""You are an executive assistant.
Use MCP tools for data access (database, Slack).
Delegate to the travel agent for booking tasks.
Delegate to the legal agent for contract review."""
)
Integration Checklist
- ☐ Publish your Agent Card at
/.well-known/agent-card.json - ☐ Register MCP servers for all data/tool access
- ☐ Discover and validate remote A2A agents before production
- ☐ Implement BLOCKED state handling for A2A tasks
- ☐ Set up OpenTelemetry for cross-protocol observability
- ☐ Rate-limit A2A calls to prevent cascade failures
- ☐ Authenticate all inter-agent communication (OAuth 2.0)
🌐 The Big Picture: MCP is the agent's hands (tools). A2A is the agent's network (colleagues). ADK is the agent's skeleton (structure). Together, they create agents that can do anything a human knowledge worker can do.
SYNAPSE VERIFICATION
QUERY 1 // 3
When should you use A2A instead of MCP?
For reading files
When you need to delegate a complex task to a specialized agent, not just call a tool
For database queries
For authentication