Utilisez des sessions MCP avec votre passerelle AgentCore
Les sessions MCP permettent des interactions dynamiques entre les clients et votre AgentCore passerelle. Lorsque les sessions sont activées, la passerelle génère un identifiant de session unique lors de l'initialisation et maintient l'état de plusieurs demandes, activant ainsi des fonctionnalités MCP avancées telles que l'élicitation et l'échantillonnage.
Avantages de l'utilisation des sessions
- Interactions ciblées avec le serveur MCP Stateful
-
La passerelle stocke l'ID de session de la cible du serveur MCP et le réutilise lors des appels d'outils suivants. Cela évite la réinitialisation à chaque demande et permet aux cibles de conserver le contexte entre les appels.
- Réponses plus rapides grâce aux cibles AgentCore d'exécution
-
Lorsque la session de la cible est réutilisée, AgentCore Runtime n'a pas besoin de démarrer à froid une nouvelle connexion au serveur MCP à chaque demande, ce qui permet d'accélérer les temps de réponse.
- Active les fonctionnalités MCP avancées
-
Les sessions sont une condition préalable à l'élicitation et à l'échantillonnage, qui nécessitent le suivi de l'état de plusieurs demandes.
- User-scoped sécurité (passerelles authentifiées)
-
Pour les passerelles dotées d'une authentification entrante, les sessions sont liées à l'identité utilisateur vérifiée, ce qui empêche le détournement de session.
Activez les sessions sur votre passerelle
Pour activer les sessions, spécifiez un sessionConfiguration dans le protocolConfiguration.mcp champ lors de la création ou de la mise à jour de votre passerelle.
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 } } } }
Le paramètre sessionTimeoutInSeconds est facultatif. En cas d'omission, le délai d'expiration par défaut est de 3 600 secondes (1 heure). La plage valide est comprise entre 900 (15 minutes) et 28 800 (8 heures). Le délai d'attente est absolu, calculé à partir de la première initialize demande.
Pour activer également les fonctionnalités qui dépendent des sessions, telles que l'élicitation et l'échantillonnage, vous devez également activer le streaming des réponses :
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 }, "streamingConfiguration": { "enableResponseStreaming": true } } } }
Note
Lorsque les sessions sont activées sur une passerelle, vous ne pouvez pas inclure Mcp-Session-Id les paramètres metadataConfiguration de propagation d'en-tête d'une cible de passerelle. La passerelle gère les identifiants de session en interne. Toute tentative de ce type renvoie une erreur HTTP 400 Bad Request.
Cycle de vie des sessions
Le cycle de vie de session suit le flux d'initialisation du protocole MCP :
-
Le client envoie une
initializedemande à la passerelle. -
La passerelle crée une session, stocke les métadonnées de session et renvoie un unique
Mcp-Session-Iddans l'en-tête de réponse. -
Le client inclut l'
Mcp-Session-Iden-tête dans toutes les demandes suivantes. -
La passerelle valide l'existence, l'expiration et l'identité de l'utilisateur (pour les passerelles authentifiées) sur chaque demande.
-
Lorsque la session expire ou que le client se déconnecte, elle expire.
Lors du premier appel d'outil à une cible de serveur MCP au cours d'une session, la passerelle initialise une connexion avec la cible et enregistre l'ID de session de la cible. Les appels d'outils suivants à la même cible réutilisent cet ID de session enregistré, évitant ainsi des initialisations répétées.
Identité de l'utilisateur et définition de la portée de la session
Les sessions sont limitées à l'identité de l'utilisateur authentifié afin d'empêcher le détournement de session. La passerelle obtient l'identité de l'utilisateur différemment en fonction de la méthode d'authentification entrante configurée sur votre passerelle :
| Méthode d’authentification | Identifiant utilisateur | Comportement |
|---|---|---|
|
OAuth//OIDC |
|
Entièrement cadré. Seul l'utilisateur qui a créé la session peut l'utiliser. La |
|
AWS IAM (SigV4) |
ARN principal |
Entièrement cadré. Seul le principal IAM qui a créé la session peut l'utiliser. L'ARN principal est unique au monde et immuable pendant toute AWS la durée de vie de l'entité IAM. Exemple : |
|
Pas d’authentification |
Aucune |
Aucune définition de la portée de l'utilisateur. Les sessions sont disponibles mais ne sont liées à aucune identité. Toute personne possédant l'identifiant de session peut interagir avec la session. |
Important
Pour les passerelles sans authentification entrante, les sessions comportent un risque de détournement de session, comme décrit dans les considérations de sécurité relatives à la spécification MCP
Pour les passerelles authentifiées, si un autre utilisateur tente d'utiliser un identifiant de session existant, la passerelle renvoie HTTP 404 Not Found : la session est invisible pour les autres utilisateurs.
Expiration et expiration de la session
Le délai d'expiration de la session est calculé à partir de la première initialize demande. Après le délai d'expiration, la session expire et ne peut pas être utilisée.
-
Délai d'attente par défaut : 3 600 secondes (1 heure)
-
Plage configurable : 900 secondes (15 minutes) à 28 800 secondes (8 heures)
Si la session d'une cible de serveur MCP expire avant l'expiration de la session de passerelle, la passerelle se réinitialise de manière transparente avec la cible et met à jour l'ID de session cible enregistré. La session de passerelle reste active.
Gestion des erreurs
| Scénario | Statut HTTP | Description |
|---|---|---|
|
|
400 Requête erronée |
Toutes les demandes suivantes |
|
ID de session non valide ou expiré |
404 – Non trouvé |
La session n'existe pas ou a expiré. |
|
Différents utilisateurs tentent d'utiliser la session d'un autre utilisateur (passerelles authentifiées) |
404 – Non trouvé |
La session est invisible pour les autres utilisateurs. |
|
|
400 Requête erronée |
Renvoyé au plan de contrôle lors de la création ou de la mise à jour d'une cible. |