A2A Meets MCP: The Multi-Agent Protocol Stack and What It Means for Codex
A2A Meets MCP: The Multi-Agent Protocol Stack and What It Means for Codex
Every multi-agent system needs two things: a way for agents to reach tools and data, and a way for agents to reach each other. Until recently, the agentic ecosystem conflated these concerns or left one of them entirely ad hoc. In 2026, two open protocols have crystallised as the canonical answer to each: the Model Context Protocol (MCP) for agent-to-tool communication, and the Agent-to-Agent (A2A) protocol for inter-agent coordination. Both now sit under the Linux Foundation’s Agentic AI Foundation (AAIF), and both matter for Codex CLI users building multi-agent workflows.
The Protocol Stack: Three Layers
The emerging consensus architecture separates agentic communication into distinct layers, each with a clear responsibility1:
graph TB
subgraph "The Agentic Protocol Stack"
L3["Layer 3: A2A<br/>Agent-to-Agent Coordination"]
L2["Layer 2: MCP<br/>Agent-to-Tool Communication"]
L1["Layer 1: WebMCP / llms.txt<br/>Structured Web Access"]
end
L3 --> L2
L2 --> L1
style L3 fill:#e8f4fd,stroke:#2196f3
style L2 fill:#fff3e0,stroke:#ff9800
style L1 fill:#e8f5e9,stroke:#4caf50
Layer 1 — WebMCP / llms.txt provides structured web access, giving agents a machine-readable view of web content. Layer 2 — MCP standardises how an individual agent connects to external tools, APIs and data sources. Layer 3 — A2A handles how autonomous agents discover, negotiate with and delegate work to each other1. Individual agents maintain their own MCP tool connections whilst coordinating with peer agents through A2A.
MCP: The Tool Layer
Anthropic introduced MCP in late 2024, and by February 2026 the protocol had crossed 97 million monthly SDK downloads across the Python and TypeScript implementations2. Every major AI provider now supports it: Anthropic, OpenAI, Google, Microsoft and Amazon2. The public registry lists over 5,800 MCP servers covering integrations from GitHub and Slack to PostgreSQL and Stripe2.
Architecture
MCP uses a client-server model with a JSON-RPC 2.0 wire format3. The client (typically an AI agent or host application) connects to a server that exposes four capability types:
- Resources — read-only data access
- Tools — executable actions the agent can invoke
- Prompts — reusable templates for common interactions
- Sampling — reverse LLM calls, letting the server request completions from the client3
Transport options include stdio for local processes, Server-Sent Events (SSE) for remote connections, and Streamable HTTP for production deployments3.
The 2026 Roadmap
The MCP maintainers have published a 2026 roadmap focused on four pillars: transport scalability (stateful sessions fighting load balancers), enterprise readiness (audit trails, SSO-integrated auth, gateway behaviour), governance maturation (contributor ladder, delegation model), and refined tool annotations for describing tool behaviour in agentic workflows4. Most enterprise features will land as extensions rather than core spec changes — a deliberate decision to keep the base protocol lightweight4.
A2A: The Coordination Layer
Google launched A2A in April 2025 to solve the problem MCP explicitly does not address: how do autonomous agents from different vendors discover and collaborate with each other without exposing their internal state?5 By August 2025, IBM’s Agent Communication Protocol (ACP) had merged into A2A, consolidating the space2. In early 2026, A2A reached v1.0 — its first production-ready release6.
Agent Cards and Discovery
A2A’s discovery mechanism is the Agent Card: a JSON manifest served at /.well-known/agent.json that declares an agent’s capabilities, supported interaction modalities, authentication requirements and endpoints5. Client agents fetch the card, assess whether the remote agent suits their task, and engage it — all without prior configuration2.
In v1.0, Agent Cards gained JWS signatures (RFC 7515) with RFC 8785 JSON canonicalisation, providing cryptographic verification of agent identity across organisational boundaries6. This is critical for enterprise deployments where you need to verify that the agent you’re delegating to is genuinely operated by the expected party.
Task Lifecycle
A2A is fundamentally task-oriented. A client agent submits a task to a remote agent, which progresses through a defined state machine5:
stateDiagram-v2
[*] --> SUBMITTED
SUBMITTED --> WORKING
WORKING --> INPUT_REQUIRED
INPUT_REQUIRED --> WORKING
WORKING --> COMPLETED
WORKING --> FAILED
WORKING --> CANCELED
COMPLETED --> [*]
FAILED --> [*]
CANCELED --> [*]
Remote agents can process tasks asynchronously, sending status updates and streaming artefacts back via Server-Sent Events5. This long-running task model is fundamentally different from MCP’s synchronous request-response cycle — and it’s what makes A2A suitable for coordinating agents that may take minutes or hours to complete their work.
v1.0 Breaking Changes
The jump to v1.0 brought significant changes that signal protocol maturity6:
| Change | Detail |
|---|---|
| Part type unification | TextPart, FilePart and DataPart collapsed into a single Part structure, discriminated by which content field is populated |
| Enum normalisation | All enums moved to SCREAMING_SNAKE_CASE with type prefixes (e.g. TASK_STATE_COMPLETED) |
| Three transport bindings | HTTP+JSON, gRPC and JSON-RPC, all with formal equivalence guarantees |
| Cursor-based pagination | Replaced offset-based pagination with nextCursor fields |
| Multi-tenancy | Native tenant field on request messages and AgentInterface objects |
| OAuth modernisation | Deprecated implicit and password flows; added Device Code flow (RFC 8628) and PKCE (RFC 7636) |
SDKs are available in Python, Go, JavaScript, Java and .NET7.
The AAIF: Neutral Governance
In December 2025, the Linux Foundation formed the Agentic AI Foundation (AAIF) with six platinum co-founders: OpenAI, Anthropic, Google, Microsoft, AWS and Block8. The foundation anchored three initial project contributions: Anthropic’s MCP, Block’s goose (an open-source agentic framework and MCP reference implementation), and OpenAI’s AGENTS.md8.
A2A followed in June 2025 when Google donated it to the Linux Foundation9. The practical consequence: both protocols now evolve under the same neutral governance umbrella, with convergence pressure built into the institutional structure. Neither Anthropic nor Google solely controls the specs2.
This matters for Codex CLI users because OpenAI is a platinum AAIF member. The organisational commitment to these standards makes it increasingly likely that Codex CLI will deepen its protocol support over time.
Codex CLI’s Current Position
Codex CLI has solid MCP support today. The CLI acts as an MCP client, connecting to both STDIO servers (local processes) and Streamable HTTP servers (remote endpoints)10. Configuration lives in config.toml at either the global (~/.codex/config.toml) or project level (.codex/config.toml), and is shared between the CLI and IDE extension10.
# ~/.codex/config.toml — MCP server configuration
[mcp_servers.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env = { GITHUB_TOKEN = "ghp_..." }
[mcp_servers.company-tools]
url = "https://tools.example.com/mcp"
bearer_token_env_var = "COMPANY_MCP_TOKEN"
Authentication covers static bearer tokens via environment variables and OAuth via codex mcp login10. Tool filtering with enabled_tools and disabled_tools provides fine-grained control over what the agent can access10.
The A2A Gap
Where Codex CLI falls short is the A2A layer. Today, Codex subagents communicate through an internal structured messaging system — parent spawns child, child returns result — with no standard protocol for cross-vendor agent discovery or delegation11. If you want a Codex agent to delegate work to a Claude Code agent, a Gemini agent, or a LangGraph-based specialist, there is no protocol-level way to do it.
This is the gap A2A is designed to fill. With A2A, a Codex agent could:
- Discover a remote specialist agent via its Agent Card at
/.well-known/agent.json - Verify the agent’s identity through its JWS-signed card
- Submit a task with structured input and receive streaming status updates
- Receive artefacts (code patches, analysis reports, test results) as the remote agent completes work
sequenceDiagram
participant C as Codex CLI Agent
participant AC as Agent Card<br/>/.well-known/agent.json
participant R as Remote Agent<br/>(Claude / Gemini / Custom)
C->>AC: GET /.well-known/agent.json
AC-->>C: Capabilities, auth, endpoints
C->>C: Verify JWS signature
C->>R: SendMessage (task submission)
R-->>C: TASK_STATE_WORKING (SSE stream)
R-->>C: TaskArtifactUpdate (partial results)
R-->>C: TASK_STATE_COMPLETED + final artefacts
What Codex CLI Needs
For Codex CLI to become a first-class citizen in the A2A ecosystem, several capabilities would need to land:
As an A2A client (delegating to remote agents):
- Agent Card fetching and JWS signature verification
- Task submission over HTTP+JSON or gRPC bindings
- SSE streaming for long-running task progress
- OAuth/PKCE authentication to remote agents
As an A2A remote agent (receiving delegated work):
- Serving an Agent Card at
/.well-known/agent.jsonthat describes Codex’s capabilities - Accepting incoming task submissions via the A2A protocol
- Reporting task state transitions and streaming artefacts back to callers
- Multi-tenancy support for enterprise deployments
The MCP client role is already solid. The A2A server role — exposing Codex as a callable agent — would be the more transformative addition, letting Codex participate in heterogeneous agent ecosystems orchestrated by any A2A-compatible coordinator.
Practical Implications for Multi-Agent Workflows
For Codex CLI users building multi-agent systems today, the protocol landscape creates a decision framework:
| Need | Protocol | Codex CLI Support |
|---|---|---|
| Connect agent to external tools | MCP | ✅ Full support |
| Coordinate Codex subagents | Internal messaging | ✅ Built-in |
| Delegate to non-Codex agents | A2A | ❌ Not yet |
| Expose Codex as a remote agent | A2A | ❌ Not yet |
| Cross-vendor agent discovery | A2A Agent Cards | ❌ Not yet |
In the meantime, workarounds exist. You can bridge the gap with shell-based orchestration (spawning multiple CLI agents with GNU parallel), MCP server wrappers that expose Codex via MCP’s tool interface12, or external orchestrators like the OpenAI Agents SDK that can invoke codex exec as a tool13. None of these provide the structured task lifecycle, streaming progress updates or cryptographic agent verification that A2A offers natively.
The Convergence Thesis
The institutional structure of the AAIF, with both MCP and A2A under one roof and all major AI vendors as platinum members, creates strong convergence pressure8. The protocols are not competing — they address different layers of the same stack. The question is not whether Codex CLI will support A2A, but when.
Given that OpenAI contributed AGENTS.md as a founding AAIF project and sits on the governing board alongside the A2A stewards, the alignment is clear8. For Codex CLI users, the practical advice is: invest heavily in MCP integrations now (they will remain the tool layer regardless), structure your multi-agent workflows to be protocol-agnostic where possible, and watch the Codex CLI changelog for A2A client support — it would be the single most impactful addition for cross-vendor agent interoperability.
Citations
-
MCP vs A2A: The Complete Guide to AI Agent Protocols in 2026 — DEV Community, 2026 ↩ ↩2
-
MCP vs A2A: The Complete Guide to AI Agent Protocols in 2026 — Pockit Blog, 2026 ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
MCP vs A2A Protocol: Differences Explained — Toolradar, 2026 ↩ ↩2 ↩3
-
The 2026 MCP Roadmap — Model Context Protocol Blog, 2026 ↩ ↩2
-
What Is Agent2Agent (A2A) Protocol? — IBM Think, 2026 ↩ ↩2 ↩3 ↩4
-
What’s New in v1.0 — A2A Protocol, 2026 ↩ ↩2 ↩3
-
A2A Protocol — Official A2A documentation ↩
-
Linux Foundation Announces the Formation of the Agentic AI Foundation (AAIF) — Linux Foundation, December 2025 ↩ ↩2 ↩3 ↩4
-
Google Cloud donates A2A to Linux Foundation — Google Developers Blog, 2025 ↩
-
Model Context Protocol – Codex — OpenAI Developers, 2026 ↩ ↩2 ↩3 ↩4
-
Subagents – Codex — OpenAI Developers, 2026 ↩
-
Codex CLI MCP Server — GitHub ↩
-
Use Codex with the Agents SDK — OpenAI Developers, 2026 ↩