Aller au contenu

WebMCP sur TrickyBird

WebMCP est un brouillon du W3C Web Machine Learning Community Group. Il permet à une page d’enregistrer des actions nommées sur document.modelContext : un agent dans le navigateur appelle alors une fonction au lieu de tâtonner dans le DOM.

Derrière un proxy, chaque cadre d’une page servie se retrouve sur la même origine, si bien que la valeur par défaut self de WebMCP laisserait un cadre du site que vous avez ouvert enregistrer des outils dans la page qu’un agent est en train de lire.

Dernière mise à jour

Les outils

TrickyBird enregistre ces outils sur ses propres pages, un jeu d’outils par page et seulement tant que vous y êtes ; le tableau indique sur quelle page se trouve chacun d’eux. La colonne Description est la chaîne que le navigateur remet à l’agent : elle est lue dans les modules qui enregistrent les outils plutôt que recopiée ici. Le tableau ne peut donc pas annoncer un outil que ce site n’enregistre pas.

Le navigateur de l’application ChatGPT pour ordinateur lit les outils qu’un site enregistre depuis le 27 août 2026, dans les formules Work et Codex.

Pas un serveur MCP distant

Il n’y a aucun endpoint MCP à appeler et rien à installer. document.modelContext vit à l’intérieur d’un onglet de navigateur, si bien que ces outils n’existent que tant qu’une de ces pages est ouverte dans le vôtre.

Naviguer

open_site
S’enregistre sur
/
Entrée
url
Résultat
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
S’enregistre sur
/, /unblock/<slug>
Entrée
Aucune
Résultat
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
S’enregistre sur
/unblock/<slug>
Entrée
Aucune
Résultat
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).

Consulter un site

list_checked_sites
S’enregistre sur
/, /unblock, /status
Entrée
Aucune
Résultat
Aucun

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
S’enregistre sur
/, /unblock, /status
Entrée
domain
Résultat
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.

Lire une page

get_faq
S’enregistre sur
/faq
Entrée
Aucune
Résultat
Aucun

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

get_security_overview
S’enregistre sur
/security
Entrée
Aucune
Résultat
Aucun

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

get_comparison
S’enregistre sur
/compare
Entrée
Aucune
Résultat
Aucun

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
S’enregistre sur
/learn/<slug>
Entrée
Aucune
Résultat
Aucun

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
S’enregistre sur
/unblock/<slug>
Entrée
Aucune
Résultat
Aucun

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
S’enregistre sur
/learn
Entrée
Aucune
Résultat
Aucun

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
S’enregistre sur
/proof
Entrée
Aucune
Résultat
Aucun

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.

Enchaînements recommandés

Vérifier un site, puis l’ouvrir

  1. Appelez list_checked_sites pour les sites dont TrickyBird publie une page vérifiée, ou get_site_status pour un seul domaine.
  2. Appelez open_site avec l’adresse voulue ; open_site n’est pas limité à la liste.

Ouvrir un site, puis l’arrêter

  1. Appelez open_site avec l’adresse. Il répond ok dès que le lancement a démarré.
  2. Appelez cancel_launch tant que ce lancement est en cours : il répond cancelled quand un lancement était en route, et nothing_to_cancel quand il n’y en avait pas ou qu’une vérification attend la personne devant l’écran.

Lire ce qu’une page publie

  1. Appelez get_faq sur la page FAQ, get_security_overview sur la page sécurité ou get_comparison sur la page de comparaison.
  2. Appelez get_article sur un article explicatif, ou get_site_guide sur la page d’un site.
  3. Chacun renvoie ce que publie sa propre page, dans l’ordre de cette page.

Comment l’essayer

Avant de commencer

Aujourd’hui, WebMCP n’existe que dans Chromium. Firefox et Safari n’ont pas de document.modelContext. Chrome 149 à 156 participe à l’origin trial WebMCP et notre adresse porte le jeton voulu : sur l’une de ces versions, vous n’avez rien à activer.

Un Chrome hors de l’origin trial a besoin de --enable-features=WebMCP. Les autres navigateurs construits sur Chromium décident chacun si WebMCP est activé.

Dans la console

Ouvrez notre page d’accueil dans un nouvel onglet, puis sa console. Nous avons exécuté les étapes ci-dessous dans Chrome 152.

  1. Appelez getTools() pour voir ce que cette page a enregistré.

    const tools = await document.modelContext.getTools()

    Vous obtenez les outils enregistrés sur la page où vous vous trouvez, chacun avec le nom et la description du tableau, ainsi que son schéma d’entrée.

  2. Appelez executeTool() avec l’un des outils que vous venez de recevoir et son entrée sous forme de chaîne JSON.

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

    Vous obtenez

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

    Une chaîne JSON. Analysez-la : content[0].text porte la réponse propre de l’outil, et un refus met isError à true.

Ce qu’il ne fait pas

Aucun de ces outils n’est enregistré sur les sites que vous ouvrez via TrickyBird : la passerelle refuse WebMCP sur chaque document qu’elle sert, et une page qui passe par le proxy ne peut enregistrer aucun outil.

La raison tient au premier paragraphe : sur notre propre adresse, une page servie par le proxy n’est pas un tiers que votre navigateur peut tenir à l’écart, donc le refus doit venir de nous.

Ce que ces outils peuvent atteindre

  • Rien de ce que renvoient ces outils ne vient d’un site que vous ouvrez via TrickyBird, et rien n’emporte quoi que ce soit sur votre session. Ceux en lecture seule renvoient ce que TrickyBird publie déjà sur la page où chacun s’enregistre.
  • get_comparison rapporte la comparaison que TrickyBird publie entre un proxy web et un VPN, avec la note d’équilibre que la page imprime à côté. Il ne nomme aucun autre produit.
  • Seuls open_site, open_this_site et cancel_launch changent quoi que ce soit. Les autres sont en lecture seule, et chacun le dit dans sa propre description.