Segurança da ferramenta WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Publicado em 9 de junho de 2026

Explicação 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 à injeção de comando indireta, uma inclusão de instruções maliciosas por um invasor. Nossa equipe escreveu este documento sobre segurança de ferramentas para ajudar você 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 comando 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) 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 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 de origem cruzada não podem observar nem 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

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 o uso de barreiras de proteção 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 de agentes. 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.