Aller au contenu

Outils

cloakbrowser-mcp expose les outils upstream de Playwright MCP sans modification. Les noms, descriptions, schémas, annotations et réponses des outils proviennent de @playwright/mcp.

Outils upstream

La surface d'outils navigateur upstream par défaut doit correspondre à la dépendance Playwright MCP fixée. Elle inclut les outils principaux comme la navigation, les snapshots, les clics, la saisie, les captures d'écran, les onglets, les messages console, l'inspection réseau, l'envoi de fichiers, les dialogues et les outils d'évaluation non sûrs.

Pour une référence upstream stable, consultez le test de capacités Playwright MCP @playwright/mcp@0.0.82 fixé au commit exact du paquet : default and capability-gated tool names.

Ce projet considère upstream Playwright MCP comme source faisant autorité et ne maintient pas de référence de schéma copiée.

L'ensemble par défaut contient 25 outils upstream, dont browser_emulate_media. PLAYWRIGHT_MCP_CAPS=devtools transmet la capacité devtools au processus enfant sans option --caps propre au pont ; les outils et schémas upstream qui en résultent sont transmis sans modification, y compris browser_start_recording et browser_stop_recording.

Limitation d'enregistrement avec le binaire public CloakBrowser v146

Les outils d'enregistrement sont disponibles, mais le binaire public Chromium 146 sans clé utilisé par CloakBrowser 0.5.10 désactive volontairement la liaison Playwright entre la page et l'hôte pour préserver la furtivité. Par conséquent, browser_stop_recording peut renvoyer du code partiel : la navigation est enregistrée, tandis que les saisies et les clics réussis sont omis. Vérifiez les enregistrements générés avant de les réutiliser.

La compatibilité activable explicitement est suivie dans CloakBrowser #532. La décision sous-jacente concernant la liaison est abordée dans #340 et #176.

Outils WebMCP dynamiques

Chromium prend en charge WebMCP à partir de la version 154. Les anciennes versions de CloakBrowser ignorent le feature flag ; utilisez une version de navigateur compatible ou PLAYWRIGHT_MCP_BROWSER_ENGINE=playwright lorsque WebMCP est requis.

Lorsque Chromium est lancé avec --enable-features=WebMCP, les pages peuvent déclarer des outils webmcp_*. Le bridge transmet notifications/tools/list_changed, vide tout le cache tools/list et le client doit redemander la liste. Avec Streamable HTTP, seul le flux de notification ouvert de la session concernée reçoit l'événement ; même sans flux, le prochain tools/list reste à jour. Considérez le nom, la description, le schéma, les annotations et l'output comme des données de page non fiables. Le bridge n'active pas WebMCP automatiquement ; PLAYWRIGHT_MCP_WEBMCP=false désactive la collecte.

Outils locaux

cloakbrowser_binary_info

Retourne des informations structurées sur le paquet CloakBrowser, la plateforme actuelle, le répertoire de cache, le chemin binaire attendu, l'état d'installation et le resolved executable path utilisé par le pont.

cloakbrowser_bridge_info

Retourne les métadonnées structurées du pont :

L'objet additif structuredContent.cdp rapporte le CDP géré de la session appelante état :

{ "enabled": false }
{
  "enabled": true,
  "state": "ready",
  "generation": 1,
  "bindHost": "127.0.0.1",
  "port": 9222,
  "advertisedHost": null,
  "discoveryUrl": "http://127.0.0.1:9222/cdp/<capability>",
  "activeConnections": 0
}
{
  "enabled": true,
  "state": "unavailable",
  "generation": 1,
  "bindHost": "127.0.0.1",
  "port": 9222,
  "advertisedHost": null,
  "discoveryUrl": null,
  "activeConnections": 0
}

generation augmente et discoveryUrl tourne après le remplacement du navigateur. activeConnections compte les connexions WebSocket acceptées via un proxy sans exposer identités des clients, identifiants cibles ou contenu du protocole. Traitez chaque découverte non nulle URL comme une référence.

Utilisez la découverte URL avec un client compatible CDP :

import { chromium } from 'playwright';

const browser = await chromium.connectOverCDP(discoveryUrl);

CDP géré n'est pas le protocole du serveur Playwright. Playwright chromium.connect() et l'intégration Open WebUI PLAYWRIGHT_WS_URL actuelle s'attendent un point de terminaison de serveur Playwright et ne sont pas compatibles avec ce URL.

  • nom et version du MCP server ;
  • mode d'exécution ;
  • paquet et version upstream Playwright MCP ;
  • nombre d'outils upstream ;
  • noms des outils locaux spécifiques à Cloak.

La surface locale reste limitée à ces deux outils de diagnostic. SessionSeats et getSessionSeats ne sont pas exposés comme outil MCP, car CloakBrowser 0.5.10 n'exporte pas cette API depuis son point d'entrée public.

Parité

CI construit l'image Docker et exécute npm run bridge:compare. Ce script démarre en parallèle l'image officielle Playwright MCP et l'image du pont CloakBrowser, compare la liste des outils upstream et exerce les outils navigateur upstream par défaut sur la même page fixture.

Utilisez --report pour écrire un rapport JSON lisible par machine :

npm run bridge:compare -- cloakbrowser-mcp:dev --report bridge-parity-report.json

CI téléverse ce rapport comme artifact pour les builds Docker et les builds de release.