YetiBrowser MCP

officiel

YetiBrowser MCP est une solution entièrement open-source permettant aux assistants IA d'interagir facilement avec votre navigateur existant.

Que pouvez-vous faire avec Yeti Browser MCP ?

  • Naviguer et capturer des instantanés de page — demandez à l'assistant de charger une URL avec browser_navigate et de renvoyer un instantané d'accessibilité de la page résultante.
  • Remplir et soumettre des formulaires web — utilisez browser_fill_form ou browser_type pour remplir plusieurs champs et éventuellement soumettre le formulaire.
  • Inspecter la sortie de la console et l'état de la page — récupérez les erreurs, les journaux, les données de formulaire, les cookies et les clés de stockage via browser_get_console_logs et browser_page_state.
  • Exécuter du JavaScript personnalisé dans la page — exécutez des scripts arbitraires avec browser_evaluate et obtenez des résultats sérialisables en JSON pour le débogage ou l'extraction de données.
  • Capturer des captures d'écran — prenez des captures d'écran de la fenêtre ou de la page entière à l'aide de browser_screenshot pour une vérification visuelle ou des workflows d'assurance qualité.

Documentation

[!IMPORTANT] Ce projet a été archivé. Il a été conçu pour pallier l'absence de contrôle du navigateur dans les agents IA tels que Claude et Codex, mais ces agents disposent désormais de ces fonctions en natif, sans nécessiter de solution dédiée basée sur MCP.

YetiBrowser MCP

YetiBrowser MCP est une implémentation entièrement open source du flux de travail Browser MCP. Il relie un serveur MCP basé sur Node à des extensions Chrome/Firefox afin que les clients Model Context Protocol — Codex/Claude Code, Cursor, Windsurf, MCP Inspector ou vos propres outils — puissent automatiser un véritable onglet de navigateur tout en conservant chaque octet sur votre machine et en restant auditables.

Pourquoi choisir YetiBrowser MCP ?

  • Transparent et modifiable – aucun téléchargement de binaire. Inspectez, forkez et étendez chaque composant.
  • Local d'abord – l'extension communique uniquement avec un serveur MCP localhost ; les données de navigation ne quittent jamais votre appareil.
  • Multi-navigateur – une logique partagée alimente les paquets Chrome et Firefox (la version Firefox est en attente d'un meilleur support de Manifest V3, l'expérience de connexion peut donc être limitée jusqu'à ce que Mozilla fournisse les API MV3 complètes).
  • Outillage orienté développeur – capture de console enrichie, comparaison DOM, sauvegardes d'état de page et captures d'écran pleine page conçues pour le débogage et l'assurance qualité.
  • Prêt pour la production – scripts et documentation pour l'empaquetage, la publication et l'intégration avec les flux de travail IDE.

Structure du dépôt

  • packages/shared – définitions TypeScript partagées pour les messages et les schémas d'outils.
  • packages/server – le serveur MCP qui fait le pont entre les clients MCP et un onglet de navigateur actif.
  • extensions/shared – source partagée de l'extension (arrière-plan/popup) et ressources.
  • extensions/chrome / extensions/firefox – couches d'empaquetage par navigateur.
  • docs/ – commandes d'espace de travail, listes de contrôle de publication et notes de fonctionnalités.
  • scripts/ – utilitaires d'aide tels que package-extensions.sh pour les archives de version.

Outils MCP disponibles

  • browser_snapshot – capturer un instantané orienté accessibilité de la page actuelle
  • browser_snapshot_diff – comparer les deux instantanés les plus récents pour mettre en évidence les changements DOM/ARIA
  • browser_navigate – charger une nouvelle URL dans l'onglet connecté et renvoyer un instantané mis à jour
  • browser_go_back / browser_go_forward – naviguer dans l'historique tout en maintenant MCP synchronisé
  • browser_wait – interrompre l'automatisation pendant un nombre défini de secondes
  • browser_wait_for – bloquer jusqu'à ce qu'un sélecteur apparaisse (éventuellement visible) avant de continuer
  • browser_press_key – simuler l'appui sur une touche du clavier sur l'élément focalisé
  • browser_click – cliquer sur l'élément identifié par un sélecteur CSS
  • browser_hover – survoler le pointeur au-dessus de l'élément ciblé
  • browser_drag – faire glisser un élément vers une cible de dépôt pour les interfaces de tri/glisser-déposer
  • browser_type – saisir du texte (en soumettant éventuellement avec Entrée) dans un élément éditable
  • browser_fill_form – remplir plusieurs champs/sélections/cases à cocher/boutons radio en un seul appel
  • browser_select_option – choisir une ou plusieurs options dans un élément <select>
  • browser_screenshot – capturer une capture d'écran de la fenêtre d'affichage ou de la page entière via le protocole DevTools
  • browser_get_console_logs – renvoyer la sortie récente de la console, y compris les erreurs avec les traces de pile
  • browser_page_state – vider les formulaires, les clés de stockage et les cookies pour la page connectée
  • browser_connection_info – signaler le port WebSocket du pont, l'état de la connexion et la version de l'extension
  • browser_evaluate – exécuter du JavaScript personnalisé dans la page et renvoyer des résultats sérialisables en JSON
  • browser_handle_dialog – accepter ou rejeter les dialogues alert/confirm/prompt avec un texte d'invite facultatif

Installation de l'extension de navigateur MCP

Navigateur Chrome

Navigateur Firefox (actuellement indisponible)

  • En raison des capacités limitées de Manifest v3 dans la version stable de Firefox, l'extension Firefox est en suspens jusqu'à ce que la prise en charge complète soit généralement disponible (en dehors des versions Nightly).

Installation du serveur MCP

Codex CLI

  • Modifiez votre ~/.codex/config.toml et ajoutez l'entrée MCP :
    [mcp_servers.yetibrowser-mcp]
    command = "npx"
    args = ["-y", "@yetidevworks/server"]
    
  • Redémarrez la commande CLI codex ; vous devriez voir yetibrowser-mcp dans la liste des outils /mcp.
  • Si vous souhaitez fournir un port spécifique, utilisez ce format pour l'entrée args : args = ["-y", "@yetidevworks/server", "--ws-port", "9010"]

Claude Code

  • Assurez-vous que l'extension est installée et connectée à un onglet, puis démarrez le serveur MCP avec npx -y @yetidevworks/server (ou exécutez la CLI construite localement).
  • Ajoutez l'entrée du serveur à ~/Library/Application Support/Claude/claude_desktop_config.json (voir l'exemple dans docs/publishing.md).
  • Redémarrez claude pour qu'il prenne en compte le nouveau serveur MCP ; vous devriez voir yetibrowser-mcp dans le menu des outils /mcp une fois l'extension connectée.

