Les outils de site exposent des opérations à un agent travaillant dans la même session navigateur. OpenAI documente une partie du standard WebMCP proposé. Disponibilité et limites de cette implémentation comptent autant que l’appel d’enregistrement.

Le périmètre documenté, vérifié le 8 septembre
La documentation OpenAI cite GPT-5.6 Sol et Terra, avec Luna désactivé, et exclut les espaces Enterprise et Edu. La disponibilité dépend aussi du déploiement et de la page. Le navigateur intégré ne découvre ni les outils déclaratifs de formulaires ni ceux enregistrés dans les iframes.
Ces restrictions décrivent cette implémentation, pas tous les navigateurs suivant la proposition WebMCP en évolution. L’interface habituelle de la page peut rester utilisable si les outils de site ne sont pas disponibles.
Un exemple complet sans modification de la page
Cet exemple original est destiné à un module JavaScript de la page. Il renvoie le texte actuel des titres placés dans un élément article :
if (typeof document.modelContext?.registerTool === "function") {
await document.modelContext.registerTool({
name: "read_article_outline",
description: "Read this page's article headings without changing it.",
inputSchema: {
type: "object", properties: {}, additionalProperties: false
},
annotations: { readOnlyHint: true },
execute: async () => ({
headings: [...document.querySelectorAll("article h1, article h2")]
.map(node => node.innerText.trim()).filter(Boolean)
})
});
}
Le schéma d’entrée vide est volontaire : aucun argument de l’appelant n’est nécessaire. Le gestionnaire consulte le document à chaque appel, sans figer le plan lors de l’enregistrement. En l’absence de titres correspondants, il renvoie un tableau vide.
Afficher ce code dans l’article n’enregistre pas cet outil sur PeopleAreGeek. C’est un exemple à intégrer dans une application. Il ne prouve pas non plus qu’un compte ou navigateur particulier découvrira l’outil.
Une annotation décrit une intention, sans l’imposer
L’exemple est en lecture seule parce que son gestionnaire lit des titres et les renvoie. Cette propriété ne vient pas de readOnlyHint lui-même. Un code erroné ou malveillant pourrait porter cette annotation tout en produisant des modifications.
De même, le schéma décrit les arguments attendus sans remplacer autorisation et validation dans le chemin réel d’accès aux données. L’annotation ne permet pas de déduire une exemption automatique des contrôles du navigateur.
Des vérifications d’intégration utiles
Essayez sans API WebMCP, avec un article contenant des titres, puis avec un article vide. Modifiez ensuite un titre et rappelez l’outil : le résultat doit suivre le contenu actuel. Dans un navigateur compatible, vérifiez séparément découverte et invocation.
Pour une application en iframe, placez l’intégration à une frontière autorisée de l’application principale. Les restrictions d’origine continuent de s’appliquer : WebMCP ne permet pas de lire librement une iframe provenant d’un autre domaine.
Lorsqu’une opération modifie des données, renvoyez assez d’informations pour vérifier l’état obtenu et réutilisez les permissions de l’interface humaine. Une petite action décrite précisément s’examine plus facilement qu’un outil large dont les effets restent flous.
Sources revérifiées le 8 septembre ; statut, limites et explications corrigés, illustration remplacée.