Pular para o conteúdo

WebMCP no TrickyBird

O WebMCP é um rascunho do W3C Web Machine Learning Community Group. Ele deixa uma página registrar ações com nome em document.modelContext, então um agente do navegador chama uma função em vez de ir adivinhando pelo DOM.

Atrás de um proxy, cada frame de uma página servida fica na mesma origem, então a configuração padrão self do WebMCP deixaria um frame do site que você abriu registrar ferramentas na página que um agente está lendo.

Última atualização

As ferramentas

O TrickyBird registra estas ferramentas nas próprias páginas, um conjunto por página e só enquanto você está nela; a tabela mostra em qual página cada uma aparece. A coluna Descrição é a cadeia que o navegador entrega ao agente: ela é lida dos módulos que registram as ferramentas, em vez de ser redigitada aqui. Por isso a tabela não consegue listar uma ferramenta que este site não registra.

O navegador do aplicativo ChatGPT para computador lê as ferramentas que um site registra desde 27 de agosto de 2026, nos planos Work e Codex.

Não é um servidor MCP remoto

Não há endpoint MCP para chamar nem nada para instalar. O document.modelContext vive dentro de uma aba do navegador, então estas ferramentas só existem enquanto uma destas páginas está aberta na sua.

Navegar

open_site
Registra em
/
Entrada
url
Resultado
ok, invalid_url, busy, cancelled, failed

Open a website through TrickyBird in this tab. The proxied page loads in place of this one. Returns ok (launch started), invalid_url (not a web address), busy (already launching), cancelled (call cancelled), failed (launch incomplete).

cancel_launch
Registra em
/, /unblock/<slug>
Entrada
Nenhuma
Resultado
cancelled, nothing_to_cancel

Stop an open_site or open_this_site launch on this page, before it navigates. Returns cancelled when a launch was in progress, or nothing_to_cancel when none was or a check is waiting on the person at the screen. Opens nothing, starts no session, navigates nowhere.

open_this_site
Registra em
/unblock/<slug>
Entrada
Nenhuma
Resultado
ok, busy, cancelled, failed

Open the site this page is about through TrickyBird in this tab. The proxied page loads in place of this one. It takes no input; open_site is the tool that takes an address. Returns ok (launch started), busy (already launching), cancelled (call cancelled), failed (launch incomplete).

Consultar um site

list_checked_sites
Registra em
/, /unblock, /status
Entrada
Nenhuma
Resultado
Nenhum

List the sites TrickyBird publishes checked pages for. Read-only, opens nothing. A site not listed has no such page, which does not mean it is blocked or unchecked, and open_site is not limited to the list.

get_site_status
Registra em
/, /unblock, /status
Entrada
domain
Resultado
renders, unknown_site

Return what TrickyBird publishes for one checked site: status, category, page address and the date a person last checked it. A domain outside this schema returns unknown_site. Read-only, opens nothing. open_site is not limited to these domains.

Ler uma página

get_faq
Registra em
/faq
Entrada
Nenhuma
Resultado
Nenhum

Return the questions and answers TrickyBird publishes on its FAQ page, in the page's order. Read-only, opens nothing.

get_security_overview
Registra em
/security
Entrada
Nenhuma
Resultado
Nenhum

Return the sections TrickyBird publishes on its security page, in the page's order. Read-only, opens nothing.

get_comparison
Registra em
/compare
Entrada
Nenhuma
Resultado
Nenhum

Return the comparison TrickyBird publishes between a web proxy and a VPN: the rows in the page's order, with the answer and the balance note the page prints beside them. Read-only, opens nothing.

get_article
Registra em
/learn/<slug>
Entrada
Nenhuma
Resultado
Nenhum

Return the explainer this page is about, in the page's order: title, the answer it leads with, opening, sections and the questions it answers. Read-only, opens nothing.

get_site_guide
Registra em
/unblock/<slug>
Entrada
Nenhuma
Resultado
Nenhum

