Pular para o conteúdo

TypeScript Agent para MCP

O gerador connection pode conectar seu TypeScript Agent a um servidor MCP (seja TypeScript ou Python).

O gerador configura toda a estrutura necessária para que seu agente possa descobrir e invocar as ferramentas do servidor MCP, tanto quando implantado na AWS (via Bedrock AgentCore) quanto quando executado localmente.

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

  1. Um projeto TypeScript com um componente Strands Agent
  2. Um projeto com um componente de servidor MCP (seja ts#mcp-server ou py#mcp-server)
  3. Ambos os componentes criados com infra: agentcore
Terminal window
pnpm nx g @aws/nx-plugin:connection
Você também pode realizar uma execução simulada para ver quais arquivos seriam alterados
Terminal window
pnpm nx g @aws/nx-plugin:connection --dry-run

Selecione seu projeto de agente como origem e seu projeto de servidor MCP como destino. Se seus projetos contiverem múltiplos componentes, especifique as opções sourceComponent e targetComponent para desambiguar.

ParâmetroTipoPadrãoDescrição
sourceProject Obrigatóriostring-O projeto de origem
targetProject Obrigatóriostring-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 booleantrueSe 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 cria um pacote compartilhado agent-connection e modifica o código do seu agente:

  • Directorypackages/common/agent-connection
    • Directorysrc
      • Directoryapp
        • <mcp-server-name>-client-strands.ts Cliente Strands de alto nível para o servidor MCP conectado
      • Directorycore
        • agentcore-endpoints.ts Resolução de ARN/URL independente de framework
        • agentcore-fetch.ts Fetch com SigV4 / JWT / encaminhamento de sessão independente de framework
        • agentcore-mcp-transport.ts Transporte MCP independente de framework
        • agentcore-mcp-client-strands.ts Cliente MCP Strands envolvendo o transporte
      • index.ts Exporta todos os clientes
    • project.json
    • tsconfig.json

Além disso, ele:

  • Transforma o agent.ts do seu agente para importar e usar as ferramentas do servidor MCP
  • Atualiza o target dev do agente para depender do target serve do servidor MCP
  • Instala as dependências necessárias

O gerador transforma o agent.ts do seu agente para usar as ferramentas do servidor MCP:

packages/example/src/my-agent/agent.ts
import { Agent, tool } from '@strands-agents/sdk';
import { MyMcpServerClientStrands } from '@my-scope/agent-connection';
export const getAgent = async (sessionId: string) => {
const myMcpServerClient = await MyMcpServerClientStrands.create(sessionId);
return new Agent({
systemPrompt: '...',
tools: [myMcpServerClient],
});
};

O parâmetro sessionId é passado através do chamador, garantindo consistência para Bedrock AgentCore Observability.

Após executar o gerador de conexão, você precisa conceder ao agente permissão para invocar o servidor MCP:

packages/infra/src/stacks/application-stack.ts
const mcpServer = new MyMcpServer(this, 'MyMcpServer');
const myAgent = new MyAgent(this, 'MyAgent');
// Grant the agent permissions to invoke the MCP server
mcpServer.grantInvokeAccess(myAgent);

O ARN do runtime AgentCore do servidor MCP é automaticamente registrado no namespace agentcore da Runtime Configuration pelo construto CDK gerado, para que o agente possa descobri-lo em tempo de execução.

O gerador configura o target dev do agente para:

  1. Iniciar o(s) servidor(es) MCP conectado(s) automaticamente
  2. Definir LOCAL_DEV=true para que o cliente gerado use transporte HTTP direto em vez de AgentCore

Execute o agente localmente com:

Terminal window
pnpm nx <agent-name>-dev <project-name>

Isso iniciará tanto o agente quanto todos os servidores MCP conectados, com o agente se conectando aos servidores MCP diretamente via HTTP nas suas portas locais atribuídas.