MCP
Gives agents access to tools and data sources.
- JSON-RPC over stdio or HTTP
- Connect agents to APIs, databases, files
- One MCP server per tool integration
MCP, ACP, A2A, and OACP solve different problems at different layers. Here’s how to choose.
Four protocols are shaping multi-agent development. Each operates at a different layer:
┌─────────────────────────────────────────────┐│ A2A — Agent discovery & remote messaging │ internet-scale├─────────────────────────────────────────────┤│ OACP — Async workflow messaging │ local filesystem├─────────────────────────────────────────────┤│ ACP — Client ↔ agent sessions │ IDE / editor├─────────────────────────────────────────────┤│ MCP — Agent-to-tool integration │ tool access└─────────────────────────────────────────────┘MCP
Gives agents access to tools and data sources.
ACP
Connects IDE clients to coding agents.
A2A
Agent discovery and messaging over the internet.
OACP
Async workflow coordination for agent teams.
| MCP | ACP | A2A | OACP | |
|---|---|---|---|---|
| Solves | Tool access | Client ↔ agent sessions | Agent discovery + networking | Async workflow coordination |
| Transport | JSON-RPC (stdio/HTTP) | JSON-RPC (stdio; HTTP draft) | HTTP/HTTPS | Filesystem (YAML) |
| Best for | Connecting agents to APIs, DBs, files | IDE ↔ coding agent interaction | Cross-org, internet-routable agents | Local teams, dev machines, CI |
| Infrastructure | MCP server per tool | ACP-capable client + agent | TLS, auth, HTTP endpoints | A shared directory |
| Message persistence | None (synchronous calls) | None (session-scoped) | Optional (push notifications) | Native — YAML files wait in inbox |
| Setup | Install MCP server | Use ACP-capable client + agent | Deploy servers + networking | oacp init my-project |
MCP (Model Context Protocol) defines how an agent calls a tool. Use it when you need agents to:
MCP is the tool-access layer. Every agent that uses external tools benefits from MCP, regardless of what other protocols it speaks.
ACP (Agent Client Protocol, by Zed Industries) defines how an IDE or client communicates with a coding agent. Use it when you need:
ACP is adopted by Zed, JetBrains, Neovim, and 28+ agents in its registry. It covers the IDE-to-agent boundary: prompt/response streaming, terminal operations, and agent registration.
A2A (Agent-to-Agent Protocol, under the Linux Foundation) defines how agents discover and message each other over the internet. Use it when you need:
A2A is backed by 150+ organizations and designed for internet-scale agent networking. Both agents must be running and reachable for messages to be delivered.
OACP (Open Agent Coordination Protocol) is the async coordination layer for multi-agent workflows. Use it when you need:
These protocols are complementary, not competing. A single agent can use all four at different layers — and in production, most multi-agent setups do.
A coding agent in a typical multi-agent session might:
Each protocol handles one layer. No overlap, no conflict.
For a local multi-agent team on one machine:
No ACP needed (no IDE integration). No A2A needed (same machine). Two protocols cover the full workflow.
For agents spanning multiple organizations:
A gateway between OACP inboxes and A2A endpoints is a natural bridge — and A2A’s own community is exploring inbox patterns that validate this direction.
Do your agents need to call external tools (APIs, databases, files)?
Yes → Use MCP for tool access. This is the foundation layer most agents need.
Do your agents need to talk to each other?
If across the internet → Use A2A for discovery and networking. If on the same machine → Use OACP for async coordination. If only IDE ↔ agent → Use ACP for client sessions.
Do you need structured workflows (task dispatch, code reviews, handoffs)?
Yes → Use OACP. It’s the only protocol with typed workflow messages and a coordinator pattern. No infrastructure required — just a shared directory.
MCP gives agents access to tools and data sources via JSON-RPC. A2A lets agents discover and message each other across the internet via HTTP. MCP is the tool-access layer; A2A is the networking layer. They operate at different levels and are complementary.
OACP coordinates multiple AI agents through typed workflow messages — task dispatch, code review, handoff — over a shared filesystem. Messages persist as YAML files in agent inboxes, requiring no servers or databases. Get started with pip install oacp-cli.
Yes. These protocols are complementary, not competing. A single agent can use MCP for tool access, ACP for IDE integration, A2A for internet-scale agent discovery, and OACP for local multi-agent coordination — all in the same session.
It depends on your needs. For tool access, use MCP. For IDE-to-agent communication, use ACP. For cross-organization agent networking, use A2A. For coordinating multiple AI agents on a local machine or CI with no infrastructure, use OACP. Most production setups combine multiple protocols at different layers.
No. OACP operates at the workflow coordination layer — it handles task dispatch, reviews, and handoffs between agents. MCP handles tool access. A2A handles internet-scale agent networking. They solve different problems and work together naturally.