View a markdown version of this page

Alvos de servidores MCP - Base da Amazônia AgentCore

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á.

Alvos de servidores MCP

Os servidores MCP fornecem ferramentas locais, acesso a dados ou funções personalizadas para suas interações com modelos e agentes no Bedrock AgentCore. No Bedrock AgentCore, você pode definir um servidor MCP pré-configurado como um destino ao criar um gateway.

Os servidores MCP hospedam ferramentas, solicitações e recursos que os agentes podem descobrir e usar. No Bedrock AgentCore, você usa um gateway para associar destinos a esses recursos e conectá-los ao tempo de execução do seu agente. Você se conecta a servidores MCP externos por meio da SynchronizeGatewayTargets API que executa handshakes de protocolo e indexa os recursos disponíveis. Para obter mais informações sobre como instalar e usar servidores MCP, consulte Amazon Bedrock AgentCore MCP Server: codificação Vibe com seu assistente de codificação.

Principais considerações e limitações

Modo de listagem

ListingMode pode ser definido como DYNAMIC ou DEFAULT para alvos do servidor MCP.

  • No modo DINÂMICO, os clientes descobrem os recursos do servidor MCP quando um usuário invoca uma operação MCP. O Gateway recupera os recursos do servidor encaminhando solicitações para o servidor MCP. Atualmente, o modo DINÂMICO não é interoperável com a pesquisa semântica ou com o OAuth externo de três pernas (3LO).

  • A menos que seja alterado, o Modo de listagem é definido como PADRÃO. No modo DEFAULT, os clientes descobrem os recursos do servidor MCP por meio de uma operação de sincronização fornecida pela SynchronizeGatewayTargets API.

Sincronização implícita

Para destinos no modo DEFAULT, CreateGatewayTarget UpdateGatewayTarget as operações acionam automaticamente a descoberta e a indexação de capacidades. Quando uma das operações é chamada, o Gateway busca as ferramentas disponíveis usando o tools/list recurso do MCP, solicita o usoprompts/list, os recursos que usam resources/list e resources/templates/list adiciona os recursos retornados ao catálogo unificado.

Sincronização explícita

Os catálogos de recursos para Targets no modo DEFAULT podem ser atualizados manualmente chamando a API. SynchronizeGatewayTargets Quando chamado, ele atualiza a lista de recursos disponíveis do Gateway. Você deve chamar a API sempre que a ferramenta, o prompt e as definições de recursos de um servidor MCP mudarem.

A sincronização é um mecanismo essencial para manter catálogos de recursos precisos ao integrar servidores MCP. A sincronização implícita ocorre automaticamente durante a criação e as atualizações do alvo, em que o Gateway descobre e indexa imediatamente ferramentas, solicitações e recursos do servidor MCP para garantir que os recursos estejam disponíveis para pesquisa semântica e listagem unificada. A sincronização explícita é realizada sob demanda por meio da SynchronizeGatewayTargets API, permitindo a descoberta do catálogo de recursos do MCP quando os servidores MCP modificam seus recursos de forma independente.

Quando ligar SynchronizeGatewayTargets

Sempre que um destino de servidor MCP tiver seu Modo de listagem definido como PADRÃO, use a SynchronizeGatewayTargets API depois que ferramentas, solicitações ou recursos forem adicionados, removidos ou modificados. Como o Gateway pré-calcula incorporações vetoriais para pesquisa semântica e mantém catálogos de recursos normalizados, a sincronização é necessária para garantir que seus usuários possam descobrir e invocar as ferramentas, solicitações e recursos mais recentes disponíveis.

Como chamar a API

Faça uma solicitação PUT para /gateways/ {gatewayIdentifier} /sincronize com o ID de destino no corpo da solicitação. A API retorna uma resposta 202 imediatamente e processa a sincronização de forma assíncrona. Monitore o status do alvo GetGatewayTarget para acompanhar o progresso da sincronização, pois a operação pode levar vários minutos para grandes conjuntos de recursos.

Estratégia de autorização

Os seguintes tipos de estratégia de autorização são suportados.

  • Sem autorização — O gateway invoca o servidor MCP sem autorização pré-configurada. Essa abordagem não é recomendada.

  • OAuth — O gateway suporta OAuth de duas pernas (tipo de concessão), OAuth de três pernas (tipo de CLIENT_CREDENTIALS concessão) e troca de tokens em nome da troca de tokens (tipo de AUTHORIZATION_CODE concessão). TOKEN_EXCHANGE Você configura o provedor de autorização no Amazon Bedrock AgentCore Identity na mesma conta e região para que o gateway faça chamadas para o servidor MCP. Se você usa a troca de tokens em nome da troca de tokens, revise as considerações sobre a troca de tokens para esse tipo de alvo.

  • IAM (AWS Signature Version 4 (Sig V4)) — O gateway assina solicitações ao servidor MCP usando SigV4 com as credenciais da função de serviço do gateway. Você configura um IamCredentialProvider com um nome de serviço necessário para assinatura SigV4 e uma região opcional (o padrão é a região do gateway).

  • Chave de API — O gateway usa um provedor de credenciais de chave de API para se autenticar com o servidor MCP. Você configura o provedor da chave de API no Amazon Bedrock AgentCore Identity na mesma conta e região do gateway.

