Introduction
a2a-wrapper turns Claude, OpenAI Codex, GitHub Copilot, OpenCode and Google Antigravity into standalone A2A agents that can discover, delegate to, and work with each other. Drop in a JSON config, get a spec-compliant server.
a2a-wrapper is a set of Node.js packages that put production coding agents behind the open Agent2Agent (A2A) protocol. You write a JSON config file; you get an HTTP server that any A2A client can discover and call.
Quick start
Turn GitHub Copilot into an A2A server in about a minute.
Multi-agent crew
Claude implements, Codex writes the tests, all over A2A.
Security guide
Read this before exposing an agent beyond localhost.
FAQ
Answers to the questions people ask most.
Find your way around
The documentation is organised into sections. Use the section switcher at the top of the sidebar to move between them.
| Section | Start here if you want to… |
|---|---|
| Get started | Install a wrapper and run your first agent |
| Concepts | Understand A2A, agent cards, tasks, sessions and sub-agents |
| Guides | Choose a wrapper, configure it, add MCP tools, run it in Docker, secure it |
| Reference | Look up the HTTP API, the glossary, or a package's full options |
| AI & agents | Use these docs from an AI assistant, including the docs MCP server |
| Community | Contribute, read the roadmap, or check the changelogs |
The problem
Coding agents such as Claude, Codex and Copilot are powerful but isolated. There is no clean way to hand a task from one to another, track long-running work, or compose several of them into a team, unless you write custom glue for each pair.
What a2a-wrapper gives you
Each wrapper takes one backend and exposes it as a first-class A2A agent. Out of the box you get:
- Discovery through an agent card served at
/.well-known/agent-card.json. - A task lifecycle with streaming, artifacts and cancellation. See tasks and streaming.
- Multi-turn sessions: each A2A
contextIdmaps to a persistent backend session. - Sub-agent delegation: an agent can call other A2A agents as tools.
- MCP tool support for the backend's own tools.
- Observability through sideband trace events.
- Protocol compatibility: native A2A v1.0, with v0.3.x clients still supported.
Supported agents
| Backend | Package | Notes |
|---|---|---|
| GitHub Copilot | a2a-copilot | Bring your own model (Ollama, OpenAI, Anthropic, Azure, vLLM) |
| Claude | a2a-claude | Permission modes, background tasks, rate-limit handling |
| OpenAI Codex | a2a-codex | Repository sandboxing, approval policy |
| OpenCode | a2a-opencode | Multi-provider by default |
| Google Antigravity | a2a-antigravity | Node server with a managed Python bridge |
All of them are built on @a2a-wrapper/core, which owns the protocol logic, config loading, server, sessions and events. Each wrapper only implements its backend-specific executor.
How it fits with MCP
MCP is the vertical rail: how an agent reaches tools. A2A is the horizontal rail: how agents talk to each other. These wrappers add the horizontal rail to agents that already have the vertical one.
When to use it
| You want to… | Use |
|---|---|
| Expose Claude, Codex, Copilot, OpenCode or Antigravity as an A2A server with a config file | a2a-wrapper |
| Build a fully custom agent from scratch | The official A2A SDKs |
| Orchestrate agents with LangGraph, Google ADK, CrewAI or similar | Those frameworks as the orchestrator, calling these wrappers as execution nodes |
Security first
The A2A endpoint has no built-in authentication and the agents can edit files and run commands. Bind to 127.0.0.1 for local use and read the security guide before exposing anything on a network.