A2A Protocol MCP Server
Bridge between MCP (Model Context Protocol) and Google's Agent2Agent (A2A) Protocol — enabling agent discovery, task delegation, and inter-agent communication.
What is A2A?
The Agent2Agent Protocol was introduced by Google in April 2025 as an open standard for AI agents to communicate with each other. It is now being standardized under the Linux Foundation to ensure vendor-neutral governance.
Key concepts:
- Agent Cards — JSON descriptors that advertise an agent's capabilities, skills, and endpoint
- Task lifecycle — Structured task delegation with states (submitted, working, completed, failed)
- Discovery — Agents can find each other by capability
How This Server Bridges MCP and A2A
MCP provides the interface between AI models and tools. A2A provides the interface between agents. This server combines both:
- MCP tools expose A2A operations to any MCP-compatible AI agent
- Agents can register themselves, discover other agents, and delegate tasks
- Local registry at
~/.a2a-agents/stores Agent Cards and tasks
Tools
| Tool | Description |
|---|---|
create_agent_card |
Create an A2A-compatible Agent Card with skills and endpoint |
register_agent |
Register an agent in the local A2A directory |
discover_agents |
Search for agents by capability |
send_task |
Create a task request following A2A protocol format |
get_task_status |
Check status of a delegated task |
list_registered_agents |
List all registered agents with capabilities |
Installation
pip install a2a-protocol-mcp-server
Or with uvx:
uvx a2a-protocol-mcp-server
Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"a2a-protocol": {
"command": "uvx",
"args": ["a2a-protocol-mcp-server"]
}
}
}
Cursor / Windsurf
{
"mcpServers": {
"a2a-protocol": {
"command": "uvx",
"args": ["a2a-protocol-mcp-server"]
}
}
}
Usage Example
1. Create an Agent Card for your agent:
create_agent_card("MyBot", "Translates text", ["translation", "german", "english"], "http://localhost:8000")
2. Register it:
register_agent(<agent_card>)
3. Discover agents:
discover_agents("translation")
4. Send a task:
send_task("MyBot", "Translate 'Hello World' to German")
5. Check status:
get_task_status("<task-id>")
Data Storage
Agent Cards and tasks are stored locally in ~/.a2a-agents/:
agents.json— Registered Agent Cardstasks.json— Task history and status
Why A2A + MCP?
| MCP | A2A | |
|---|---|---|
| Purpose | Model ↔ Tool interface | Agent ↔ Agent interface |
| Focus | Tool access, context | Discovery, delegation |
| Standard | Anthropic | Google → Linux Foundation |
Together they create a complete agent communication stack: MCP handles the vertical (model-to-tools), A2A handles the horizontal (agent-to-agent).
More MCP Servers by AiAgentKarl
| Category | Servers |
|---|---|
| 🔗 Blockchain | Solana |
| 🌍 Data | Weather · Germany · Agriculture · Space · Aviation · EU Companies |
| 🔒 Security | Cybersecurity · Policy Gateway · Audit Trail |
| 🤖 Agent Infra | Memory · Directory · Hub · Reputation |
| 🔬 Research | Academic · LLM Benchmark · Legal |
License
MIT