Importante

A autorização de saída do IAM (SigV4) exige que o servidor MCP esteja hospedado por trás de um AWS serviço que ofereça suporte nativo à autenticação IAM. O gateway assina solicitações de saída com o SigV4, mas não modifica a configuração de autenticação no destino. O serviço de destino deve ser capaz de verificar as assinaturas SigV4.

Os AWS serviços a seguir oferecem suporte nativo à autenticação do IAM e são compatíveis com a autorização de saída do IAM para destinos do servidor MCP:

Serviços que não verificam nativamente as assinaturas SigV4, como o Application Load Balancer ou endpoints diretos do Amazon EC2, não são compatíveis com a autorização de saída do IAM. Se o seu servidor MCP estiver hospedado por trás de um desses serviços, use a autorização de chave de API ou OAuth.

Considerações de configuração para destinos do servidor MCP

O seguinte deve ser configurado.

  1. O servidor MCP deve ter recursos de ferramenta. Os recursos de solicitações e recursos são opcionais e sincronizados automaticamente quando o servidor os anuncia.

  2. As versões suportadas do protocolo MCP são - 2026-07-28, 2025-11-25, 2025-06-18 e 2025-03-26.

  3. Para o fornecimento URL/endpoint do servidor, o URL deve ser codificado. O Gateway usará a mesma URL para invocar o servidor.

nota

Para contas habilitadas para atualizações de versão do MCP, você pode modificar as versões de protocolo suportadas pelo gateway com a UpdateGateway operação. Caso contrário, as versões suportadas serão corrigidas quando você criar o gateway.

dica

Se o servidor MCP estiver hospedado no AgentCore Runtime, você poderá evitar a inicialização repetida com o servidor MCP em cada solicitação. Habilite sessões de MCP em seu gateway ou adicione Mcp-Session-Id como um cabeçalho permitido de solicitação e resposta no alvo. metadataConfiguration Isso resulta em menor latência para chamadas de ferramentas subsequentes. Esta orientação se aplica à versão 2025-11-25 e versões anteriores. A versão 2026-07-28 não tem estado e não usa o Mcp-Session-Id cabeçalho.

On-behalf-of considerações sobre troca de tokens

As limitações a seguir se aplicam quando você usa a troca de tokens (o tipo de TOKEN_EXCHANGE concessão) como autorização de saída para um alvo de servidor MCP:

  • Servidores de autorização com suporte 2LO — Se o seu servidor de autorização permitir a autenticação de máquina a máquina (a CLIENT_CREDENTIALS concessão, também conhecida como OAuth de duas pernas), você poderá usar o modo de listagem PADRÃO. No modo de listagem PADRÃO, o gateway executa uma sincronização em segundo plano durante CreateGatewayTargetUpdateGatewayTarget, e SynchronizeGatewayTargets para buscar as ferramentas, solicitações e recursos do servidor MCP (usandotools/list). Nenhum token de usuário de entrada existe durante essas operações do plano de controle, portanto, a sincronização usa o token de máquina para máquina em vez de em nome da troca de tokens.

  • Servidores de autorização sem suporte a 2LO — Se o seu servidor de autorização não oferecer suporte à autenticação máquina a máquina, use o modo de listagem DINÂMICA. No modo DINÂMICO, o gateway descobre os recursos do servidor MCP no momento da invocação. Como um token de usuário de entrada está presente e pode ser trocado nesse ponto, o gateway não requer sincronização em segundo plano do plano de controle.

Protegendo o estado da solicitação para elicitação e amostragem (versão 2026-07-28 e posterior)

Na versão 2026-07-28 e posterior, a elicitação e a amostragem usam o padrão de várias solicitações de ida e volta (MRTR). Seu alvo de servidor MCP gera o requestState valor em um input_required resultado; o gateway trata esse valor como opaco. O gateway não armazena requestState o. Ele mantém o valor na memória somente enquanto o encaminha inalterado entre o cliente e o destino do servidor MCP e o descarta quando a solicitação é concluída.

AgentCore O gateway e seu servidor MCP de destino compartilham a responsabilidade de proteger o estado da solicitação:

  • AgentCore O Gateway autentica e autoriza cada solicitação com base na configuração de autorização de entrada do seu gateway, incluindo novas tentativas que contêm um. requestState Um chamador que não consegue se autenticar em seu gateway não pode apresentar nenhum estado de solicitação. Para obter mais informações, consulte Configurar autorização de entrada para seu gateway.

  • Seu alvo de servidor MCP é responsável por validar o requestState que ele recebe, porque o valor percorre o cliente. A especificação MCP exige que os servidores tratem o cliente como um intermediário não confiável e sempre validem o estado da solicitação. Se o estado contiver dados específicos do usuário original, a especificação exigirá que o servidor vincule criptograficamente esses dados ao usuário. Ao tentar novamente, o servidor deve verificar se o estado pertence ao usuário atualmente autenticado. O gateway não verifica se o chamador que está apresentando um requestState é o mesmo que o recebeu. Impedir que um usuário repita o estado de solicitação de outro usuário é responsabilidade do seu servidor MCP.

