MCP Fusion/Integrations and federation/Pont A2A

Pont A2A

Demandez à l’IA à propos de Vinkius

Exposez un connecteur MCP Fusion comme service Agent2Agent : compilez une Agent Card depuis le registre, gérez les méthodes JSON-RPC de messages et de tâches et diffusez les résultats via HTTP.

MCP est la limite des outils. A2A est la limite des agents. Le package A2A de MCP Fusion permet à un connecteur de participer à un réseau Agent2Agent sans réécrire ses outils : le registre reste la source des capacités et le pont expose le protocole de tâches destiné aux agents.

Compiler une Agent Card

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,
);

Le compilateur déduit les compétences à partir des noms des builders et des métadonnées d’action. La card est servie à /.well-known/agent-card.json ; l’ancien chemin est /.well-known/agent.json. Les requêtes A2A JSON-RPC utilisent /a2a et le package s’identifie comme le protocole 1.0.0.

La configuration facultative bridge décrit la manière dont la card est atteinte par un autre pont. Ne maintenez pas manuellement une seconde liste de capacités : compilez-la depuis les mêmes builders qui servent MCP afin que la card reste alignée sur le registre réel.

Handler JSON-RPC

Le handler consomme un executor avec deux responsabilités :

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);

Les méthodes prises en charge comprennent message/send, message/stream, tasks/get, tasks/cancel, tasks/list, tasks/resubscribe, la configuration des notifications push pour définir, obtenir, lister et supprimer, ainsi que agent/getAuthenticatedExtendedCard. Le pont valide JSON-RPC, associe les erreurs d’exécution des outils aux codes d’erreur A2A et garde les noms des outils MCP derrière la limite de l’executor.

Cycle de vie des tâches

TaskManager possède l’état des tâches utilisé par le handler. Ses méthodes opérationnelles sont :

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

Configurez la durée de vie des tâches et le nombre maximal de tâches. Il s’agit d’un gestionnaire en processus ; utilisez le pont derrière un modèle de processus adapté à sa durée de vie ou placez l’état durable des tâches à la limite A2A.

Transport de streaming

StreamableHttpTransport enveloppe un A2AHandler et un executor de streaming facultatif. message/stream émet des événements envoyés par le serveur en utilisant formatSSEEvent, formatSSEErrorEvent et les helpers d’analyse du package. Le serveur MCP lui-même peut rester sans état tandis que la couche de tâches A2A gère le cycle de vie du flux.

Modèle d’erreurs

Le pont expose des erreurs typées pour JSON-RPC invalide, opérations non prises en charge, tâches manquantes, tâches non annulables, notifications push non prises en charge, réponses d’agent invalides et types de contenu. Il exporte également la table des codes d’erreur A2A, l’en-tête d’extension X-A2A-Extensions, les en-têtes SSE et les constantes du protocole, afin qu’une intégration puisse tester les mêmes valeurs que celles qu’elle sert.

Limite de sécurité

Le pont A2A ne remplace pas l’authentification MCP. Placez un JWT, une clé API ou une autorisation de passerelle devant l’executor et faites en sorte que l’Agent Card ne reflète que les outils que le déploiement accepte d’exposer. Si ce pont se trouve derrière Swarm, le jeton de délégation et l’isolation des espaces de noms ont lieu avant l’exécution A2A. S’il est public, authentifiez la route HTTP avant d’analyser les messages de tâches.

MCP et A2A ensemble

Un seul connecteur peut exposer :

ConsumerSurface
Claude, Cursor, any MCP clientoutils, ressources et prompts MCP
Another agent platformAgent Card et tâches A2A
Vinkius Cloudjeton du connecteur, gouvernance et contrôles de la console

La logique métier reste dans les mêmes handlers et Presenters. Ce qui change, c’est l’adaptateur de protocole à la périphérie.

Étapes suivantes