Vada al contenuto

WebMCP su TrickyBird

WebMCP è una bozza del W3C Web Machine Learning Community Group. Permette a una pagina di registrare azioni con un nome su document.modelContext, così un agente del browser chiama una funzione invece di muoversi a tentoni nel DOM.

Dietro un proxy ogni frame di una pagina servita finisce sulla stessa origine, quindi l’impostazione predefinita self di WebMCP permetterebbe a un frame del sito che Lei ha aperto di registrare strumenti nella pagina che un agente sta leggendo.

Ultimo aggiornamento

Gli strumenti

TrickyBird registra questi strumenti sulle proprie pagine, un insieme per pagina e solo finché Lei si trova lì; la tabella dice su quale pagina sta ciascuno. La colonna Descrizione è la stringa che il browser consegna all’agente: viene letta dai moduli che registrano gli strumenti anziché ricopiata qui. Perciò la tabella non può elencare uno strumento che questo sito non registra.

Il browser dell’app ChatGPT per computer legge gli strumenti che un sito registra dal 27 agosto 2026, nei piani Work e Codex.

Non è un server MCP remoto

Non c’è nessun endpoint MCP da chiamare e niente da installare. document.modelContext vive dentro una scheda del browser, quindi questi strumenti esistono solo finché una di queste pagine è aperta nella Sua.

Navigare

open_site
Si registra su
/
Input
url
Risultato
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
Si registra su
/, /unblock/<slug>
Input
Nessuno
Risultato
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
Si registra su
/unblock/<slug>
Input
Nessuno
Risultato
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).

Consultare un sito

list_checked_sites
Si registra su
/, /unblock, /status
Input
Nessuno
Risultato
Nessuno

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
Si registra su
/, /unblock, /status
Input
domain
Risultato
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.

Leggere una pagina

get_faq
Si registra su
/faq
Input
Nessuno
Risultato
Nessuno

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

get_security_overview
Si registra su
/security
Input
Nessuno
Risultato
Nessuno

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

get_comparison
Si registra su
/compare
Input
Nessuno
Risultato
Nessuno

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
Si registra su
/learn/<slug>
Input
Nessuno
Risultato
Nessuno

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
Si registra su
/unblock/<slug>
Input
Nessuno
Risultato
Nessuno

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
Si registra su
/learn
Input
Nessuno
Risultato
Nessuno

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
Si registra su
/proof
Input
Nessuno
Risultato
Nessuno

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.

Sequenze consigliate

Verificare un sito, poi aprirlo

  1. Chiami list_checked_sites per i siti di cui TrickyBird pubblica una pagina verificata, o get_site_status per un singolo dominio.
  2. Chiami open_site con l’indirizzo che vuole; open_site non è limitato alla lista.

Aprire un sito, poi fermarlo

  1. Chiami open_site con l’indirizzo. Risponde ok appena l’avvio è partito.
  2. Chiami cancel_launch finché quell’avvio è ancora in corso: risponde cancelled quando un avvio era in corso, e nothing_to_cancel quando non ce n’era nessuno o una verifica sta aspettando la persona davanti allo schermo.

Leggere ciò che una pagina pubblica

  1. Chiami get_faq sulla pagina delle domande frequenti, get_security_overview sulla pagina sicurezza o get_comparison sulla pagina di confronto.
  2. Chiami get_article su un articolo esplicativo, o get_site_guide sulla pagina di un sito.
  3. Ciascuno restituisce ciò che pubblica la propria pagina, nell’ordine di quella pagina.

Come provarlo

Prima di cominciare

Oggi WebMCP esiste solo in Chromium: Firefox e Safari non hanno document.modelContext. Chrome dalla 149 alla 156 partecipa all’origin trial di WebMCP e il nostro indirizzo porta il token necessario, quindi su una di quelle versioni non deve attivare nulla.

Un Chrome fuori dall’origin trial ha bisogno di --enable-features=WebMCP. Gli altri browser basati su Chromium decidono ciascuno se WebMCP è attivo.

Nella console

Apra la nostra pagina iniziale in una nuova scheda, poi la sua console. I passaggi qui sotto li abbiamo eseguiti in Chrome 152.

  1. Chiami getTools() per vedere che cosa ha registrato questa pagina.

    const tools = await document.modelContext.getTools()

    Ottiene gli strumenti registrati sulla pagina in cui si trova, ciascuno con il nome e la descrizione della tabella e con il proprio schema di input.

  2. Chiami executeTool() con uno degli strumenti appena ricevuti e il suo input come stringa JSON.

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

    Quello che ottiene

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

    Una stringa JSON. La analizzi: content[0].text porta la risposta dello strumento, e un rifiuto mette isError su true.

Che cosa non fa

Nessuno di questi strumenti è registrato sui siti che apre tramite TrickyBird: il gateway rifiuta WebMCP su ogni documento che serve, e una pagina che passa tramite il proxy non può registrare nessuno strumento.

Il motivo sta nel primo paragrafo: sul nostro stesso indirizzo una pagina servita dal proxy non è un terzo che il Suo browser possa tenere separato, quindi il rifiuto deve arrivare da noi.

Fin dove arrivano questi strumenti

  • Niente di ciò che questi strumenti restituiscono viene da un sito che apre tramite TrickyBird, e niente porta con sé qualcosa sulla Sua sessione. Quelli in sola lettura restituiscono ciò che TrickyBird già pubblica sulla pagina su cui ciascuno si registra.
  • get_comparison riporta il confronto che TrickyBird pubblica tra un proxy web e una VPN, con la nota di equilibrio che la pagina stampa accanto. Non nomina nessun altro prodotto.
  • Solo open_site, open_this_site e cancel_launch cambiano qualcosa. Gli altri sono in sola lettura, e ciascuno lo dice nella propria descrizione.