MCP Fusion/Integrations and federation/Connecteurs AWS

Connecteurs AWS

Demandez à l’IA à propos de Vinkius

Exposez des fonctions AWS Lambda et des Step Functions marquées comme outils MCP avec des adaptateurs typés, une découverte déterministe et une interception MVA autour du payload.

La logique métier réelle s’exécute souvent déjà sur AWS. Le package AWS de MCP Fusion fournit à un agent une surface MCP typée au-dessus des fonctions Lambda et des Step Functions, tout en conservant la découverte, les annotations et la mise en forme des réponses dans une seule limite de connecteur.

Découverte Lambda

typescript
import { LambdaClient } from '@aws-sdk/client-lambda';
import { createAwsConnector, createLambdaAdapter } from '@mcpfusion/aws';

const aws = await createAwsConnector({
  lambdaClient: await createLambdaAdapter(
    new LambdaClient({ region: 'us-east-1' }),
  ),
  pollInterval: 60_000,
  onChange: () => server.notification({
    method: 'notifications/tools/list_changed',
  }),
});

for (const tool of aws.tools()) {
  registry.register(defineTool(tool.name, tool.config));
}

La configuration vérifiée du connecteur accepte un client Lambda facultatif, un client Step Functions, un filtre de tags, enableLambda (true par défaut), enableStepFunctions (false par défaut), pollInterval, onChange et onError. La découverte est volontairement activée par tags : le filtre par défaut exige mcp:expose=true.

Les tags sont la liste d’autorisation AWS

Le package définit des clés de tags pour l’exposition, le groupe, l’action, la lecture seule, le comportement destructeur et le type de Step Functions :

TagMeaning
mcp:expose=trueéligible à la découverte
mcp:groupespace de noms MCP
mcp:actionnom de l’action dans l’espace de noms
mcp:readOnlyannotation en lecture seule
mcp:destructiveannotation destructive
mcp:sfn-typemode d’exécution Step Functions

LambdaDiscovery et StepFunctionDiscovery produisent des résumés, puis synthesizeLambdaTools et synthesizeStepFunctionTools produisent les configurations d’outils. synthesizeAll combine l’ensemble découvert et toToolName lui donne un nom MCP stable.

Outils AWS manuels

La découverte n’est pas la seule voie. Pour une fonction critique dont le contrat ne doit pas changer lorsque les tags changent, définissez-la directement :

typescript
import { defineAwsTool } from '@mcpfusion/aws';

const charge = defineAwsTool({
  name: 'payments.charge',
  arn: 'arn:aws:lambda:us-east-1:123:function:charge',
  description: 'Charge an approved payment',
  annotations: {
    readOnlyHint: false,
    destructiveHint: true,
  },
});

La configuration manuelle exige l’ARN et accepte une description ainsi que des annotations MCP. La configuration renvoyée doit encore être composée avec le registre, le Presenter et le middleware habituels.

Step Functions

Définissez enableStepFunctions: true et fournissez le client Step Functions. L’adaptateur expose une exécution synchrone ou asynchrone selon le tag mcp:sfn-type découvert. La limite MVA intercepte le payload AWS avant qu’il ne devienne visible pour le modèle : l’action générée peut associer un Presenter et expurger des champs comme un outil écrit à la main.

Identifiants AWS et limites de tenant

Le package AWS ne décide ni de votre politique IAM ni de votre mappage de tenant. Créez le client avec les identifiants et la région que votre déploiement est autorisé à utiliser, résolvez l’identité du tenant dans contextFactory et gardez les identifiants propres au compte hors des arguments contrôlés par le modèle. Si la fonction a besoin d’une clé fournisseur fournie par l’acheteur, utilisez BYOC credentials, pas un champ du schéma d’outil.

Le README contient d’anciens exemples utilisant des noms de découverte non exportés. Le barrel source fait foi : utilisez createAwsConnector, defineAwsTool, les adaptateurs, les classes de découverte et les fonctions de synthèse indiquées ci-dessus.

Étapes suivantes

  • Authentication: protégez les outils adossés à AWS
  • Generators: générez depuis OpenAPI et Prisma
  • Contracts: verrouillez les capacités découvertes avant le déploiement