Utilice las sesiones de MCP con su AgentCore puerta de enlace
Las sesiones MCP permiten interacciones con estado entre los clientes y su puerta de enlace. AgentCore Cuando las sesiones están habilitadas, la puerta de enlace genera un identificador de sesión único durante la inicialización y mantiene el estado en varias solicitudes, lo que permite utilizar funciones MCP avanzadas, como la obtención y el muestreo.
Ventajas del uso de sesiones
- Interacciones estáticas entre el servidor MCP y el objetivo
-
La puerta de enlace almacena el ID de sesión del servidor MCP objetivo y lo reutiliza en las siguientes llamadas a la herramienta. Esto evita la reinicialización en cada solicitud y permite a los objetivos mantener el contexto en todas las llamadas.
- Respuestas más rápidas con AgentCore objetivos de tiempo de ejecución
-
Cuando se reutiliza la sesión de destino, AgentCore Runtime no necesita iniciar en frío una nueva conexión de servidor MCP en cada solicitud, lo que se traduce en tiempos de respuesta más rápidos.
- Habilita funciones MCP avanzadas
-
Las sesiones son un requisito previo para la obtención y el muestreo, que requieren el seguimiento del estado de varias solicitudes.
- User-scoped seguridad (pasarelas autenticadas)
-
En el caso de las pasarelas con autenticación entrante, las sesiones están vinculadas a la identidad del usuario verificada, lo que evita el secuestro de la sesión.
Habilite las sesiones en su puerta de enlace
Para habilitar las sesiones, especifique una sessionConfiguration en el protocolConfiguration.mcp campo al crear o actualizar la puerta de enlace.
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 } } } }
El parámetro sessionTimeoutInSeconds es opcional. Si se omite, el tiempo de espera predeterminado es de 3600 segundos (1 hora). El rango válido es de 900 (15 minutos) a 28800 (8 horas). El tiempo de espera es absoluto y se calcula a partir de la primera initialize solicitud.
Para habilitar también las funciones que dependen de las sesiones, como la obtención y el muestreo, también debes habilitar la transmisión de respuestas:
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 }, "streamingConfiguration": { "enableResponseStreaming": true } } } }
nota
Cuando las sesiones están habilitadas en una puerta de enlace, no puede incluirlas Mcp-Session-Id en la configuración metadataConfiguration de propagación del encabezado del destino de una puerta de enlace. La puerta de enlace administra los ID de sesión internamente. Si se intenta hacerlo, se produce un error de solicitud incorrecta del HTTP 400.
Ciclo de vida de la sesión
El ciclo de vida de la sesión sigue el flujo de inicialización del protocolo MCP:
-
El cliente envía una
initializesolicitud a la puerta de enlace. -
La puerta de enlace crea una sesión, almacena los metadatos de la sesión y devuelve un elemento único
Mcp-Session-Iden el encabezado de la respuesta. -
El cliente incluye el
Mcp-Session-Idencabezado en todas las solicitudes posteriores. -
La pasarela valida la existencia de la sesión, la caducidad y la identidad del usuario (en el caso de las pasarelas autenticadas) en cada solicitud.
-
Cuando se agota el tiempo de espera de la sesión o el cliente se desconecta, la sesión caduca.
En la primera llamada de herramienta a un servidor MCP de destino dentro de una sesión, la puerta de enlace inicializa una conexión con el destino y almacena el identificador de sesión del objetivo. Las siguientes llamadas a una herramienta al mismo destino reutilizan este ID de sesión almacenado, lo que evita la inicialización repetida.
Identidad del usuario y alcance de la sesión
El ámbito de las sesiones se basa en la identidad del usuario autenticado para evitar el secuestro de la sesión. La puerta de enlace obtiene la identidad del usuario de forma diferente según el método de autenticación entrante configurado en la puerta de enlace:
| Método de autenticación | Identificador de usuario | Comportamiento |
|---|---|---|
|
OAuth/ OIDC |
|
Alcance completo. Solo el usuario que creó la sesión puede utilizarla. La |
|
AWS IAM (SiGv4) |
ARN de la entidad principal |
Alcance completo. Solo el director de IAM que creó la sesión puede utilizarla. El ARN principal es único en todo el mundo e inmutable durante toda AWS la vida útil de la entidad de IAM. Ejemplo: |
|
Sin autenticación |
Ninguno |
Sin ámbito de usuario. Las sesiones están disponibles pero no están vinculadas a ninguna identidad. Cualquier persona con el ID de sesión puede interactuar con la sesión. |
importante
En el caso de las puertas de enlace sin autenticación entrante, las sesiones conllevan un riesgo de secuestro de la sesión, tal como se describe en las consideraciones de seguridad de la especificación MCP
En el caso de las puertas de enlace autenticadas, si un usuario diferente intenta utilizar un ID de sesión existente, la puerta de enlace devuelve el HTTP 404 Not Found (la sesión es invisible para los demás usuarios).
Tiempo de espera y caducidad de la sesión
El tiempo de espera de la sesión se calcula a partir de la primera solicitud. initialize Una vez transcurrido el tiempo de espera, la sesión caduca y no se puede utilizar.
-
Tiempo de espera predeterminado: 3600 segundos (1 hora)
-
Rango configurable: de 900 segundos (15 minutos) a 28800 segundos (8 horas)
Si la sesión de un servidor MCP de destino caduca antes de que se agote el tiempo de espera de la sesión de la puerta de enlace, la puerta de enlace se reinicializa de forma transparente con el destino y actualiza el ID de sesión de destino almacenado. La sesión de puerta de enlace permanece activa.
Gestión de errores
| Escenario | Estado HTTP | Description (Descripción) |
|---|---|---|
|
Falta el |
400: solicitud maligna |
Todas las solicitudes posteriores |
|
ID de sesión no válido o caducado |
404 Not Found (No encontrado) |
La sesión no existe o se ha agotado el tiempo de espera. |
|
Un usuario diferente intenta usar la sesión de otro usuario (pasarelas autenticadas) |
404 Not Found (No encontrado) |
La sesión es invisible para otros usuarios. |
|
|
400: solicitud maligna |
Se devuelve al plano de control al crear o actualizar un objetivo. |