WebMCP

O WebMCP permite que uma página da web exponha ferramentas estruturadas a um agente de IA no navegador. Saiba como ele difere do MCP, o que o Chrome suporta, riscos de segurança e quando esperar.

Publicado pela primeira vez: 17 de jul. de 2026 · Última atualização: 3 de ago. de 2026 · Avançado
Idiomas
1 sinal de evidência nesta página

O WebMCP é uma API experimental de navegador que permite que uma página da web aberta ofereça ferramentas estruturadas a um agente de IA. É útil para ações limitadas na página, não para descoberta na web ou ranqueamento. Em 17 de julho de 2026, é um rascunho do Community Group e teste de origem do Chrome 149; exemplos atuais do Chrome usam document.modelContext, enquanto navigator.modelContext está obsoleto no Chrome 150.

TL;DR — O WebMCP expõe ferramentas de propriedade da página a partir de document.modelContext para um agente no contexto de navegação ativo. A API imperativa registra um nome, descrição, entrada JSON Schema, anotações e um callback assíncrono; as ferramentas podem ser dependentes de estado e não registradas com um AbortSignal. O Chrome documenta uma camada de formulário declarativa também, mas o rascunho do Community Group de 10 de julho de 2026 ainda rotula sua seção declarativa como TODO. O recurso está em um teste de origem do Chrome 149, não em uma linha de base estável entre navegadores. Trate-o como aprimoramento progressivo, não como infraestrutura de SEO, e proteja-o como uma superfície de aplicativo autenticada.

Evidence for this claim Chrome documents declarative form annotations such as toolname and tooldescription, but the declarative section of the July 10, 2026 Community Group draft is still marked TODO. Scope: secure browser context Confidence: high · Verified: WebMCP Draft Community Group Report

Como o WebMCP funciona no navegador

Um ciclo de vida útil do WebMCP começa e termina com a página. A página registra apenas as ações que são válidas em seu estado atual; um agente já operando nesse contexto de navegação descobre e invoca uma; a página executa sua lógica de aplicação normal, atualiza a interface visível ao humano e retorna um resultado limitado. Quando o estado muda, a página remove ferramentas que não se aplicam mais. Evidence for this claim The imperative API registers named, described, schema-constrained callbacks and supports state-aware cleanup with AbortSignal plus tool-set change notifications. Scope: Current draft and Chrome experiment; API details may change before stable release. Confidence: high · Verified: WebMCP ModelContext API Chrome: WebMCP Imperative API

WebMCP tools should follow the page's real state: register a valid action, execute the same logic as the UI, and remove it when the action is no longer available. Fonte: Patrick Stox — WebMCP

Five numbered steps run left to right. First, the page registers a name, description, input schema, and callback. Second, an agent already in the page context discovers it. Third, the agent invokes it with validated structured arguments. Fourth, the page reuses its normal application logic and updates the visible interface. Fifth, it returns a bounded result or safe error. A branch from execution shows that state changes or navigation should unregister the tool with AbortSignal and notify observers through toolchange.

© Patrick Stox LLC · CC BY 4.0 ·

Esse ciclo de vida com estado é uma razão pela qual o WebMCP não deve se tornar um despejo estático de todas as funções em um pacote JavaScript. Uma ferramenta que é impossível na interface visível geralmente deve estar indisponível para o agente também.

WebMCP vs MCP: dois limites de runtime diferentes

Os nomes convidam à confusão, mas o limite operacional é diferente. O WebMCP vive no loop de eventos de um documento e na sessão atual do navegador. O MCP remoto vive no limite de integração do aplicativo de IA e geralmente alcança um servidor backend persistente. Evidence for this claim WebMCP is designed for tools owned by an active page and its browser context, while remote MCP commonly connects an AI application to a persistent backend server. Scope: Architecture-selection guidance, not a rule that prevents an application from using both technologies. Confidence: high · Verified: Chrome: When to use WebMCP and MCP

WebMCP owns page-context actions; remote MCP owns durable application-to-server integrations. Many products will use both. Fonte: WebMCP

The left lane shows WebMCP: a browser agent interacts with an open web page, which owns a JavaScript tool and current visible session state. The page must be open for those tools to exist. The right lane shows remote MCP: an AI application connects through an MCP client to a persistent MCP server, which can remain available outside a browser tab. The two lanes are complementary rather than replacements.

