Ir al contenido

TypeScript Agent a MCP

El generador connection puede conectar tu TypeScript Agent a un servidor MCP (ya sea TypeScript o Python).

El generador configura todo el cableado necesario para que tu agente pueda descubrir e invocar las herramientas del servidor MCP, tanto cuando se despliega en AWS (a través de Bedrock AgentCore) como cuando se ejecuta localmente.

Antes de usar este generador, asegúrate de tener:

  1. Un proyecto TypeScript con un componente Strands Agent
  2. Un proyecto con un componente de servidor MCP (ya sea ts#mcp-server o py#mcp-server)
  3. Ambos componentes creados con infra: agentcore
Terminal window
pnpm nx g @aws/nx-plugin:connection
También puede realizar una ejecución en seco para ver qué archivos se cambiarían
Terminal window
pnpm nx g @aws/nx-plugin:connection --dry-run

Selecciona tu proyecto de agente como origen y tu proyecto de servidor MCP como destino. Si tus proyectos contienen múltiples componentes, especifica las opciones sourceComponent y targetComponent para desambiguar.

ParámetroTipoPredeterminadoDescripción
sourceProject Requeridostring-El proyecto de origen
targetProject Requeridostring-El proyecto de destino al que conectar
sourceComponent string-El componente de origen desde el que conectar (nombre del componente, ruta relativa a la raíz del proyecto de origen, o id del generador). Use '.' para seleccionar explícitamente el proyecto como origen.
targetComponent string-El componente de destino al que conectar (nombre del componente, ruta relativa a la raíz del proyecto de destino, o id del generador). Use '.' para seleccionar explícitamente el proyecto como destino.
preferInstallDependencies booleantrueSi se prefiere instalar las dependencias después de que se ejecute el generador. Establecer en false para diferir la instalación al ejecutar múltiples generadores en lote (la instalación aún se ejecuta si es necesario para que los generadores subsiguientes puedan calcular el grafo de proyectos de Nx); instalar una vez al final.

El generador crea un paquete compartido agent-connection y modifica el código de tu agente:

  • Directoriopackages/common/agent-connection
    • Directoriosrc
      • Directorioapp
        • <mcp-server-name>-client-strands.ts High-level Strands client for the connected MCP server
      • Directoriocore
        • agentcore-endpoints.ts Framework-agnostic ARN/URL resolution
        • agentcore-fetch.ts Framework-agnostic SigV4 / JWT / session-forwarding fetch
        • agentcore-mcp-transport.ts Framework-agnostic MCP transport
        • agentcore-mcp-client-strands.ts Strands MCP client wrapping the transport
      • index.ts Exports all clients
    • project.json
    • tsconfig.json

Además, hace lo siguiente:

  • Transforma el agent.ts de tu agente para importar y usar las herramientas del servidor MCP
  • Actualiza el target dev del agente para que dependa del target serve del servidor MCP
  • Instala las dependencias requeridas

El generador transforma el agent.ts de tu agente para usar las herramientas del 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],
});
};

El parámetro sessionId se transmite desde el llamador, asegurando consistencia para Bedrock AgentCore Observability.

Después de ejecutar el generador de conexión, necesitas otorgar al agente permiso para invocar el 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);

El ARN del runtime AgentCore del servidor MCP se registra automáticamente en el namespace agentcore de Runtime Configuration por el constructo CDK generado, para que el agente pueda descubrirlo en tiempo de ejecución.

El generador configura el target dev del agente para:

  1. Iniciar automáticamente el/los servidor(es) MCP conectado(s)
  2. Establecer LOCAL_DEV=true para que el cliente generado use transporte HTTP directo en lugar de AgentCore

Ejecuta el agente localmente con:

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

Esto iniciará tanto el agente como todos los servidores MCP conectados, con el agente conectándose a los servidores MCP directamente a través de HTTP en sus puertos locales asignados.