Picture this: a travel-booking agent receives a user mandate specifying budget, constraints, and preferred payment method. It discovers a merchant's booking API through a published Agent Card, negotiates the itinerary over a structured commerce protocol, and settles the transaction in USDC — presenting a cryptographic proof of legitimacy to the merchant along the way. The merchant never interacts with a human. The human never leaves their app.
Eighteen months ago this was a thought experiment. In April 2026 it is a deployment pattern. The protocols that make it possible — MCP, A2A, AP2, UCP, ACP, TAP, x402, and a supporting cast of coordination standards — have converged into a composable stack governed by the Linux Foundation's Agentic AI Foundation (AAIF). Each layer solves a distinct problem. Together they turn narrow, instruction-following chatbots into autonomous actors capable of accountable, structured action in the real world.
This post maps that stack: what each protocol does, how they fit together, and what builders should prioritise adopting. Where relevant, honest notes on what is still maturing are included. The ecosystem is moving fast but not finished.
The Stack at a Glance
| Layer | Protocol | Primary Purpose | Key Adopters |
|---|---|---|---|
| Foundation | MCP | Standardised agent–tool connectivity (JSON-RPC) | Anthropic, OpenAI, Google, Microsoft, AWS |
| Coordination | A2A | Agent discovery and task delegation | Google, Linux Foundation |
| Authorisation | AP2 | Cryptographic spending mandates for agents | Google, Coinbase, card networks |
| Commerce | UCP | Full agent–merchant commerce sessions | Google, Shopify |
| Commerce | ACP | In-chat instant checkout | OpenAI, Stripe |
| Trust | TAP | Agent legitimacy passports for merchants | Visa, major card networks |
| Payments | x402 | Native HTTP micropayments (USDC / L2) | Coinbase, Base network |
| UI | AG-UI | Real-time agent–frontend interaction streaming | AAIF, Vercel, CopilotKit |
| Discovery | NLWeb | Natural-language query layer over any website | Microsoft, major CMS platforms |
| Instructions | AGENTS.md | Per-project guidance file for coding agents (build steps, conventions, testing) | OpenAI, major hosting platforms |
The Foundational Layer: Model Context Protocol (MCP)
MCP is the USB of AI — a single, standardised connector between an agent and any external capability. Anthropic open-sourced it in late 2024, contributed it to the Agentic AI Foundation in December 2025, and the ecosystem grew to tens of thousands of servers and tens of millions of SDK downloads within months. It is now the most widely deployed protocol in the stack by a significant margin.
How MCP Works
MCP uses JSON-RPC 2.0 over stdio or HTTP/SSE. An MCP server exposes a declared set of tools, resources, and prompts. When an agent needs to invoke a capability — query a database, trigger a webhook, read a file, call a third-party API — it sends a tools/call request to the relevant MCP server. The server executes the action and returns a structured result. The agent never handles raw credentials directly; the MCP server owns the integration surface.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_flights", "arguments": { "origin": "LHR", "destination": "JFK", "date": "2026-05-15", "cabin": "economy" } } }
Why MCP Won
Before MCP, every agent framework had its own integration pattern — custom function schemas, bespoke API wrappers, framework-specific tool decorators that locked capability code to a single orchestration layer. MCP breaks that lock. A tool built once as an MCP server works with LangGraph, CrewAI, the OpenAI Agents SDK, Google ADK, and any other MCP-compatible runtime without modification. The ecosystem network effect is self-reinforcing: more servers attract more runtimes, which attract more server authors.
MCP servers now exist for every major database (Postgres, MySQL, Redis, MongoDB), cloud platform (AWS, GCP, Azure), productivity suite (GitHub, Notion, Google Workspace), browser automation (Playwright, Stagehand), and payment processor (Stripe, Coinbase, PayPal). For most capability integrations, the server already exists — you connect to it, you do not build it.
Start with MCP. It is the most mature layer, has the largest server ecosystem, and is the prerequisite capability bus that every other protocol in this stack builds on top of.The Coordination Layer: Agent-to-Agent Protocol (A2A)
MCP connects an agent to tools. A2A connects agents to each other. Originally developed by Google and donated to the Linux Foundation in 2025 as a standalone Agent2Agent project (separate from AAIF), A2A handles agent discovery, task delegation, capability negotiation, and result streaming between autonomous agents that may be built on entirely different frameworks and run by different organisations.
Agent Cards
Every A2A-compatible agent publishes an Agent Card — a JSON document served at /.well-known/agent.json — that declares the agent's capabilities, supported input and output modalities, authentication requirements, and pricing. An orchestrating agent discovers a subagent by fetching its Agent Card, then issues structured A2A tasks to it.
{ "name": "FlightBookingAgent", "description": "Books economy and business-class flights via GDS.", "url": "https://flights.example.com/agent", "version": "1.2.0", "capabilities": ["flight_search", "fare_comparison", "booking"], "authentication": { "schemes": ["bearer"] }, "pricing": { "per_booking": "0.50 USDC" } }
A2A and MCP Together
A2A and MCP operate at different abstraction levels and are designed to coexist. MCP is the intra-agent tool bus — how a single agent calls external capabilities. A2A is the inter-agent communication layer — how a network of agents delegates work. A well-architected system uses both: the orchestrating agent uses MCP to access its own tools and A2A to hand off subtasks to specialist agents that each have their own MCP-connected capability sets.
The Payments and Commerce Layers
Trust and coordination get an agent to the checkout. A separate family of protocols handles what happens there: authorisation, negotiation, payment, and proof of legitimate intent. Five protocols now compose this layer and — like Visa and Mastercard coexisting in human commerce — they are not converging into one.
AP2 — Agent Payments Protocol
AP2 introduces cryptographic spending mandates: structured, signed authorisation objects that an agent carries into a commerce session. A mandate is issued before the session begins and specifies what the agent is authorised to purchase, up to what value, with what constraints, and which payment methods are permitted.
AP2 mandates follow a three-stage structure that mirrors a purchasing workflow:
| Stage | Object Type | Contains |
|---|---|---|
| Intent | IntentMandate | Category, maximum budget, merchant constraints, expiry |
| Cart | CartMandate | Specific items, quantities, confirmed total |
| Payment | PaymentMandate | Payment method, settlement amount, merchant ID, timestamp |
AP2 is payment-method agnostic. USDC, traditional card rails, and bank transfers are all supported via the payment method field. The mandate structure creates an audit trail — every purchase is traceable back to an authorisation event, giving users and platforms accountability without requiring manual approval at each step.
# Pseudocode: agent uses an AP2 mandate in a checkout flow from ap2_sdk import MandateClient, CartMandate client = MandateClient(agent_id="agent-abc") # Retrieve the pre-issued intent mandate for this session intent = client.get_mandate(session_id=ctx.session_id) # Build a cart from search results and lock it into a CartMandate cart = CartMandate( items=selected_items, total=310.00, currency="USDC", intent_ref=intent.id ) # Submit cart to merchant for checkout order = await merchant.checkout(cart_mandate=cart) print(order.confirmation_id)
UCP — Universal Commerce Protocol
Where AP2 governs the mandate (what the agent is authorised to do), UCP governs the commerce session itself. Co-developed by Google and Shopify and launched in January 2026, UCP defines the full agent–merchant lifecycle: product discovery, capability negotiation, cart management, dynamic checkout, and order confirmation.
UCP is the protocol that makes agent-native storefronts possible. A Shopify merchant that implements UCP exposes a structured endpoint agents can query directly — no screen scraping, no brittle CSS selectors. It supports agent-specific flows like bulk pricing negotiation, automated return authorisation, and structured inventory queries. Major retailers are integrating UCP alongside their human-facing checkout flows rather than as a replacement.
ACP — Agentic Commerce Protocol
OpenAI and Stripe's variant targets in-chat instant purchase scenarios. Where UCP handles full commerce sessions, ACP is optimised for one-shot, low-friction transactions triggered mid-conversation — buying a single item, adding a subscription, or tipping a creator without leaving the chat interface. ACP integrates directly with Stripe's payment infrastructure and is the primary protocol in use across OpenAI's GPT Store integrations.
TAP — Trusted Agent Protocol
Visa's contribution to the stack solves a distinct problem: how does a merchant know the agent sending a purchase request is a legitimate actor and not a bot, a fraudulent impersonator, or a misconfigured automation? TAP issues cryptographic passports to registered agents. When the agent makes a request it signs it using HTTP Message Signatures (RFC 9421) with its TAP-issued credential. Merchants verify the signature against Visa's trust registry before processing the transaction.
TAP and AP2 address different concerns and work well together. AP2 proves the agent has authorisation to spend; TAP proves the agent itself is a registered, non-revoked actor in the commerce network. A transaction carrying both credentials gives a merchant strong assurance on both dimensions — legitimate actor, legitimate authorisation.
x402 — Native Micropayments via HTTP
x402 revives the long-dormant HTTP 402 Payment Required status code as a machine-native payment flow. When an agent requests a resource that requires payment, the server returns a 402 response with a structured payment request. The agent pays (typically in USDC over a Layer 2 network), includes a payment receipt header in the retry request, and receives the resource. No payment UI, no redirects, no human intervention required.
x402 is best suited for per-request API monetisation — data feeds, AI inference endpoints, premium content — rather than full cart-based commerce. Coinbase's open-source x402 implementation has become the de-facto reference for developers building payable API endpoints.
HTTP/1.1 402 Payment Required Content-Type: application/json { "x402Version": 1, "accepts": [{ "scheme": "exact", "network": "base", "maxAmountRequired": "1000000", "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "payTo": "0xMERCHANT_ADDRESS", "extra": { "name": "USDC", "decimals": 6 } }] }
Supporting and Complementary Protocols
The core stack is surrounded by a layer of protocols that handle UI generation, web discoverability, and agent behavioural guidance. Most builders will not implement all of these, but they fill genuine gaps in the agentic experience.
| Protocol | Purpose | Status |
|---|---|---|
| AG-UI | Standardised event stream between agents and frontend clients — enables real-time token streaming, tool call events, and state updates in any UI framework | Production — AAIF-governed, Vercel and CopilotKit integrated |
| A2UI | Higher-level UI generation protocol — agents can dynamically construct UI components in response to user context | Early production |
| NLWeb | Natural-language query interface layer over any website — makes existing web content agent-queryable without API changes or dedicated MCP servers | Live — major CMS platforms shipping plugins |
| AGENTS.md | Per-project guidance file for coding agents (a README written for agents) — declares build/test commands, code conventions, project structure, and how to validate changes | Widely adopted across coding-agent tools (Codex, Claude Code, Cursor, etc.) |
| ANP | Decentralised P2P agent networking — agent discovery and task routing without central directories | Early production — higher integration complexity than hosted alternatives |
AGENTS.md is worth highlighting for any team whose codebase is worked on by AI coding agents. Adding this file to your repository root gives coding agents (Codex, Claude Code, Cursor, and others) structured guidance about the project — build and test commands, code conventions, project structure, and how to run and validate changes. Think of it as a README written for agents rather than humans. It is not a runtime traffic-control file for web services and has nothing to do with endpoints or rate limits; it costs almost nothing to add and meaningfully improves how reliably agents navigate and modify your codebase.
The Governing Body: Linux Foundation's Agentic AI Foundation (AAIF)
One of the biggest structural risks in a multi-protocol ecosystem is fragmentation — competing implementations, incompatible versions, and protocol capture by dominant vendors. The Agentic AI Foundation, formed in December 2025 under the Linux Foundation, was created specifically to prevent this.
AAIF's founding contributions came from the three most widely deployed protocol implementations:
- Anthropic — Model Context Protocol (MCP)
- OpenAI — AGENTS.md specification
- Block — Goose, the open-source agentic runtime
Broad governance participation from Google, Microsoft, AWS, Salesforce, and others followed immediately. The foundation now maintains canonical specifications, conformance test suites, and reference implementations for MCP, goose, AG-UI, and AGENTS.md, and coordinates interoperability with the separately governed A2A project. Commercial implementations must pass conformance tests to carry the AAIF certification mark.
Neutral governance matters concretely for builders: it means the protocol you build on today will not be deprecated because one vendor pivoted, and interoperability between vendors is enforced by specification rather than left as aspirational.
Security Considerations and Implementation Difficulty
What the Stack Gets Right
The security posture of this stack is substantially stronger than the session-token and API-key model that underpins most of today's web integrations:
- AP2 mandates are scoped — an authorisation object cannot be used outside its stated constraints (category, merchant, amount ceiling, expiry). A compromised agent cannot spend arbitrarily.
- TAP signatures are non-repudiable — HTTP Message Signatures create an audit trail that cannot be fabricated after the fact.
- x402 receipts are on-chain — USDC settlement on a public L2 provides a permanent, verifiable payment record.
- A2A Agent Cards declare capabilities explicitly — an orchestrating agent knows exactly what a subagent can and cannot do before delegating work to it.
What Remains Hard
No protocol stack eliminates prompt injection attacks against the agent's reasoning layer. An adversarial merchant page that embeds instructions in product descriptions can still attempt to manipulate agent behaviour regardless of how well the commerce credentials are secured. Protocol-level security and agent-level security are separate concerns that require separate mitigations.
Do not assume that well-structured mandates and signed requests make your agent's reasoning secure. Implement domain allowlisting, system prompt hardening, and human-in-the-loop approval gates for high-value transactions independently of the protocol layer.Ease of Implementation
| Protocol | Ease (1=Hard, 5=Easy) | SDK / Tooling | Primary Complexity |
|---|---|---|---|
| MCP | 5 | Official SDKs: Python, TypeScript, Java, Go, Rust | Almost none — plug in an existing server |
| A2A | 4 | Google SDK, Linux Foundation reference implementation | Auth negotiation adds steps; Agent Card spec is straightforward |
| x402 | 4 | Coinbase open-source impl, CDPKit | Requires USDC / L2 familiarity |
| ACP | 4 | OpenAI + Stripe SDKs | Very easy if already on OpenAI + Stripe |
| UCP | 3 | Shopify Hydrogen plugin, Google SDK | Merchant-side integration is easy; custom implementations need more work |
| AP2 | 3 | ap2-sdk (Python/TS), Coinbase integrations | Mandate lifecycle management; expiry and revocation handling |
| TAP | 3 | Visa developer sandbox | HTTP Signature implementation is standard; Visa registration is gated |
| ANP | 2 | Limited — mostly reference implementations | Most teams should wait for higher-level abstractions |
| AG-UI | 4 | CopilotKit, Vercel AI SDK integration | Stream event mapping to UI framework |
A Concrete Stack: End-to-End Autonomous Purchase
Here is the full flow for the travel-booking scenario from the introduction, mapped to specific protocols at each step:
- User issues mandate (AP2) — User's app creates an IntentMandate: 'Book economy flights under £400 for these dates.' Signed and scoped to a travel merchant category.
- Agent discovers merchant (A2A) — Orchestrator fetches the airline's Agent Card from /.well-known/agent.json, confirming flight_search and booking capabilities and USDC as an accepted payment method.
- Commerce session (UCP) — Agent and airline exchange UCP messages: search, fare selection, seat selection, cart confirmation.
- Trust verification (TAP) — Before processing payment, the airline verifies the agent's TAP passport via HTTP Message Signature. Confirms the agent is a registered non-bot actor in Visa's trust registry.
- Mandate escalation (AP2) — Agent builds a CartMandate from the confirmed itinerary and submits it to the merchant, who validates it against the IntentMandate constraints before accepting.
- Payment (x402 or AP2 PaymentMandate + USDC) — Agent settles in USDC over Base L2. Payment receipt is stored in the PaymentMandate for auditability.
- Confirmation returned to user — Agent posts a structured confirmation back through the originating session, referencing mandate IDs for the audit trail.
# Simplified pseudocode for steps 2–5 import httpx from a2a_sdk import AgentCard, A2ASession from ucp_sdk import CommerceSession from ap2_sdk import CartMandate, MandateClient # Step 2 — A2A discovery card = AgentCard.fetch("https://flights.example.com/.well-known/agent.json") assert "flight_search" in card.capabilities # Step 3 — UCP commerce session session = CommerceSession(merchant_url=card.url) results = await session.search(origin="LHR", destination="JFK", date="2026-05-15") cart = await session.select(flight_id=results[0].id, seat="economy") # Step 5 — Build and submit AP2 CartMandate mandate_client = MandateClient(agent_id="agent-abc") cart_mandate = CartMandate( items=cart.items, total=cart.total_usd, currency="USDC", intent_ref=ctx.intent_mandate_id ) order = await session.checkout(cart_mandate=cart_mandate, payment_method="usdc") print(order.confirmation_id)
Implications for Builders and Enterprises
For Developers: Adoption Sequence
The stack is composable. You do not need all of it to get value. A pragmatic adoption path:
- MCP — Connect your agent to capabilities via MCP servers. For most integrations the server already exists; configure and connect rather than build.
- A2A — If you are building multi-agent systems or integrating with third-party agents, implement A2A for structured discovery and task delegation.
- x402 — If you are monetising an API or data service, add x402. It is the lowest-friction entry point for agent-native payments and works independently of the rest of the commerce stack.
- AP2 + TAP + UCP — Implement these when building or integrating with commerce flows. TAP registration is particularly important if you want mainstream merchant trust without custom vetting.
- AG-UI + AGENTS.md — Add AG-UI for real-time frontend streaming. Separately, if AI coding agents work on your codebase, add an AGENTS.md file at your repository root to give them build/test commands and project conventions (a repo guidance file, unrelated to serving live agent traffic).
For Enterprises and Merchants
The most consequential decision enterprises face is not which protocol to adopt — it is whether to integrate now or wait. The barrier has dropped significantly: Shopify's UCP plugin, Visa's TAP merchant SDK, and Stripe's ACP integration have all reached production-ready status with documented setup guides. Meanwhile, commerce flowing through agent-native channels is growing faster than traditional e-commerce. A storefront that is not agent-queryable is becoming the equivalent of a business without a website — not immediately fatal, but an increasing disadvantage.
Merchants: Start with UCP via the Shopify Hydrogen plugin (or the Google UCP SDK if not on Shopify) and add TAP registration via Visa's developer sandbox in parallel. Both can reach production in days, not months.Remaining Challenges and Why the Multi-Protocol Approach Is Healthy
The stack is maturing but several areas still need polish:
- UCP and ACP interoperability — The two commerce protocols are not yet fully cross-compatible. Merchants that implement both cover the broadest agent audience; the working groups are still finalising credential mapping between them.
- ANP decentralisation — Fully peer-to-peer agent discovery without central Agent Card directories is theoretically possible via ANP but practically uncommon. Most production systems still rely on hosted Agent Card endpoints.
- Regulatory clarity — Many jurisdictions have not yet clarified liability when an agent makes a purchase autonomously. AP2 mandates provide strong audit trails, but builders in regulated industries should consult legal counsel before enabling high-value autonomous transactions.
- Tooling for ANP and AP2 — SDK coverage for AP2 and ANP is still narrower than for MCP and A2A. Expect this to improve significantly through the second half of 2026 as reference implementations mature.
The multi-protocol shape of the commerce layer — AP2, UCP, ACP, TAP, and x402 coexisting rather than one winner — is not a failure of standardisation. It reflects genuine architectural diversity: in-chat micropayments, full merchant sessions, per-request API monetisation, and cross-network trust are different enough problems that optimised solutions look different. Neutral AAIF governance ensures they remain interoperable at the edges even as they diverge internally.
The builders who are most prepared are the ones who understand not just the protocols individually, but how they form a coherent stack. Standardised tooling enables discovery. Discovery enables coordination. Coordination enables commerce. Governance keeps it all from fracturing. Start at the bottom of that stack and build up — and you will be ready for what the second half of 2026 brings.