© Patrick Stox LLC · CC BY 4.0 ·

InterfaceOnde viveQuando é descobertaA página precisa estar aberta?Melhor adequação
WebMCPDocumento ativo do navegadorDepois que o cliente visita a páginaSimEstado atual da interface e ações da página
MCP remotoCliente de IA e um servidor MCPAtravés da configuração ou descoberta do cliente/servidorNãoFerramentas persistentes, dados e fluxos de trabalho de backend
Endpoint Web/APIBackend do aplicativoAtravés de integração específica do aplicativoNãoAcesso programático estável para consumidores conhecidos
Dados estruturadosMarcação da páginaDurante o processamento da páginaGeralmente buscado como conteúdoDescrever entidades e significado da página, não executar ações
llms.txtArquivo de texto estáticoQuando um cliente escolhe solicitá-loNenhuma aba ativa necessáriaOrientação de conteúdo proposta; não é uma superfície de ferramenta chamável
Automação de navegadorAgente/controlador interpretando a interfaceDepois de carregar e inspecionar a páginaSimFallback onde nenhuma ferramenta explícita da página existe

Não escolha pela sigla. Escolha pelo dono da ação. Se a ação precisar do DOM atual, da seleção, do carrinho ou do estado da interface, o WebMCP pode ser adequado. Se ela precisar ser executada em segundo plano, em muitos sites ou sem uma aba aberta, use uma API ou um MCP remoto.

A API imperativa

A API imperativa registra uma ferramenta por meio de document.modelContext.registerTool(). A ferramenta inclui um nome exclusivo, uma descrição, uma entrada JSON Schema, um callback execute e anotações opcionais. O Chrome também documenta getTools(), executeTool() para testes e um evento toolchange. Evidence for this claim Current Chrome documentation uses document.modelContext and says navigator.modelContext is deprecated beginning in Chrome 150. Scope: Chrome implementation guidance checked July 17, 2026; version and API-name claims expire quickly. Confidence: high · Verified: Chrome: WebMCP Imperative API

Este candidato ilustrativo mostra o formato pretendido para um futuro piloto de Validador de Esquema. Ele não está em execução neste site, e a API pode mudar antes de um lançamento estável:

if (document.modelContext) {
  const registration = new AbortController();

  await document.modelContext.registerTool({
    name: 'validate_schema',
    description: 'Validate pasted JSON-LD and return bounded issues.',
    inputSchema: {
      type: 'object',
      properties: {
        markup: {
          type: 'string',
          description: 'JSON-LD markup to validate.',
          maxLength: 50000
        }
      },
      required: ['markup'],
      additionalProperties: false
    },
    annotations: {
      readOnlyHint: true,
      untrustedContentHint: true
    },
    execute: async ({ markup }) => {
      const result = await validateWithTheSameEngineAsTheUI(markup);
      renderResultInTheVisibleUI(result);
      return minimizeValidationResult(result);
    }
  }, { signal: registration.signal });

  // When this page state no longer supports validation:
  // registration.abort();
}

A arquitetura importante não é o wrapper. É que o callback chama o mesmo validador que a interface visível, os limites do lado do servidor e a autorização ainda se aplicam, e a resposta é deliberadamente minimizada. A detecção de recursos preserva o fluxo de trabalho humano completo em navegadores sem suporte.

Use document.modelContext, não exemplos desatualizados baseados em navigator.modelContext; o Chrome marca este último como obsoleto a partir do Chrome 150. Datá essa recomendação porque o recurso continua experimental.

Evidence for this claim Current Chrome documentation uses document.modelContext; navigator.modelContext is deprecated in Chrome 150. Scope: browser document Confidence: high · Verified: WebMCP Imperative API

A API declarativa tem uma incompatibilidade de padrões

O Chrome documenta uma abordagem declarativa que anota formulários comuns com atributos como toolname, tooldescription e toolparamdescription. Ele também documenta o toolautosubmit opcional; caso contrário, o usuário clica em Enviar. SubmitEvent.agentInvoked identifica um envio acionado por agente. Evidence for this claim Chrome documents declarative WebMCP form annotations, but the July 10, 2026 Community Group draft says its Declarative WebMCP section is entirely TODO. Scope: A direct comparison between Chrome implementation documentation and the current draft; it does not imply Chrome's experimental implementation is unavailable. Confidence: high · Verified: Chrome: WebMCP Declarative API WebMCP: Declarative WebMCP

No entanto, o Relatório do Grupo Comunitário de 10 de julho diz que sua seção WebMCP Declarativo é “entirely a TODO” e deixa o algoritmo de formulário para JSON Schema indefinido. Isso não significa que o experimento do Chrome seja imaginário. Significa que a documentação de implementação está à frente do rascunho normativo. Trate a marcação declarativa como uma superfície experimental do Chrome, não como HTML estável entre navegadores.

Evidence for this claim Chrome documents declarative WebMCP form annotations, but the July 10, 2026 Community Group draft says its Declarative WebMCP section is entirely TODO. Scope: A direct comparison between Chrome implementation documentation and the current draft; it does not imply Chrome's experimental implementation is unavailable. Confidence: high · Verified: Chrome: WebMCP Declarative API WebMCP: Declarative WebMCP

Por enquanto, formulários semânticos comuns continuam sendo a base durável. Uma camada de anotação experimental deve aprimorá-los, nunca substituir rótulos, validação, acessibilidade, confirmação ou autorização do lado do servidor.

Descoberta de ferramentas, ciclo de vida e limites entre origens

A API atual tem vários limites que valem a pena projetar explicitamente:

  • Contexto de navegação: o experimento do Chrome exige um contexto de navegador. O cliente visita o site antes de descobrir as ferramentas do site.
  • Disponibilidade dinâmica: registre ferramentas quando elas forem válidas e cancele o registro quando o estado ou a navegação as invalidar. Observadores podem escutar toolchange.
  • Mesma origem por padrão: a Permissions Policy de tools tem como padrão 'self'. Iframes entre origens precisam de delegação explícita, como allow="tools".
  • Consentimento entre origens em duas vias: uma ferramenta pode usar exposedTo para listar origens seguras permitidas, enquanto um chamador solicita ferramentas de origens nomeadas com fromOrigins. A aceitação de um lado não é suficiente.
  • Aprimoramento progressivo: WebMCP sem suporte ou desabilitado deve deixar a página comum totalmente utilizável.
Evidence for this claim WebMCP tool exposure is origin-isolated and controlled by the tools Permissions Policy; cross-origin iframes require explicit delegation. Scope: browser document Confidence: high · Verified: WebMCP Imperative API

Esses são controles úteis de plataforma, mas não transformam uma ação de aplicativo arriscada em uma ação segura.

Segurança: a sessão do navegador aumenta os riscos

Um agente de navegador pode operar dentro da sessão autenticada do usuário. Isso pode ser o recurso—acesso ao carrinho, conta ou espaço de trabalho atual—e o perigo. O Chrome e o rascunho discutem injeção de prompt, metadados de ferramenta enganosos, saída de ferramenta contaminada, parâmetros excessivamente amplos, vazamento de privacidade, exposição entre origens e uso indevido da autoridade de sessão. Evidence for this claim WebMCP tool hints can communicate read-only and untrusted-output intent, but they do not eliminate prompt injection, misleading metadata, privacy leakage, cross-origin risk, or misuse of authenticated browser authority. Scope: Threat-model and defensive guidance; application authorization and confirmation remain implementation responsibilities. Confidence: high · Verified: WebMCP security and privacy considerations Chrome: WebMCP tool security Chrome: Agent security considerations

Trate cada ferramenta como um endpoint público de aplicativo com um chamador incomum:

  1. Mantenha a ferramenta restrita. Uma única tarefa, entradas explícitas, enums e comprimentos rígidos, sem parâmetro oculto de “faça qualquer coisa”.
  2. Imponha a autorização na lógica da aplicação. O agente não ganha mais autoridade do que o usuário conectado, e uma dica não é permissão.
  3. Separe leituras de escritas. readOnlyHint e untrustedContentHint comunicam risco; eles não o impõem.
  4. Exija confirmação visível para consequências. Compras, envios, exclusões, mensagens e alterações de conta precisam de um ponto de verificação compreensível para humanos.
  5. Minimize a saída. Retorne apenas o que a tarefa precisa; nunca vaze dados de sessão, cabeçalhos brutos, segredos ou registros não relacionados.
  6. Trate a saída como não confiável. Uma string retornada por uma ferramenta pode se tornar entrada para o raciocínio posterior do modelo. Não permita que ela contrabandeie instruções ou autoridade.
  7. Registre a fronteira. Registre a ferramenta, a classe de entrada, a decisão de autorização, a confirmação, a classe de resultado, o erro, a origem e o ciclo de vida sem registrar segredos.

