MCP Fusion/Integrations and federation/A2A-Bridge

A2A-Bridge

Frag die KI über Vinkius

Stellen Sie einen MCP-Fusion-Konnektor als Agent2Agent-Dienst bereit: Erzeugen Sie eine Agent Card aus der Registry, verarbeiten Sie JSON-RPC-Methoden für Nachrichten und Aufgaben und streamen Sie Ergebnisse über HTTP.

MCP ist die Tool-Grenze. A2A ist die Agenten-Grenze. Das A2A-Paket von MCP Fusion ermöglicht einem Konnektor die Teilnahme an einem Agent2Agent-Netzwerk, ohne seine Tools neu zu schreiben: Die Registry bleibt die Quelle der Fähigkeiten, und die Bridge stellt das agentenorientierte Aufgabenprotokoll bereit.

Eine Agent Card kompilieren

typescript
import { compileAgentCard, A2AHandler } from '@mcpfusion/a2a';

const card = compileAgentCard(
  {
    name: 'billing-agent',
    version: '1.0.0',
    url: 'http://localhost:3001',
  },
  registry.getBuilders(),
  promptRegistry,
  resourceRegistry,
);

Der Compiler leitet Fähigkeiten aus Builder-Namen und Aktionsmetadaten ab. Die Card wird unter /.well-known/agent-card.json bereitgestellt; der alte Pfad lautet /.well-known/agent.json. A2A-JSON-RPC-Anfragen verwenden /a2a, und das Paket weist sich als Protokoll 1.0.0 aus.

Die optionale bridge-Konfiguration beschreibt, wie die Card über eine andere Bridge erreicht wird. Pflegen Sie keine zweite Fähigkeitenliste von Hand: Kompilieren Sie aus denselben Buildern, die MCP bereitstellen, damit die Card mit der tatsächlichen Registry übereinstimmt.

JSON-RPC-Handler

Der Handler verwendet einen Executor mit zwei Verantwortlichkeiten:

typescript
const executor = {
  execute: async (toolName: string, args: Record<string, unknown>) =>
    registry.routeCall(context, toolName, args),
  hasToolName: (name: string) => registry.has(name),
};

const handler = new A2AHandler(executor);
const response = await handler.handleRequest(jsonRpcRequest);

Zu den unterstützten Methoden gehören message/send, message/stream, tasks/get, tasks/cancel, tasks/list, tasks/resubscribe, das Setzen, Abrufen, Auflisten und Löschen der Push-Benachrichtigungskonfiguration sowie agent/getAuthenticatedExtendedCard. Die Bridge validiert JSON-RPC, ordnet Tool-Ausführungsfehler A2A-Fehlercodes zu und hält MCP-Tool-Namen hinter der Executor-Grenze.

Aufgabenlebenszyklus

TaskManager verwaltet den vom Handler verwendeten Aufgabenstatus. Seine operativen Methoden sind:

  • createTask(contextId, message?)
  • updateStatus(taskId, status)
  • addArtifact(taskId, artifact)
  • getTask(taskId)
  • listTasks(request)
  • cancelTask(taskId)

Konfigurieren Sie die Aufgaben-TTL und die maximale Aufgabenanzahl. Dies ist ein In-Process-Manager. Verwenden Sie die Bridge hinter einem Prozessmodell, das zu ihrer Lebensdauer passt, oder legen Sie dauerhaften Aufgabenstatus an der A2A-Grenze ab.

Streaming-Transport

StreamableHttpTransport umschließt einen A2AHandler und einen optionalen Streaming-Executor. message/stream sendet Server-Sent Events mit formatSSEEvent, formatSSEErrorEvent und den Parser-Hilfsfunktionen des Pakets. Der MCP-Server selbst kann zustandslos bleiben, während die A2A-Aufgabenebene den Lebenszyklus des Streams verwaltet.

Fehlermodell

Die Bridge stellt typisierte Fehler für ungültiges JSON-RPC, nicht unterstützte Vorgänge, fehlende Aufgaben, nicht stornierbare Aufgaben, nicht unterstützte Push-Benachrichtigungen, ungültige Agentenantworten und Inhaltstypen bereit. Außerdem exportiert sie die A2A-Fehlercodetabelle, den Erweiterungsheader X-A2A-Extensions, SSE-Header und die Protokollkonstanten, sodass eine Integration gegen dieselben Werte testen kann, die sie bereitstellt.

Sicherheitsgrenze

Die A2A-Bridge ersetzt die MCP-Authentifizierung nicht. Setzen Sie JWT, API-Schlüssel oder Gateway-Berechtigung vor den Executor und lassen Sie die Agent Card nur die Tools widerspiegeln, die das Deploy bereitstellen darf. Wenn diese Bridge hinter Swarm liegt, erfolgen Delegationstoken und Namespace-Isolation vor der A2A-Ausführung. Bei öffentlicher Bereitstellung authentifizieren Sie die HTTP-Route vor dem Parsen von Aufgabenmeldungen.

MCP und A2A gemeinsam

Ein einzelner Konnektor kann Folgendes bereitstellen:

ConsumerSurface
Claude, Cursor, any MCP clientMCP-Tools, Ressourcen und Prompts
Another agent platformAgent Card und A2A-Aufgaben
Vinkius CloudKonnektortoken, Governance und Konsolensteuerung

Die Geschäftslogik bleibt in denselben Handlern und Presentern. Geändert wird nur der Protokolladapter am Rand.

Nächste Schritte