Quick Comparison
Unified Status System
✨ New in AdCP 1.6.0: Both protocols now use the same status field with A2A TaskState values.Status Handling (Both Protocols)
Every response includes a status field that tells you exactly what to do:
See Core Concepts for complete status handling guide.
Transport Format Differences
Same status and data, different packaging:MCP Response Format
A2A Response Format
Async Operation Differences
Both protocols handle async operations with the same status progression:submitted → working → completed/failed
MCP Async Pattern
A2A Async Pattern
Push Notification Architecture
Both MCP and A2A use HTTP webhooks for async task updates. AdCP keeps the envelope format protocol-specific while using identical data schemas for the business payload.Key Principles
- Same data, different envelopes: The AdCP payload (media buy data, product lists, etc.) is identical regardless of protocol
- Protocol-native delivery: MCP uses
mcp-webhook-payload.json, A2A uses nativeTaskobjects - Unified configuration: Both use
pushNotificationConfigwith the same authentication structure
- MCP webhooks: See MCP Guide - Async Operations
- A2A webhooks: See A2A Guide - Push Notifications
Task Management
Both protocols now provide equivalent task management capabilities:MCP: AdCP Tasks
A2A: Native RPC Methods
Server Decision Making
In both protocols, the server decides whether to use webhooks:- Quick operations (< 120s): Returns
working, ignores webhook configuration - Long operations (hours/days): Returns
submitted, uses webhook if provided - Fallback: Clients can always poll regardless of webhook configuration
Clarification Handling
Before AdCP 1.6.0: Different approaches for each protocolAfter AdCP 1.6.0: Same pattern using
status: "input-required"
Unified Clarification Pattern
Example: Clarification Flow
User: “Find video products”AdCP Response:
Human-in-the-Loop Workflows
Both protocols handle approvals usingstatus: "input-required":
Context Management
MCP: Manual Context
A2A: Automatic Context
Operation Examples
Product Discovery
MCP:Error Handling
Both usestatus: "failed" with same error structure:
Choosing a Protocol
Choose based on your ecosystem and preferences:Choose MCP if you’re using:
- Claude Desktop or Claude Code
- MCP-compatible AI assistants
- Simple tool-based integrations
- Direct JSON responses
Choose A2A if you’re using:
- Google AI agents or Agent Engine
- Multi-modal workflows (text + files)
- Real-time streaming updates
- Artifact-based data handling
Both protocols provide:
- ✅ Same AdCP tasks and capabilities
- ✅ Unified status system for clear client logic
- ✅ Context management for conversations
- ✅ Async operation support
- ✅ Human-in-the-loop workflows
- ✅ Error handling and recovery
Migration Between Protocols
The unified status system makes it easy to switch protocols:Next Steps
- Core Concepts: Read Core Concepts for status handling patterns
- MCP Guide: See MCP Guide for tool calls and context management
- A2A Guide: See A2A Guide for artifacts and streaming
- Migration: Both protocols provide the same capabilities with unified status handling