Autres clients compatibles MCP

  • Tout client MCP peut se connecter en lançant la CLI (npx -y @yetidevworks/server) ou en fournissant éventuellement un port spécifique, par exemple npx -y @yetidevworks/server --ws-port 9010.
  • Le serveur expose le transport MCP standard via stdio, utilisez donc le mécanisme de configuration pris en charge par votre client pour exécuter la commande ci-dessus lorsqu'un onglet est connecté.

MCP Inspector

  • Pour tester et déboguer en dehors d'un agent de codage.
  • npx @modelcontextprotocol/inspector npx -y @yetidevworks/server -- --ws-port 9010 pour exécuter et inspecter le serveur MCP conjointement avec l'extension de navigateur YetiBrowser MCP.

Dépannage

  • La CLI parcourt les ports 9010-9020 jusqu'à en trouver un libre, en journalisant switched to lorsqu'elle avance. Passez --ws-port <port> si vous souhaitez plutôt fixer un port spécifique.
  • La fenêtre contextuelle de l'extension de navigateur reflète ce comportement : laissez-la sur « Automatique » pour suivre le port de la CLI, ou choisissez « Manuel » et entrez le port signalé par browser_connection_info / le journal de la CLI pour le remplacer.
  • Demandez simplement à votre outil IA le port de connexion. Par exemple : what is the yetibrowser mcp connction info?, puis définissez le port manuel sur le port signalé.

Documentation et scripts de construction

  • Les commandes de l'espace de travail se trouvent dans docs/workspace-commands.md.
  • Les étapes de publication (npm + boutiques d'extensions) sont dans docs/publishing.md.
  • Le comportement des captures d'écran est documenté dans docs/screenshot.md.
  • Générez des archives distribuables Chrome/Firefox avec ./scripts/package-extensions.sh (sortie vers artifacts/).
  • Une politique de confidentialité au niveau du dépôt est disponible dans PRIVACY.md.