register_agentLABSCO SUMMARY
One conversation, several agents, tasks you can come back to.
The asynchronous shape is the design decision worth knowing: sending a message returns a task identifier rather than waiting, so a long-running agent does not stall the chat and its answer can be collected later. Streaming responses and task cancellation are on the roadmap rather than in the tool list.
What it is
A gateway between the Model Context Protocol and the Agent-to-Agent protocol. MCP clients register A2A agents with it, send them messages, and track the resulting tasks.
What you get
- register_agent adds an A2A agent by URL, list_agents shows what is registered, unregister_agent removes one
- send_message hands a message to a registered agent and returns a task identifier immediately, so the client is not blocked while the agent works
- get_task_result fetches a task's result by that identifier, and get_task_list shows every task with its status
- The gateway keeps track of which agent is handling which task
- It runs over stdio for desktop clients, or streamable HTTP or server-sent events for network clients
- Agent and task state persists to a data directory you choose
Requirements
Python, run straight from the published package with uvx or from a checkout. Each A2A agent you want to reach must be running and reachable at its own URL, locally or deployed. No account or key for the gateway itself.
Setup effort
One command — uvx mcp-a2a-gateway
USE CASES
Reaching an agent that is not an MCP server
Register it by URL and send it work from the same client you already use.
Handing off work that takes a while
Send the message, keep talking, and collect the result by its identifier when it is ready.
Checking what is still running
List every task with its status instead of polling each identifier you remember.
Keeping the roster tidy
See which agents are registered and drop the ones you no longer use.
6 tools
Listed in project docs. Your client may show a different list.
list_agentsunregister_agentsend_messageget_task_resultget_task_listBEFORE YOU INSTALL
What to know first
Tools you get
6 tools named in the project's documentation.
Requires
- uvx on PATH
- Python 3.11+
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx mcp-a2a-gatewayMCP Clients
Claude Desktop — uvx
MCP_DATA_DIR is the folder where the gateway keeps registered agents and tasks — <YOUR_USERNAME> is your user name, or point it at any folder you can write to.
{
"mcpServers": {
"mcp_a2a_gateway": {
"command": "uvx",
"args": [
"mcp-a2a-gateway"
],
"env": {
"MCP_TRANSPORT": "stdio",
"MCP_DATA_DIR": "/Users/<YOUR_USERNAME>/Desktop/data/Claude/a2a_gateway/"
}
}
}
}VS Code — stdio
MCP_DATA_DIR is the folder where the gateway keeps registered agents and tasks — <YOUR_USERNAME> is your user name, or point it at any folder you can write to.
{
"servers": {
"mcp_a2a_gateway": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-a2a-gateway"
],
"env": {
"MCP_TRANSPORT": "stdio",
"MCP_DATA_DIR": "/Users/<YOUR_USERNAME>/Desktop/data/Copilot/a2a_gateway/"
}
}
}
}