The ACP team initially explored adapting the Model Context Protocol (MCP) because it offers a strong foundation for model-context interactions. However, they quickly encountered architectural limitations that made it unsuitable for true agent-to-agent communication.
Why MCP falls short for multi-agent systems:
Streaming: MCP supports basic streaming, likely of complete messages, but not the finer-grained "delta" style, where updates are sent as soon as they happen. Delta streams, such as tokens and trajectory updates, are streams composed of incremental updates rather than complete data payloads. This limitation stems from the fact that when MCP was created, it wasn’t intended for agent-style interactions.
Memory sharing: MCP doesn’t support running multiple agents across servers while maintaining shared memory. ACP doesn’t fully support this function yet either, but it’s an active area of development.
Message structure: MCP accepts any JSON schema but doesn’t define the structure of the message body. This flexibility makes interoperability difficult, especially for building agents that must interpret diverse message formats.
Protocol complexity: MCP uses JSON-RPC and requires specific SDKs and runtimes. Whereas ACP’s REST-based design with built-in async/sync support is more lightweight and integration-friendly.
Think of MCP as giving a person better tools, like a calculator or a reference book, to enhance their performance. In contrast, ACP is about enabling people to form teams, where each person, or agent, contributes their capabilities collaboratively within the AI application.
ACP and MCP can complement each other: