Publicado em 9 de junho de 2026
| Explicação | Web | Extensões | Status do Chrome | Intenção |
|---|---|---|---|---|
| GitHub | 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
untrustedContentHintquando apropriado. Se uma ferramenta retornar conteúdo gerado pelo usuário (UGC) ou dados de origem externa, considere adicionar ountrustedContentHintà 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
readOnlyHintem 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
postCommentatrustedExample.com, mas não aevilExample.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:
- Compartilhe seu feedback sobre o formato da API comentando um problema atual ou abrindo um novo na explicação do WebMCP no GitHub.
- Se você tiver feedback sobre a implementação do Chrome, registre um bug do Chromium.
- Participe do programa de visualização antecipada para conferir as novas APIs e acessar nossa lista de e-mails.
- Analise a implementação do Chrome no Status do Chrome.
Se você estiver criando um agente, recomendamos que leia Considerações de segurança do agente para o WebMCP.