As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Use sessões MCP com seu gateway AgentCore
As sessões MCP permitem interações dinâmicas entre clientes e seu AgentCore gateway. Quando as sessões são habilitadas, o gateway gera um identificador de sessão exclusivo durante a inicialização e mantém o estado em várias solicitações, permitindo recursos avançados de MCP, como elicitação e amostragem.
Benefícios do uso de sessões
- Interações de destino do servidor MCP com status
-
O gateway armazena o ID de sessão do alvo do servidor MCP e o reutiliza em chamadas de ferramentas subsequentes. Isso evita a reinicialização em cada solicitação e permite que os destinos mantenham o contexto em todas as chamadas.
- Respostas mais rápidas com metas AgentCore de tempo de execução
-
Quando a sessão do alvo é reutilizada, o AgentCore Runtime não precisa iniciar a frio uma nova conexão com o servidor MCP em cada solicitação, resultando em tempos de resposta mais rápidos.
- Habilita recursos avançados de MCP
-
As sessões são um pré-requisito para elicitação e amostragem, que exigem o estado de rastreamento em várias solicitações.
- User-scoped segurança (gateways autenticados)
-
Para gateways com autenticação de entrada, as sessões são vinculadas à identidade verificada do usuário, evitando o sequestro da sessão.
Habilite sessões em seu gateway
Para habilitar sessões, especifique um sessionConfiguration no protocolConfiguration.mcp campo ao criar ou atualizar seu gateway.
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 } } } }
O parâmetro sessionTimeoutInSeconds é opcional. Se omitido, o tempo limite padrão é de 3.600 segundos (1 hora). O intervalo válido é de 900 (15 minutos) a 28800 (8 horas). O tempo limite é absoluto, calculado a partir da primeira initialize solicitação.
Para ativar também recursos que dependem de sessões, como elicitação e amostragem, você também deve ativar o streaming de respostas:
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 }, "streamingConfiguration": { "enableResponseStreaming": true } } } }
nota
Quando as sessões são habilitadas em um gateway, você não pode incluir Mcp-Session-Id as configurações metadataConfiguration de propagação do cabeçalho de um destino do gateway. O gateway gerencia os IDs de sessão internamente. A tentativa de fazer isso retorna um erro HTTP 400 Bad Request.
Ciclo de vida da sessão
O ciclo de vida da sessão segue o fluxo de inicialização do protocolo MCP:
-
O cliente envia uma
initializesolicitação ao gateway. -
O gateway cria uma sessão, armazena os metadados da sessão e retorna um único
Mcp-Session-Idno cabeçalho da resposta. -
O cliente inclui o
Mcp-Session-Idcabeçalho em todas as solicitações subsequentes. -
O gateway valida a existência, a expiração e a identidade do usuário da sessão (para gateways autenticados) em cada solicitação.
-
Quando a sessão expira ou o cliente se desconecta, a sessão expira.
Na primeira chamada de ferramenta para um alvo do servidor MCP em uma sessão, o gateway inicializa uma conexão com o alvo e armazena o ID da sessão do alvo. Chamadas de ferramentas subsequentes para o mesmo destino reutilizam esse ID de sessão armazenado, evitando a inicialização repetida.
Identidade do usuário e escopo da sessão
As sessões têm como escopo a identidade do usuário autenticado para evitar o sequestro da sessão. O gateway deriva a identidade do usuário de forma diferente, dependendo do método de autenticação de entrada configurado em seu gateway:
| Método de autenticação | Identificador de usuário | Comportamento |
|---|---|---|
|
OAuth/OIDC |
|
Com escopo completo. Somente o usuário que criou a sessão pode usá-la. A |
|
AWS IAM (SIGv4) |
ARN da entidade principal |
Com escopo completo. Somente o diretor do IAM que criou a sessão pode usá-la. O ARN principal é globalmente exclusivo e imutável durante toda AWS a vida útil da entidade IAM. Exemplo: |
|
Sem autenticação |
Nenhum |
Sem escopo do usuário. As sessões estão disponíveis, mas não estão vinculadas a nenhuma identidade. Qualquer pessoa com o ID da sessão pode interagir com a sessão. |
Importante
Para gateways sem autenticação de entrada, as sessões apresentam um risco de sequestro de sessão, conforme descrito nas considerações de segurança da especificação MCP.
Para gateways autenticados, se um usuário diferente tentar usar um ID de sessão existente, o gateway retornará HTTP 404 Not Found — a sessão fica invisível para outros usuários.
Tempo limite e expiração da sessão
O tempo limite da sessão é calculado a partir da primeira initialize solicitação. Após o período de tempo limite, a sessão expira e não pode ser usada.
-
Tempo limite padrão: 3600 segundos (1 hora)
-
Intervalo configurável: 900 segundos (15 minutos) a 28.800 segundos (8 horas)
Se a sessão de um alvo do servidor MCP expirar ou for perdida antes que a sessão do gateway expire (por exemplo, se o destino for reiniciado), as chamadas subsequentes da ferramenta para esse destino retornarão um erro do cliente (4xx), como. session not found Para se recuperar, reinicialize sua conexão MCP com o gateway enviando uma nova initialize solicitação para iniciar uma nova sessão de gateway. Isso estabelece uma nova sessão de destino e as chamadas de ferramentas subsequentes usam o ID de sessão de destino atualizado.
Tratamento de erros
| Cenário | Status HTTP | Description |
|---|---|---|
|
|
400 solicitação inválida |
Todas as solicitações posteriores |
|
ID de sessão inválida ou expirada |
404 Not Found (404 Não encontrado) |
A sessão não existe ou atingiu o tempo limite. |
|
Diferentes tentativas de usuário de usar a sessão de outro usuário (gateways autenticados) |
404 Not Found (404 Não encontrado) |
A sessão é invisível para outros usuários. |
|
|
400 solicitação inválida |
Retornado no plano de controle ao criar ou atualizar um alvo. |