Segurança da ferramenta WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Publicado em 9 de junho de 2026, atualizado pela última vez em 1º de setembro de 2026

Vídeo explicativo Web Extensões Status do Chrome Intenção
GitHub Teste de origem Teste de origem Ver Intenção de experimentar

Você pode usar o Protocolo de Contexto de Modelo da Web (WebMCP) para criar e expor ferramentas estruturadas a agentes de IA em execução no navegador, incluindo agentes com tecnologia de extensões. Um agente usa um modelo de linguagem grande (LLM), regras, memória e ferramentas para executar ações em nome do usuário.

Como os LLMs tratam todo o texto, instruções e dados do usuário como uma única sequência de tokens, eles são suscetíveis a injeção indireta de comandos, uma inclusão de instruções maliciosas por um invasor. Nossa equipe escreveu este documento sobre segurança de ferramentas para ajudar a proteger seu site e seus usuários contra pessoas mal-intencionadas.

Embora alguns modelos tenham camadas que abordam a injeção de comandos, é impossível garantir a segurança dentro de um modelo de linguagem grande (LLM). Os modelos são probabilísticos por natureza. É importante lembrar que houve ataques repetíveis de injeção de comandos contra sistemas agênticos que usam LLMs de última geração, e a prevalência de ataques na Web está aumentando.

Para resolver essas preocupações, fornecemos orientações preliminares sobre segurança para quem cria ferramentas com o WebMCP.

Usar dicas de anotação

Há algumas dicas que você precisa adicionar ao criar suas ferramentas:

  • Use untrustedContentHint quando apropriado. Se uma ferramenta retornar conteúdo gerado pelo usuário (UGC, na sigla em inglês) ou dados de origem externa, considere adicionar o untrustedContentHint à ferramenta. Esse campo rotula explicitamente o payload como não confiável para ajudar a proteger a integridade do seu site, ao mesmo tempo em que fornece um sinal ao agente de que esses dados exigem maior análise.
  • Use consequentialHint para ações de alto risco ou não reversíveis. Se a execução de uma ferramenta resultar em ações significativas, como reservar viagens ou transferir dinheiro, defina consequentialHint: true para que o agente ou navegador possa solicitar a confirmação do usuário antes da execução.
  • Use o readOnlyHint em ferramentas que não mudam de estado. Isso permite que o agente tome decisões melhores sobre quando pedir confirmações do usuário.

Exponha suas ferramentas com cuidado

A API document.modelContext.registerTool do WebMCP expõe apenas a funcionalidade da ferramenta aos agentes. Por padrão, outros sites ou iframes entre origens não podem observar ou interagir com suas ferramentas.

Você pode fornecer acesso à sua ferramenta com a exposedTo opção em registerTool para uma matriz de origens específicas e seguras. Isso expõe sua ferramenta a essas origens quando incorporada ao seu site e quando seu site está incorporado a essa origem.

// https://partner.org

await document.modelContext.registerTool({
  name: 'my_shared_tool',
  description: 'Shared across origins',
  // ...
}, {
  exposedTo: ['https://trusted.com', 'https://example.com']
});

Exponha suas ferramentas apenas a origens confiáveis. Isso é particularmente importante quando as ferramentas gerenciam dados do usuário ou afetam o usuário de alguma forma.

  • Uma ferramenta somente leitura, como getFavoriteProducts, pode revelar informações sobre um usuário. Você só deve expor essas ferramentas a sites com os quais compartilharia esses dados diretamente.
  • As ferramentas com acesso de leitura e gravação agem em nome de um usuário. Essas ferramentas só devem ser expostas a origens que você considera confiáveis ao agir em nome do usuário. Por exemplo, talvez você queira expor postComment a trustedExample.com, mas não a evilExample.com.

Definir orçamentos de caracteres

Para evitar a execução de proteções de agentes, escreva descrições e saídas de ferramentas concisas. Recomendamos os seguintes limites de caracteres para melhores resultados:

  • 500 caracteres por descrição da ferramenta
  • 150 caracteres por descrição de parâmetro
  • 30 caracteres por nome de ferramenta e nome de parâmetro
  • Limite de 1.500 caracteres por saída de ferramenta individual

É provável que haja alguma variação entre os agentes, e talvez você queira ajustar seus orçamentos de caracteres com o feedback do usuário.

Próximas etapas

Continuamos pesquisando e trabalhando na criação de uma infraestrutura segura para a Web agêntica. Por exemplo, há uma discussão em andamento sobre o gerenciamento de consentimento entre as partes, e o rascunho da especificação inclui requestUserInteraction() para solicitar de forma assíncrona a entrada do usuário na execução da ferramenta.

Como você planeja implementar o WebMCP no seu aplicativo? Você tem outras preocupações, de segurança ou não? Se você se inscrever no teste de origem do WebMCP, queremos saber sobre sua experiência:

Se você estiver criando um agente, recomendamos que leia Considerações de segurança do agente para o WebMCP.