HorizonLux · AI automation

Ship AI agents that reach production

Only about 5% of enterprise agents ever go live. We build the evaluation, routing and cost control that get yours there.

Book a free scoping call
Guides

MCP vs A2A vs ACP: Three Layers, Two Different ACPs

MCP connects an agent to tools, A2A connects agents to each other, and ACP connects a coding agent to your editor. Three layers, plus the ACP that most comparisons still describe as a live option a year after it merged into A2A.

One agent reaching up to an editor via ACP, down to tools via MCP, and across to a peer agent via A2A

TL;DR

MCP connects an agent to its tools, A2A connects agents to each other, and ACP connects a coding agent to the editor a developer works in. Three layers of one stack, not three competing options. Most published comparisons get one thing wrong that changes the answer: the ACP they describe, IBM's Agent Communication Protocol, stopped active development in August 2025 and folded into A2A. The ACP still shipping in 2026 is a different protocol that happens to share the acronym, Zed's Agent Client Protocol, and it covers a boundary neither MCP nor A2A touches.

This post separates the two ACPs, puts each live protocol on the layer it actually occupies, and gives the short answer on which ones you need.

Picking protocols for a multi-agent build? We design the orchestration boundary first and let it decide the protocol, since the wrong starting question adds a standard you will have to rip out later.

Key Takeaways

  • MCP is agent to tools, A2A is agent to agent, ACP is agent to editor. Each covers a boundary the other two do not.
  • Two protocols share the ACP acronym. IBM's Agent Communication Protocol merged into A2A in August 2025. Zed's Agent Client Protocol launched the same month and now lists 11 editors and more than 50 agents.
  • Any comparison presenting ACP as a lighter alternative to A2A for smaller teams is describing the merged IBM spec as a live choice. Check the publication date before acting on protocol advice.
  • All three speak JSON-RPC 2.0, and ACP deliberately reuses MCP's JSON shapes where it can. Implementing one gets you most of the plumbing for the others.
  • Most teams need MCP and nothing else. A2A earns its place when a second independently built agent enters the system. ACP matters only if you ship a coding agent that should run inside editors you do not own.

Two different protocols are called ACP

Two protocols named ACP and what happened to eachA timeline from March 2025 to 2026 with three horizontal tracks. The top track, IBM’s Agent Communication Protocol, begins in March 2025 and stops in August 2025, where it curves downward and merges into the middle track. The middle track, A2A, begins in April 2025 and continues to the present, thickening after it absorbs the top track. The bottom track, Zed’s Agent Client Protocol, begins in August 2025 at the same moment the IBM protocol ends, and continues to the present with milestone markers for Claude Code, JetBrains and the agent registry.One acronym, two protocols, opposite fatesIBM Agent Communication Protocolmerged, Aug 2025A2AZed Agent Client ProtocolClaude CodeJetBrainsregistryMar 2025Aug 2025Jan 2026now
August 2025 is the month one ACP ended and the other began, which is most of why the two get confused.

IBM Research launched the Agent Communication Protocol in March 2025 to power BeeAI, its open-source agent platform, and donated both to the Linux Foundation the same month. In August 2025, Kate Blair of IBM Research and Todd Segal of Google jointly announced the merge into A2A. The ACP team wound down active development to contribute directly to the A2A spec, and BeeAI itself now runs on A2A with an A2AServer adapter to bring existing agents across.

Zed's Agent Client Protocol launched on 27 August 2025, alongside Google's Gemini CLI. It is Apache-licensed and solves an unrelated problem: without a standard, every agent-and-editor pair needs its own bespoke integration, the same fragmentation LSP fixed for language tooling. Claude Code support landed on 3 September 2025, JetBrains formalized a collaboration on 6 October 2025, and in January 2026 JetBrains shipped an ACP Agent Registry inside IDEs on version 2025.3 and later. Zed now lists 11 editors, including VS Code, Emacs, Neovim and Obsidian, and more than 50 agents.

The practical consequence is worth stating plainly. If an article published this year tells you ACP is a lightweight HTTP-native option for teams that find A2A too heavy, it is describing the IBM protocol as a live choice roughly a year after its team stopped developing it. That framing is easy to find in current comparisons, which is a good reason to check the date on any protocol advice before you build against it.

What each protocol actually connects

Three protocols, three directions from one agentA single agent box sits at the centre. An arrow points upward from it to a box labelled editor, marked ACP. An arrow points right to a separate box labelled another agent, marked A2A. Three arrows fan downward to boxes labelled tool, database and API, marked MCP. The three protocols occupy three different directions rather than overlapping.Up to the human, across to a peer, down to the toolsEditor, with a human in itACPYour agentAnother agentA2AMCPToolDatabaseAPIThree directions, so a system can speak all three without any overlap.
The protocols never contend for the same connection, which is why “which one should we standardise on” is usually the wrong question.