Return what TrickyBird publishes for the site this page is about: name, domain, category, status, the date a person last checked it and this page's own address, then any note on what to expect from it, the opening paragraphs, sections and the questions it answers. It is the one tool for what this page publishes about the site; open_this_site is the tool that opens it. Read-only, opens nothing.

list_articles
Registra em
/learn
Entrada
Nenhuma
Resultado
Nenhum

List the explainers TrickyBird publishes, in the order this page lists them, each with its title, the answer it leads with and the address of its own page. Read-only, opens nothing.

get_leak_test
Registra em
/proof
Entrada
Nenhuma
Resultado
Nenhum

Return the leak test TrickyBird publishes on its proof page, in the page's order: the steps a person can run in their own tab, the page's own note on the test, and the questions it answers. Read-only, opens nothing.

Fluxos recomendados

Verificar um site e depois abrir

  1. Chame list_checked_sites para os sites dos quais o TrickyBird publica uma página verificada, ou get_site_status para um único domínio.
  2. Chame open_site com o endereço que você quer; open_site não se limita à lista.

Abrir um site e depois parar

  1. Chame open_site com o endereço. Ele responde ok assim que a abertura começa.
  2. Chame cancel_launch enquanto essa abertura ainda está em curso: ele responde cancelled quando havia uma abertura em andamento, e nothing_to_cancel quando não havia nenhuma ou quando uma verificação está esperando a pessoa na frente da tela.

Ler o que uma página publica

  1. Chame get_faq na página de perguntas frequentes, get_security_overview na página de segurança ou get_comparison na página de comparação.
  2. Chame get_article em um artigo explicativo, ou get_site_guide na página de um site.
  3. Cada um devolve o que a própria página publica, na ordem dessa página.

Como testar

Antes de começar

Hoje o WebMCP existe só no Chromium: o Firefox e o Safari não têm document.modelContext. O Chrome 149 a 156 participa do origin trial do WebMCP e o nosso endereço carrega o token necessário, então em uma dessas versões você não precisa ativar nada.

Um Chrome fora do origin trial precisa de --enable-features=WebMCP. Os outros navegadores baseados no Chromium decidem cada um se o WebMCP está ativado.

No console

Abra a nossa página inicial em uma nova aba e depois o console dela. Rodamos os passos abaixo no Chrome 152.

  1. Chame getTools() para ver o que esta página registrou.

    const tools = await document.modelContext.getTools()

    Você recebe as ferramentas registradas na página em que você está, cada uma com o nome e a descrição da tabela, junto com o esquema de entrada dela.

  2. Chame executeTool() com uma das ferramentas que você acabou de receber e a entrada dela como cadeia JSON.

    await document.modelContext.executeTool(tools.find(t => t.name === 'get_site_status'), JSON.stringify({ domain: 'youtube.com' }))

    Você recebe

    '{"content":[{"type":"text","text":"..."}]}'

    Uma cadeia JSON. Analise-a: content[0].text traz a resposta da própria ferramenta, e uma recusa coloca isError em true.

O que ele não faz

Nenhuma destas ferramentas fica registrada nos sites que você abre pelo TrickyBird: o gateway recusa o WebMCP em cada documento que serve, e uma página que passa pelo proxy não consegue registrar nenhuma ferramenta.

O motivo está no primeiro parágrafo: no nosso próprio endereço, uma página servida pelo proxy não é um terceiro que o seu navegador consiga manter separado, então a recusa precisa vir de nós.

Até onde estas ferramentas chegam

  • Nada do que estas ferramentas devolvem vem de um site que você abre pelo TrickyBird, nem carrega nada sobre a sua sessão. As de somente leitura devolvem o que o TrickyBird já publica na página em que cada uma se registra.
  • get_comparison relata a comparação que o TrickyBird publica entre um proxy web e uma VPN, com a nota de equilíbrio que a página imprime ao lado. Ele não nomeia nenhum outro produto.
  • open_site, open_this_site e cancel_launch mudam alguma coisa. Os demais são de somente leitura, e cada um diz isso na própria descrição.