MCP-A2A-Gateway
Un servidor de passarel·la que connecta el Model Context Protocol (MCP) amb el protocol Agent-to-Agent (A2A), permetent als assistents d’IA compatibles amb MCP (com Claude) d’interactuar de manera fluida amb agents A2A.
Visió general
Aquest projecte serveix com a capa d’integració entre dos protocols d’agents d’IA d’avantguarda:
Model Context Protocol (MCP): Desenvolupat per Anthropic, MCP permet als assistents d’IA connectar-se a eines i fonts de dades externes. Estàndarditza com les aplicacions d’IA i els models de llenguatge grans es connecten a recursos externs de manera segura i composable.
Agent-to-Agent Protocol (A2A): Desenvolupat per Google, A2A permet la comunicació i interoperabilitat entre agents d’IA diferents a través d’una interfície JSON-RPC estandarditzada.
En connectar aquests protocols, aquest servidor permet als clients MCP (com Claude) descobrir, registrar, comunicar-se i gestionar tasques en agents A2A a través d’una interfície unificada.
Inici ràpid
🎉 El paquet ja està disponible a PyPI!
No cal instal·lar
# Executa amb la configuració per defecte (transport stdio)
uvx mcp-a2a-gateway
# Executa amb transport HTTP per a clients web
MCP_TRANSPORT=streamable-http MCP_PORT=10000 uvx mcp-a2a-gateway
# Executa amb un directori de dades personalitzat
MCP_DATA_DIR="/Users/your-username/Desktop/a2a_data" uvx mcp-a2a-gateway
# Executa amb una versió específica
uvx mcp-a2a-gateway==0.1.เงินบาท
# Executa amb diverses variables d’entorn
MCP_TRANSPORT=stdio MCP_DATA_DIR="/custom/path" LOG_LEVEL=DEBUG uvx mcp-a2a-gateway
Desenvolupament local
# Clona i executa localment
git clone https://github.com/yw0nam/MCP-A2A-Gateway.git
cd MCP-A2A-Gateway
# Executa amb uv
uv run mcp-a2a-gateway
# Executa amb uvx des del directori local
uvx --from . mcp-a2a-gateway
# Executa amb un entorn personalitzat per al desenvolupament
MCP_TRANSPORT=streamable-http MCP_PORT=8080 uvx --from . mcp-a2a-gateway
Demo
1. Executa l’agent “hello world” a l’exemple A2A
també admet agents desplegats al núvol

# also support cloud deployed Agent

2. Utilitza Claude o GitHub Copilot per registrar l’agent.


3. Utilitza Claude per enviar una tasca a l’agent “hello” i obtenir el resultat.

4. Utilitza Claude per recuperar el resultat de la tasca.

Funcionalitats
- Gestió d’agents
- Registrar agents A2A amb el servidor de passarel·la
- Enumerar tots els agents registrats
- Desregistrar agents quan ja no són necessaris
- Comunicació
- Enviar missatges a agents A2A i rebre respostes
- Enviament de missatges asíncrons per a una resposta immediata del servidor
- Fluxar respostes d’agents A2A en temps real
- Gestió de tasques
- Fer seguiment de quina agent A2A gestiona quina tasca
- Recuperar resultats de tasques utilitzant ID de tasca
- Obtenir una llista de totes les tasques i els seus estats
- Cancel·lar tasques en execució
- Suport de transport
- Tipus de transport múltiples: stdio, streamable-http, SSE
- Configura el tipus de transport amb la variable d’entorn
MCP_TRANSPORT
Requisits previs
Abans de començar, assegura't d’instal·lar:
- Python 3.11+
- uv (per al desenvolupament local)
Instal·lació
Executa directament sense instal·lar amb uvx:
uvx mcp-a2a-gateway
Clona el repositori:
- git clone https://github.com/yw0nam/MCP-A2A-Gateway.git
- cd MCP-A2A-Gateway
Executa amb uv:
uv run mcp-a2a-gateway
Configuració
Variables d’entorn
| Variable | Predeterminat | Descripció |
|---|---|---|
MCP_TRANSPORT | stdio | Tipus de transport a utilitzar (stdio, streamable-http, SSE) |
MCP_PORT | 8000 | Port per a la connexió HTTP |
MCP_DATA_DIR | ./data | Directori on es desa la configuració i les dades persistents |
LOG_LEVEL | INFO | Nivell de registre (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
Exemple de fitxer .env:
# Exemple de fitxer .env
MCP_TRANSPORT=streamable-http
MCP_PORT=10000
MCP_DATA_DIR=./data
LOG_LEVEL=INFO
Tipus de transport
Transport stdio: Utilitza la entrada i sortida estàndard del terminal. Adequat per a proves locals i desenvolupament.
Transport streamable-http: Serveix com a servidor HTTP que permet als clients web enviar peticions i rebre respostes en temps real.
Transport SSE (Server-Sent Events): Permet la transmissió d’esdeveniments unidireccional del servidor al client per a actualitzacions en temps real.
Connexió amb GitHub Copilot
Afegir a settings.json de VS Code per a SSE o HTTP:
{
"mcp.transport": "sse",
"mcp.port": 8000
}
Altres configuracions possibles:
{
"mcp.transport": "http",
"mcp.port": 8000
}
{
"mcp.transport": "stdio"
}
Connexió amb Claude Desktop
Afegir a claude_config.json:
{
"mcp.transport": "http",
"mcp.port": 8000
}
{
"mcp.transport": "sse",
"mcp.port": 8000
}
{
"mcp.transport": "stdio"
}
Eines MCP disponibles
Descripció dels extrems que el servidor ofereix per a la gestió d’agents, comunicació i tasques.
Gestió d’agents
RegisterAgent
{ "jsonrpc": "2.0", "method": "RegisterAgent", "params": { "agent_id": "agent-123", "endpoint": "http://localhost:8080" }, "id": 1 }ListAgents
{ "jsonrpc": "2.0", "method": "ListAgents", "params": {}, "id": 2 }UnregisterAgent
{ "jsonrpc": "2.0", "method": "UnregisterAgent", "params": { "agent_id": "agent-123" }, "id": 3 }




