Pular para o conteúdo

AgentCore Gateway para Servidor MCP

O gerador connection pode registrar um servidor MCP (seja TypeScript ou Python) como um destino de um AgentCore Gateway.

Uma vez conectado, o Gateway agrega as ferramentas do servidor MCP em seu único endpoint MCP, avalia chamadas contra seu mecanismo de políticas Cedar e assina o tráfego de saída para o servidor MCP com IAM SigV4.

Antes de usar este gerador, certifique-se de ter:

  1. Um projeto agentcore-gateway
  2. Um componente de servidor MCP (ts#mcp-server ou py#mcp-server) criado com infra: agentcore e auth: iam

O Gateway deve ter protocol: mcp e o servidor MCP deve ter auth: iam — o gerador valida ambos. Servidores MCP não-IAM não podem ser anexados porque o Gateway assina o tráfego de saída com SigV4.

  1. Instale o Nx Console VSCode Plugin se ainda não o fez
  2. Abra o console Nx no VSCode
  3. Clique em Generate (UI) na seção "Common Nx Commands"
  4. Procure por @aws/nx-plugin - connection
  5. Preencha os parâmetros obrigatórios
    • Clique em Generate

    Selecione o projeto Gateway como origem e o projeto do servidor MCP como destino. Se o projeto do servidor MCP contiver múltiplos componentes, especifique targetComponent para desambiguar.

    Parâmetro Tipo Padrão Descrição
    sourceProject Obrigatório string - O projeto de origem
    targetProject Obrigatório string - O projeto de destino para conectar
    sourceComponent string - O componente de origem para conectar (nome do componente, caminho relativo à raiz do projeto de origem, ou id do gerador). Use '.' para selecionar explicitamente o projeto como origem.
    targetComponent string - O componente de destino para conectar (nome do componente, caminho relativo à raiz do projeto de destino, ou id do gerador). Use '.' para selecionar explicitamente o projeto como destino.
    preferInstallDependencies boolean true Se deve preferir instalar dependências após a execução do gerador. Defina como false para adiar a instalação ao executar múltiplos geradores em lote (uma instalação ainda é executada se necessário para que os geradores subsequentes possam calcular o grafo de projetos Nx); instale uma vez no final.

    O gerador conecta projetos existentes em vez de emitir novos arquivos de origem. Os seguintes arquivos são modificados:

    • Directorypackages/<gateway>
      • project.json <gateway>-serve-local ganha uma dependência no <mcp>-serve-local do servidor MCP
      • serve-local.ts ATTACHED_MCP_SERVERS atualizado para que o gateway local agregue o servidor MCP

    O destino dev do projeto Gateway ganha uma dependência no destino <mcp>-dev do servidor MCP, então executar o Gateway localmente também inicia o servidor MCP. O servidor MCP também é registrado no local-dev.ts do projeto Gateway para que o gateway local agregue suas ferramentas.

    Adicionando o destino do servidor MCP à sua stack

    Seção intitulada “Adicionando o destino do servidor MCP à sua stack”

    O gerador não pode conectar automaticamente o destino do servidor MCP à sua infraestrutura porque ele não sabe qual stack ou módulo instancia o Gateway. Adicione uma única chamada para gateway.addMcpServer(server) você mesmo.

    Na stack onde você instancia o Gateway, registre o servidor MCP como um destino:

    packages/infra/src/stacks/application-stack.ts
    const myMcpServer = new MyMcpServer(this, 'MyMcpServer');
    const myGateway = new MyGateway(this, 'MyGateway');
    // Register the MCP server as a target of the Gateway. The target name
    // defaults to the MCP server construct's id in kebab-case (`my-mcp-server`).
    myGateway.addMcpServer(myMcpServer);

    O nome do destino do Gateway (o mcpServerName do servidor MCP por padrão) é usado como prefixo para nomes de ações Cedar — o formato da ação é AgentCore::Action::"<targetName>___<toolName>". Veja a seção Escrevendo Políticas. Mantenha o nome do destino curto e estável; alterá-lo posteriormente invalida quaisquer políticas Cedar que referenciem o nome antigo.

    Para substituir o nome do destino padrão, passe gatewayTargetName:

    myGateway.addMcpServer(myMcpServer, { gatewayTargetName: 'my-mcp' });

    O construto configura o destino com iamCredentialProvider.service = 'bedrock-agentcore' para que o Gateway assine chamadas de saída usando sua própria função de execução.

    Executar o Gateway localmente com:

    Terminal window
    pnpm nx dev <gateway-name>

    inicia um gateway local mais cada servidor MCP anexado em sua porta local atribuída. O gateway local expõe um único endpoint MCP que agrega as ferramentas dos servidores anexados. Agentes conectados ao Gateway via os geradores de conexão de gateway TypeScript ou Python apontam para ele ao executar com LOCAL_DEV=true.

    s e implantadas. :::