MCP points down. An MCP host, an AI application like Claude Code or VS Code, creates one client per server, and each server exposes tools, resources and prompts. The agent discovers what is available at connection time instead of a developer wiring it in advance. We covered what MCP adds over a plain API and how to build a server past hello world separately.

A2A points across. Work is a Task with a lifecycle, submitted through working to completed, failed or canceled, handed from an A2A Client to a Remote Agent that publishes an Agent Card describing its skills and accepted auth schemes. Neither side needs to know how the other is built. The full A2A and MCP comparison goes deeper on the handoff itself.

ACP points up, at the human. An editor spawns the agent as a child process and speaks JSON-RPC over stdio, the same mechanism LSP uses, which is why ACP runs anywhere LSP already runs. The editor calls initialize to negotiate capabilities, opens a session with session/new, then sends each turn through session/prompt while the agent streams progress until it returns a stop reason. The design goal is that the developer never leaves their editor and the agent comes to them. That session/new call is also where the two protocols meet, since it carries the agent's MCP server list, which the ACP and MCP comparison covers in detail.

Side by side

MCP A2A ACP (Agent Client Protocol)
Connects An agent to tools and data An agent to another independent agent A coding agent to a code editor
Direction Down, inside one agent's reach Across, to a peer it does not control Up, to the human's editor
Created by Anthropic Google Zed
Wire format JSON-RPC 2.0 over stdio or Streamable HTTP JSON-RPC 2.0 over HTTP, plus SSE for streaming JSON-RPC 2.0 over stdio, HTTP or WebSocket when remote
Unit of work A tool call A Task with a lifecycle A prompt turn inside a session
You need it when Your agent calls anything external A second, independently built agent enters You ship an agent that should run in editors you do not own

Which ones do you actually need?

For most teams the honest answer is MCP and nothing else. One agent calling its own tools is fully an MCP problem no matter how many tools it has, and the 2026-07-28 spec now covers long-running work through a Tasks extension that returns a durable handle, which removes one of the older reasons people reached past it.

A2A becomes real when a second, genuinely independent agent enters the picture, one you do not control the internals of, often built by another team or running on a vendor's infrastructure. That is a boundary question, not a step-count question. Plenty of multi-step agentic workflows never cross it.

Three independent tests, not a sequenceThree separate horizontal rows, each posing one question and ending in a protocol chip. The rows are deliberately not connected to each other by any arrow or line, showing that each protocol is decided by its own independent test rather than by progressing through a flowchart.Three separate questions, answered independentlyDoes your agent call anything outside itself?MCPIs there a second agent you did not build?A2AMust it run inside an editor you do not own?ACPNo arrows between the rows: answering one tells you nothing about the next.
Most protocol comparisons draw this as a flowchart. It is not one, which is why “we picked A2A” is never an answer to whether you also need MCP.

ACP is narrower than either, and the narrowness is the point. It matters if you are shipping a coding agent and want it usable inside editors you do not own, or if you are building editor tooling and want to accept agents you did not write. If you are building a support bot, a research agent or an internal workflow, ACP is not part of your stack. The three protocols only look like a decision when a comparison table puts them in the same column.

Frequently asked questions

Is ACP dead?

One of them is. IBM's Agent Communication Protocol wound down active development in August 2025 and merged into A2A under the Linux Foundation, so no new work targets it. Zed's Agent Client Protocol, which shares the acronym, is actively developed and shipping across JetBrains IDEs, VS Code, Zed and others.

Which ACP do people mean when they say ACP?

It depends on the context and the date. Writing about multi-agent orchestration, enterprise agent platforms or BeeAI almost always means IBM's protocol, which is now historical. Writing about coding agents, editors or IDE integrations means Zed's. Comparisons written since late 2025 frequently conflate the two.

What is the difference between ACP and A2A?

For IBM's ACP the question is now historical: its assets and design went into A2A, so A2A is the answer to what ACP was trying to solve. For Zed's ACP the two do not overlap at all. ACP connects an agent to the editor a person is sitting in, A2A connects an agent to another agent, and a single coding agent can reasonably speak both.

Can one agent use all three protocols at once?

Yes, and a coding agent running inside an editor is the clean example. It speaks ACP upward to the editor, MCP downward to its tools, and A2A across if it delegates to a separate agent. Because all three ride JSON-RPC 2.0 and ACP reuses MCP's JSON representations where it can, the combined implementation cost is lower than three separate standards suggests.

Is MCP enough on its own?

For most systems, yes. MCP covers everything inside one agent's boundary, which is where the majority of production agent work still happens. Add A2A when you cross into an agent you did not build, and add ACP when your agent needs to live inside somebody else's editor. Adding either before you have that problem is complexity with nothing on the other end of it.

Sources

Ship AI agents that reach production

Only about 5% of enterprise agents ever go live. We build the evaluation, routing and cost control that get yours there.

Prefer email? [email protected]