A2A frente a MCP: qué hace cada protocolo y cuándo usar los dos
A2A conecta agentes entre sí y MCP conecta un agente con sus herramientas. Qué hace cada uno, dónde se solapan y cuándo usar los dos, ya bajo la AAIF.
Por Andrés León Bohórquez Actualizado el
Datos a 3 de octubre de 2026 · especificación MCP 2026-07-28
A2A (Agent2Agent) es un protocolo abierto para que agentes de distintos frameworks y proveedores se descubran, se deleguen tareas y colaboren. MCP conecta un agente con sus herramientas, datos y prompts. En la comparativa A2A vs MCP no hay ganador, porque no compiten por la misma capa. A2A conecta un agente con otro agente, y MCP, un agente con sus herramientas.
Versión de A2A: v1.0.1.
Desde el 17 de agosto de 2026 los dos protocolos están en la misma fundación, la Agentic AI Foundation (AAIF) de la Linux Foundation. Eso cambia poco en lo técnico, pero zanja la pregunta de si había que elegir bando. Aquí verás qué hace A2A y cómo se ve en la red. Después, dónde pisa terreno de MCP y cómo decidir cuál usar en cada tramo de tu sistema.
Respuesta corta y tabla
Si construyes un agente que necesita consultar una base de datos, llamar a una API o leer documentos, eso es MCP. Si tu agente tiene que encargarle trabajo a otro agente que no controlas (de otro equipo, de otro proveedor, con su propio modelo y sus propias herramientas), eso es A2A. Un sistema real suele tener las dos cosas.
| MCP | A2A | |
|---|---|---|
| Para qué | Conectar un agente con herramientas, datos y prompts | Descubrimiento, delegación y colaboración entre agentes |
| Capa según la AAIF | “agent to tool connectivity” | Agente-agente |
| Descubrimiento | server/discover dentro del protocolo; la Server Card es una extensión aparte, Final desde el 6 de octubre de 2026 (SEP-2127), que se descubre por un AI Catalog en /.well-known/ai-catalog.json |
Agent Card publicada en /.well-known/agent-card.json |
| Unidad de trabajo | Llamada a una herramienta (tools/call); tareas largas con la extensión Tasks |
Mensajes (SendMessage) y tareas (GetTask, ListTasks, CancelTask, SubscribeToTask) |
| Bindings | stdio y Streamable HTTP, sobre JSON-RPC | JSON-RPC 2.0, gRPC y HTTP+JSON/REST |
| Versión vigente | 2026-07-28 (sin estado) | v1.0.1 (28 de mayo de 2026); v1.1 en preparación |
| Gobernanza | AAIF | AAIF desde el 17 de agosto de 2026, con su propio TSC |
Fuentes de la columna A2A: especificación de A2A, releases y anuncio de la AAIF. Para la columna MCP, el resumen de la versión está en el artículo sobre MCP 2026-07-28 y en el blog oficial de MCP.
Qué es A2A
Google lanzó A2A en abril de 2025 y lo donó a la Linux Foundation. En agosto de 2025 el Agent Communication Protocol de IBM se fusionó en A2A, así que ya no hay dos proyectos con ese propósito (AAIF). Entre las organizaciones fundadoras figuran AWS, Cisco, Google, Microsoft, Salesforce, SAP y ServiceNow, y según la AAIF lo respaldan más de 150 organizaciones.
El modelo es sencillo de contar (especificación):
- Cada agente publica una Agent Card, un JSON que dice quién es, dónde escucha, con qué binding y qué sabe hacer. Se sirve en
/.well-known/agent-card.json. - Un agente cliente le envía mensajes a un agente remoto con
SendMessage(oSendStreamingMessagesi quiere la respuesta en streaming). - Si el trabajo no termina en una respuesta, se convierte en una tarea. El agente cliente la consulta con
GetTask, la cancela conCancelTasko la sigue conSubscribeToTask, y lista las tareas conListTasks. También hay configuración de notificaciones push yGetExtendedAgentCardpara una tarjeta ampliada. - Todo eso se puede hablar por tres bindings: JSON-RPC 2.0, gRPC y HTTP+JSON/REST.
La v1.0.0 de la especificación salió el 12 de marzo de 2026 y la v1.0.1, la vigente, el 28 de mayo de 2026 (releases de A2A).
Agent Card y SendMessage
Así se ve una Agent Card v1.0, recortada a lo que interesa aquí: tres interfaces, una por binding, y las capacidades opcionales.
{
"name": "GeoSpatial Route Planner Agent",
"supportedInterfaces": [
{"url": "https://georoute-agent.example.com/a2a/v1", "protocolBinding": "JSONRPC", "protocolVersion": "1.0"},
{"url": "https://georoute-agent.example.com/a2a/grpc", "protocolBinding": "GRPC", "protocolVersion": "1.0"},
{"url": "https://georoute-agent.example.com/a2a/json", "protocolBinding": "HTTP+JSON", "protocolVersion": "1.0"}
],
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": true
}
}
Fragmento literal de la especificación de A2A, §8.5; el original incluye además provider, skills, signatures y otros campos.
Con la tarjeta leída, el cliente elige una interfaz y envía un mensaje. En el binding JSON-RPC la llamada tiene esta forma:
{
"jsonrpc": "2.0",
"id": 1,
"method": "SendMessage",
"params": { /* SendMessageRequest object */ }
}
Ejemplo literal de la especificación de A2A, §9.4.1.
Y el objeto que va en params:
{
"tenant": "optional-routing-id",
"message": {
"messageId": "uuid",
"role": "ROLE_USER",
"parts": [{"text": "Your content"}]
},
"configuration": {
"returnImmediately": false
}
}
Estructura literal de SendMessageRequest, especificación de A2A, §3.2.1.
Si vienes de MCP, fíjate en la diferencia de forma. En MCP llamas a una herramienta concreta, con un nombre y unos argumentos que validan un esquema. En A2A le mandas un mensaje a un agente, con partes de contenido, y es el agente remoto quien decide qué hacer con él y si abre una tarea. Con MCP controlas al detalle una operación. Con A2A tienes un interlocutor con su propio criterio.
A2A entra en la AAIF
El 17 de agosto de 2026 la AAIF anunció que A2A pasa a ser proyecto alojado, junto a MCP (AAIF). El propio proyecto lo contó en su blog el 27 de agosto, donde se describe como “Growth Stage project at the Agentic AI Foundation”. Si ves otras fechas en prensa, la del anuncio oficial de la fundación es el 17.
La AAIF presenta una “pila agéntica abierta” por capas: A2A para agente-agente, MCP para agente-herramienta, AGENTS.md para instrucciones, goose como runtime y agentgateway y Agent Router para el tráfico.
Hoy la fundación aloja seis proyectos: MCP, goose, AGENTS.md, agentgateway, A2A y Agent Router (AAIF, proyectos). El mapa completo de esa pila, con lo que queda fuera de la fundación, está en protocolos de agentes de IA.
Novedades: SDK, CLI oficial y hoja de ruta v1.1
Si vas a usar A2A, hay tres novedades recientes que conviene conocer.
SDK. La hoja de ruta dice que el proyecto “currently hosts SDKs in six languages (Python, Go, JS, Java, .NET, and Rust)” (roadmap). Estas son las últimas versiones publicadas a 3 de octubre de 2026, según las releases de cada repositorio en GitHub:
| SDK | Última versión | Fecha |
|---|---|---|
Python (a2a-python) |
v1.2.1 | 30 de septiembre de 2026 |
JS/TS (a2a-js) |
v1.3.0 | 29 de septiembre de 2026 |
Java (a2a-java) |
v1.4.0.Final | 28 de septiembre de 2026 |
Go (a2a-go) |
v2.6.0 | 25 de septiembre de 2026 |
.NET (a2a-dotnet) |
v1.0.0-preview2 | 9 de abril de 2026 |
Rust (a2a-rs) |
Repositorio activo, sin release citada; mantenedores añadidos el 25 de agosto (commits de A2A) | — |
En .NET, la última release etiquetada es una preview. Si tu stack es .NET, comprueba el estado del repositorio antes de comprometerte. Para validar tu implementación tienes el A2A Inspector y el TCK.
CLI oficial. El 1 de octubre de 2026 el proyecto presentó la A2A CLI. Se instala con brew, winget o go install, y está pensada también para coding harnesses que llaman herramientas. Estos son los dos comandos básicos:
a2a card get https://agent.example.com
a2a send -a https://agent.example.com "Hello, what can you do?"
Ejemplo literal del blog de A2A.
El primero lee la Agent Card y el segundo envía un mensaje. Es la forma más rápida de comprobar que un agente remoto responde antes de escribir una línea de cliente.
Hoja de ruta. La actualización del 15 de septiembre prepara la v1.1: cronología de tareas, filtrado de eventos y mensajes recibidos mientras la tarea está en estado working. También recoge streaming bidireccional, la CLI, elicitación y flujos multiturno. Si ya tienes código, hay además un cambio de nombre que te afecta. El 28 de agosto PushNotificationConfig pasó a llamarse TaskPushNotificationConfig en la especificación (commits de A2A).
Dónde se solapan con MCP
La AAIF los pone en capas distintas y el blog de A2A habla de una orquestación “horizontal” que complementa la integración “vertical” de MCP. En la práctica, la frontera no es tan limpia. Hay tres zonas de roce.
Un agente remoto se puede exponer de las dos maneras. Nada impide envolver un agente como herramienta MCP o publicarlo como agente A2A. Con MCP, el agente que llama lo trata como una función más, con esquema de entrada y salida. Con A2A, lo trata como un par con el que conversa y al que delega una tarea. El curso trata el primer patrón, agentes como servidores MCP, en el nivel Experto.
Los dos tienen tareas. A2A nació con tareas. MCP las tiene en la extensión Tasks, que empezó a publicar releases en septiembre (ext-tasks). El roadmap del 22 de agosto quiere madurarla hasta incluirla en el núcleo. La diferencia está en el alcance. En MCP, una tarea es la versión asíncrona de una llamada a herramienta. En A2A, es el trabajo delegado en otro agente, que se abre cuando un mensaje no termina en una respuesta.
Los protocolos de alrededor hablan los dos. x402 define transportes para HTTP, MCP y A2A. UCP tiene cuatro: REST, MCP, A2A y embedded. Y agentgateway, en la AAIF desde junio, enruta tráfico MCP y A2A en la misma pasarela. Quien construye infraestructura ya da por hecho que vas a tener ambos.
A más largo plazo hay un actor más: el 9 de septiembre de 2026 el grupo agentproto del IETF pasó a “Proposed WG”, con el objetivo de definir un protocolo base de diálogo entre agentes. Todavía no hay protocolo, así que es pronto para saber si convergerá con A2A y MCP o competirá con ellos.
Cuándo usar cada uno
Veamos un ejemplo con Nortia Logística, la empresa ficticia del curso. Su agente de soporte atiende a un cliente que reclama un envío y un cobro duplicado. Consultar el pedido es una operación concreta sobre un sistema propio, así que va por una herramienta MCP. Resolver el cobro es trabajo de otro agente, el de facturación, que tiene sus propias herramientas, sus permisos y su criterio. Eso es delegación A2A.
flowchart LR U[Usuario] --> S[Agente de soporte] S -->|"MCP: tools/call"| P[nortia-pedidos] S -->|"A2A: SendMessage"| F[Agente de facturación] F -->|"MCP: tools/call"| FA[nortia-facturacion] F -.->|"publica"| C[Agent Card] S -.->|"lee"| C
Reglas prácticas:
- Usa MCP cuando el otro lado es una capacidad bien definida: una consulta, una acción, un documento. Ahí quieres esquema, validación y control de qué se llama y con qué argumentos. Es lo que hace un agente que orquesta varios servidores, el caso de la lección «Agentes + MCP» del curso.
- Usa A2A cuando el otro lado tiene autonomía: decide cómo resolver lo que le pides, puede tardar y puede pertenecer a otra organización. La Agent Card te dice qué ofrece sin que tengas que conocer sus herramientas internas.
- Usa los dos en cuanto tengas más de un agente con responsabilidades separadas. Cada agente usa MCP hacia abajo, con sus herramientas, y A2A hacia los lados, con otros agentes. Los patrones de diseño (agentes como servidores, subagentes, memoria compartida) están en la lección «Sistemas multi-agente» del nivel Experto del curso.
- No metas A2A por si acaso. Si todos tus “agentes” son en realidad funciones que controlas tú, una herramienta MCP es más simple y más fácil de probar.
Si además tus agentes necesitan instrucciones de procedimiento, esa es otra capa: la de las Agent Skills. Y si te preguntas qué plataformas soportan ya la versión actual de MCP sobre la que montarías todo esto, lo tienes en MCP 2.0 en producción.
Aprende esto en el curso
- Experto 25 € Sistemas multi-agente · Agentes como servidores, subagentes y memoria compartida
- Básico Gratis Agentes + MCP · Un agente con Claude que orquesta varios servidores
La lección 1 la puedes leer ya, sin registro. Las otras 13 del Básico son gratis con una cuenta.
Empieza gratis Ir a la lecciónFuentes
- A2A joins the Agentic AI Foundation (AAIF) (2026-08-17)
- A New Chapter for A2A: Joining the Agentic AI Foundation (2026-08-27)
- A2A: especificación
- A2A: specification.md en GitHub
- A2A: releases de la especificación
- A2A: hoja de ruta (2026-09-15)
- A2A: commits de la especificación
- Introducing the A2A CLI (2026-10-01)
- a2a-go: releases
- A2A Inspector
- A2A TCK
- AAIF: proyectos
- The New MCP Roadmap (2026-08-22)
- MCP 2026-07-28 (blog oficial de MCP)
- ext-tasks: releases
- SEP-2127: Server Cards (Final desde el 6-oct-2026)
- x402
- UCP 2026-08-25: overview
- agentgateway joins AAIF (2026-06-04)
- IETF agentproto: historia (2026-09-09)