Para proteger o estado da solicitação, siga as orientações na especificação do MCP. Criptografe ou assine o estado (por exemplo, com AES-GCM ou com um JWT assinado) para garantir confidencialidade e integridade. Vincule o estado específico do usuário ao usuário de origem, expire o estado e trate quaisquer valores de estado de texto sem formatação como entrada não confiável. Para obter mais informações, consulte Várias solicitações de ida e volta no site do Model Context Protocol.

Conectando-se a um servidor OAuth-protected MCP usando o fluxo do Código de Autorização

Para oferecer suporte ao tipo de concessão do Código de Autorização (OAuth de três etapas) com destinos de servidor MCP, o Amazon Bedrock AgentCore Gateway fornece dois métodos para a criação de destinos.

Sincronização implícita durante a criação do alvo do servidor MCP

Com esse método, o usuário administrador conclui o fluxo do código de autorização durante CreateGatewayTargetUpdateGatewayTarget, ou SynchronizeGatewayTargets operações usando o URL de autorização retornado na resposta. Isso permite que o Amazon Bedrock AgentCore Gateway descubra e armazene em cache as ferramentas do servidor MCP com antecedência.

nota

Você não pode excluir, atualizar ou sincronizar um alvo que esteja em um estado de autorização pendente (CREATE_PENDING_AUTH,UPDATE_PENDING_AUTH, ouSYNCHRONIZE_PENDING_AUTH). Aguarde a conclusão ou falha da autorização antes de realizar outras operações no alvo.

Forneça o esquema antecipadamente durante a criação do alvo do servidor MCP

Com esse método, os usuários administradores fornecem o esquema da ferramenta diretamente durante CreateGatewayTarget nossas UpdateGatewayTarget operações usando o mcpToolSchema campo, em vez de o Amazon Bedrock AgentCore Gateway buscá-los dinamicamente do servidor MCP. O Amazon Bedrock AgentCore Gateway analisa o esquema fornecido e armazena em cache as definições da ferramenta.

nota

Você não pode sincronizar um alvo que tenha um esquema de ferramenta estático (mcpToolSchema) configurado. Remova o esquema estático por meio de uma UpdateGatewayTarget chamada para ativar a sincronização dinâmica de ferramentas.

Vinculação de sessão de URL

A vinculação de sessão do URL de autorização do OAuth 2.0 verifica se o usuário que iniciou a solicitação de autorização do OAuth é o mesmo usuário que concedeu o consentimento. Depois que o usuário conclui o consentimento, o navegador redireciona de volta para um URL de retorno configurado no destino com um URI de sessão exclusivo. O aplicativo é então responsável por chamar a CompleteResourceTokenAuth API, apresentando a identidade do usuário e o URI da sessão. O Amazon Bedrock AgentCore Identity valida que o usuário que iniciou o fluxo é o mesmo usuário que o concluiu antes de trocar o código de autorização por um token de acesso.

Isso evita um cenário em que um usuário acidentalmente compartilhe o URL de autorização e outra pessoa conclua o consentimento, o que concederia tokens de acesso à parte errada. O URL de autorização e o URI da sessão são válidos apenas por 10 minutos, limitando ainda mais a janela para uso indevido. A vinculação de sessão se aplica durante a criação do alvo (sincronização implícita) e durante a invocação da ferramenta.

nota

Ao realizar operações de destino (Criar, Atualizar ou Sincronizar) e autorização por meio do AWS Management Console, a CompleteResourceTokenAuth chamada é feita em nome do proprietário do recurso, não exigindo nenhuma ação adicional após a autorização.

Configurar permissões do

A função do IAM que você usa para criar, atualizar ou sincronizar destinos de servidores MCP deve ter as permissões mostradas no exemplo a seguir.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateGateway", "bedrock-agentcore:GetGateway", "bedrock-agentcore:CreateGatewayTarget", "bedrock-agentcore:GetGatewayTarget", "bedrock-agentcore:SynchronizeGatewayTargets", "bedrock-agentcore:UpdateGatewayTarget" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" }, { "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateWorkloadIdentity", "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForUserId", "bedrock-agentcore:GetResourceOauth2Token", "bedrock-agentcore:GetResourceApiKey", "bedrock-agentcore:CompleteResourceTokenAuth", "secretsmanager:GetSecretValue" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:EnableKeyRotation", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*", "kms:CreateAlias", "kms:DisableKey", "kms:*" ], "Resource": "arn:aws:kms:*:123456789012:key/*" } ] }