Dr Milan Milanović (@milan_milanovic) on X
A Twitter/X thread breaking down three protocols that connect AI agents to different things: MCP (agent to tools/data, JSON-RPC 2.0 over stdio or Streamable HTTP), A2A (agent to agent, using an Agent Card JSON manifest at /.well-known/agent-card.json, running over JSON-RPC/gRPC/HTTP+JSON), and ACP, the Agent Client Protocol created by Zed in 2025 for connecting code editors to coding agents (modeled on LSP, JSON-RPC over stdio). It clarifies that IBM Research's older "Agent Communication Protocol" (also abbreviated ACP) merged into A2A on 29 August 2025, making many existing protocol comparisons outdated, and notes governance differences: MCP and A2A sit under the Agentic AI Foundation (Linux Foundation) while the Agent Client Protocol is governed by Zed and JetBrains. The author also mentions building an internal MCP server letting customers run and schedule reports via ChatGPT and Claude.
What it claims
Three protocols cover three different connections, and a thread's practical value is in the details that tell you which one you actually need. MCP connects an agent to tools and data. A2A connects an agent to other agents. ACP (Agent Client Protocol, Zed) connects a code editor to a coding agent. The author recommends starting with MCP, since "an agent with good tools can cover most of the cases," and using A2A only when you must reach another agent.
How it works
MCP. The agent application is the host and keeps one client per server. Servers expose tools and resources.
A2A. The Agent Card lists the agent's skills and how to authenticate. The interaction model is task-oriented: the caller sends a task and gets a result back.
ACP (Agent Client Protocol). The coding agent runs as a sub-process of the editor. The relationship is bidirectional:
- The agent calls back into the editor for permissions, file access and the terminal.
- The editor can hand its configured MCP servers to the agent.
- The agent then connects to those MCP servers directly, not through the editor.
flowchart LR E[Editor] -- spawns, stdio JSON-RPC --> A[Coding agent] A -- permissions / files / terminal --> E E -. passes MCP server config .-> A A -- connects directly --> M[MCP servers]
So ACP and MCP compose rather than compete: ACP is the editor↔agent link, and MCP stays the agent↔tool link.
IBM's Agent Communication Protocol (also abbreviated ACP) was REST-based and agent-to-agent before it merged into A2A.
Evidence
The only evidence is the author's own deployment, with no metrics. Their company built an MCP server that lets customers use ChatGPT and Claude to produce their own reports and schedule them, so the company no longer builds each report from scratch.
Limits
- ACP's remote transport is still in progress. Today it is a local, stdio, sub-process model. Do not plan on running an ACP agent remotely from the editor yet.
- ACP covers coding agents only.
- The thread is a short opinion piece. It has no spec version numbers, no message schemas and no code. For implementation details, check each protocol's spec.
Organisations named here
- Agentic AI Foundation
- Linux Foundation
- Zed
- JetBrains
- IBM Research
- OpenAI
- Anthropic
- Model Context Protocol
Technologies named here
- MCP
- A2A
- ACP
- Model Context Protocol
- gRPC
- ChatGPT
- Claude
- JSON-RPC
Related in mcp

OKX Agent Trade Kit (okx-trade-mcp / okx-trade-cli)
