Agent Protocols - MCP, A2A, A2UI, AG-UI

Agent Protocols: MCP, A2A, A2UI, AG-UI
Agent Protocols: MCP, A2A, A2UI, AG-UI

It feels like every other month, there is a new agent protocol and it’s getting hard to keep track of which protocol is used when. Recently, I looked into some of the main agent protocols and in this post, I will provide a high-level overview of MCP, A2A, A2UI, and AG-UI.

TLDR

If you’re too busy or too impatient to read the whole blog post, here’s a summary of the protocols along with links to samples in my repository:

ProtocolDescription
Model Context Protocol (MCP)An open protocol, from Anthropic, that standardizes how models and agents access external tools and resources
Agent2Agent Protocol (A2A)An open protocol, from Google, that standardizes how agents running on diverse frameworks and platforms communicate
Agent-User Interaction Protocol (AG-UI)An open protocol, from CopilotKit, that standardizes how agents communicate with user interfaces
Agent to UI Protocol (A2UI)A generative UI protocol, from Google, that enables AI agents to generate rich, interactive user interfaces across web, mobile, desktop

Let’s now look into each protocol in more detail.

Model Context Protocol (MCP)

Model Context Protocol (MCP) is an open protocol from Anthropic that standardizes how models and agents access external tools and resources.

It has three distinct parts:

Who controls it?Use Cases
ToolsModel-controlled: Model decides when to call theseAllow LLM to interact with external systems
ResourcesApp-controlled: App decides when to call theseProvide read-only access to data for the LLM or client application.
PromptsUser-controlled: The user decides when to use theseReusable message templates that help LLMs generate structured, purposeful responses.

While most people use MCP for tools, it can also be used for resources and prompts. You can also implement your own MCP server with FastMCP in Python, and there are other more advanced features of MCP such as elicitation, sampling, progress, and more.

MCP is the oldest and most mature of the protocols discussed in this post. It is also probably the most widely adopted protocol.

You can check out my MCP samples repo for more details. I also have an MCP presentation that accompanies the samples.

Model Content Protocol

Agent2Agent Protocol (A2A)

Agent2Agent (A2A) Protocol is an open protocol from Google that standardizes how agents running on diverse frameworks and platforms communicate.

A2A Protocol
A2A Protocol

While MCP mainly deals with agent-to-tool calls, A2A deals with agent-to-agent communication. It is a more recent protocol compared to MCP and is still evolving. You can wrap an agent with the AgentExecutor interface to make it A2A compatible or use an agent framework like ADK to simplify your MCP and A2A communication.

You can check out my A2A samples to see A2A implemented in different languages (Python, C#) and how the Agent Development Kit (ADK) simplifies A2A communication.

I also have an A2A presentation that accompanies the samples.

A2A Protocol

Agent-User Interaction Protocol (AG-UI)

AG-UI is an open, lightweight, event-based protocol, created by CopilotKit, that standardizes how agent backends connect to agent frontends.

AG-UI Protocol
AG-UI Protocol

On the client side, CopilotKit is the reference client implementation of AG-UI but there are other clients. On the agent side, most major agent frameworks such as LangGraph, CrewAI, Google ADK, and more are supported.

You can read more details on the AG-UI protocol in the Core architecture and Events docs.

AG-UI vs. MCP, A2A

At this point, you might be wondering how AG-UI relates to MCP and A2A:

  • MCP gives agents tools.
  • A2A allows agents to communicate with other agents.
  • AG-UI brings agents into user-facing applications.

AG-UI, MCP, A2A
AG-UI, MCP, A2A

See MCP, A2A, and AG-UI and my AG-UI samples for more details.

Agent to UI Protocol (A2UI)

Agent to UI Protocol (A2UI) is a generative UI protocol, created by Google, that enables AI agents to generate rich, interactive user interfaces across web, mobile, and desktop. The idea is that instead of building UIs for your agents, you can let them generate UIs from a predetermined list of UI widgets.

Despite similar names, AG-UI and A2UI serve very different and complementary roles in the agentic application stack:

  • AG-UI connects your user-facing application to any agentic backend.
  • A2UI is a declarative generative UI spec, which agents can use to return UI widgets as part of their responses.

AG-UI & A2UI
AG-UI & A2UI

See AG-UI and Generative UI Specs and AG-UI and A2UI for more details.

Conclusion

In this blog post, I provided a high-level overview of MCP, A2A, AG-UI, and A2UI. In the next blog post, I will deep dive into the AG-UI and A2UI protocols in more detail. To learn more, here are some resources:


See also