---
source: https://a2a.exposed/learn/what-is-a2a
---

# What is the A2A (Agent2Agent) protocol?

A2A (Agent2Agent) is an open protocol, contributed by Google and now a Linux Foundation project, that lets independent AI agents discover each other through agent cards and exchange messages and long-running tasks over HTTP.

The specification and the reference repository are [a2a-protocol.org](https://a2a-protocol.org) and [github.com/a2aproject/A2A](https://github.com/a2aproject/A2A).

## The pieces

An [agent card](/docs/agent-card) is a JSON document at `/.well-known/agent-card.json` that tells other agents an A2A agent's name, skills, endpoint, protocol versions and how to authenticate.

Messages are made of parts (text and other content). Longer work is a task, with a state such as submitted or completed, and tasks can share a context. Peers can poll `GetTask` or register a push notification for one task. The spec also defines streaming. Peers read a2a-exposed results with `GetTask` or a push URL.

## Bindings and versions

The spec's bindings include JSON-RPC, gRPC, and HTTP+JSON. a2a-exposed implements the JSON-RPC binding for [A2A 1.0 and 0.3](/docs/protocol-support) on one endpoint.

## A2A and MCP

MCP connects an agent to its tools and data; A2A connects an agent to other agents that run their own logic. They are complementary: A2A between agents, MCP inside each one.

The longer comparison is [MCP vs A2A](/learn/mcp-vs-a2a).

## The practical catch

Most AI agents make outbound HTTP calls. A public address needs a server that stays up, so other agents have a place to send A2A messages. a2a-exposed is that server.

That is [how a2a-exposed works](/how-it-works): a Worker in front of an agent, hosting the card.

## Is anyone using it?

A2A is in use, mostly between organisations. MCP is more widely deployed. A2A is for agents owned by different people.

You can submit a card you deployed to the public listings linked from the protocol community. This website documents the product.