A pergunta segura não é “Um agente pode chamar isso?” É “Eu exporia isso como um endpoint revisado para um chamador que pode entender mal instruções e repassar texto não confiável?”

Teste contratos e comportamento do agente separadamente

A orientação de avaliação do Chrome separa testes determinísticos de produto de testes probabilísticos de agente. Evidence for this claim WebMCP testing should combine deterministic contract and UI-state tests with probabilistic evaluation of agent tool selection and use. Scope: Chrome's evaluation guidance; teams must define product-specific tasks, models, risks, and thresholds. Confidence: high · Verified: Chrome: Evals for WebMCP Ambos importam:

Testes determinísticos devem verificar registro, rejeição de esquema, entradas válidas e inválidas, autorização, limites de taxa, efeitos colaterais, formato de erro, minimização de saída, paridade de UI, comportamento de cancelamento de registro e fallback para navegadores não suportados.

Avaliações probabilísticas devem medir se agentes representativos descobrem a ferramenta certa, evitam ferramentas irrelevantes, escolhem os parâmetros corretos, pedem esclarecimento quando necessário, respeitam confirmações, param após o sucesso e resistem a descrições ou saídas adversariais.

Não use um único prompt de demonstração como porta de liberação. Um callback bem-sucedido prova que o código foi executado; não prova que os modelos o selecionam de forma confiável ou que a ação é segura.

Cloudflare Browser Run: laboratório útil, não habilitação

A Cloudflare documenta suporte a WebMCP no pool de laboratório experimental do Browser Run e diz que sessões de laboratório não devem ser usadas para cargas de trabalho de produção. Sua página de 23 de abril também contém nomes de testes mais antigos da era do Chrome, então use essa página como evidência da oferta atual de produto da Cloudflare—não como autoridade para a forma mais recente da API WebMCP. Evidence for this claim Cloudflare Browser Run offers experimental lab sessions that can consume and test page-provided WebMCP tools, but the page still owns tool registration and Cloudflare says lab sessions are not for production workloads. Scope: Cloudflare product documentation last updated April 23, 2026; its example API names lag current Chrome documentation and should not be used as the API authority. Confidence: high · Verified: Cloudflare Browser Run: WebMCP

A Cloudflare pode fornecer uma sessão de navegador e um caminho de agente que consome ferramentas. Ela não pode inferir o contrato seguro para sua aplicação ou registrar ferramentas de propriedade da página que você não construiu.

Piloto proposto para patrickstox.com: Schema Validator

O Schema Markup Validator é um bom candidato a piloto futuro, não uma implementação WebMCP ativa. Ele já tem uma entrada colada limitada, lógica determinística, problemas estruturados e um resultado visível. Uma futura ferramenta validate_schema poderia reutilizar o mesmo mecanismo de validação da UI e do conjunto existente de ferramentas MCP remotas.

O piloto deve esperar até que a API do navegador alcance uma versão estável, não experimental, e passe por uma nova revisão de segurança. A primeira versão deve ser somente leitura, com detecção de recursos, entrada limitada, resposta minimizada e indisponível em superfícies de pré-visualização, admin ou somente do proprietário. Este site não reivindica atualmente suporte a WebMCP.

Decisão: construir, experimentar, esperar ou pular

SituaçãoDecisão
Suporte estável do navegador é necessário para um fluxo de trabalho do clienteAguarde e mantenha a UI/API normal completa
Você tem uma ação somente leitura limitada e pode executar um laboratório privadoExperimente, com detecção de recursos e sem dependência de produção
A tarefa precisa de execução em segundo plano ou headlessUse uma API ou MCP remoto
A página apenas publica conteúdoPule o WebMCP; melhore o HTML semântico e acessível
A ação grava, compra, envia, exclui ou expõe dados privadosNão faça piloto casualmente; exija um modelo de ameaça separado e design de confirmação
Uma implementação estável é lançada e todos os testes de contrato/segurança/paridade passamConsidere um piloto progressivo de produção

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.