2 points par GN⁺ 2025-04-08 | 1 commentaires | Partager sur WhatsApp
  • Browser MCP relie les applications d’IA et le navigateur de l’utilisateur afin d’automatiser la saisie de formulaires, les tests et les tâches web répétitives
  • L’automatisation s’exécute sur la machine locale, ce qui réduit la latence réseau, et l’activité du navigateur n’est pas envoyée à des serveurs distants
  • Le profil de navigateur existant est réutilisé tel quel pour conserver l’état de connexion, et une véritable empreinte de navigateur permet d’éviter la détection de bots basique et les CAPTCHA
  • Le démarrage se fait en 3 étapes : installer l’extension du navigateur, ajouter le serveur MCP à l’application d’IA, puis créer un workflow d’automatisation
  • Fournit les outils nécessaires pour piloter le navigateur : navigation par URL, clic, glisser-déposer, snapshot, capture d’écran, consultation des logs de console, etc.

Automatiser les tâches navigateur difficiles à gérer avec une simple app d’IA

  • Les automatisations qui nécessitent de piloter le navigateur, comme remplir de façon répétée des formulaires sur des sites web, sont difficiles à gérer avec de simples applications d’IA comme Cursor ou Claude
  • Browser MCP relie les applications d’IA au navigateur de l’utilisateur pour leur permettre d’exécuter à sa place des tâches sur le web
  • Il existe deux principaux cas d’usage
    • Tests automatisés : un éditeur IA teste le code de bout en bout, vérifie les parcours utilisateur et les éléments d’interface, et confirme le comportement de l’application dans différents scénarios
    • Automatisation des tâches : prise en charge de tâches web répétitives comme la collecte de données, le remplissage de formulaires et l’automatisation de workflows

Processus d’installation et exécution en local

  • Le démarrage se compose de trois étapes
    • Installer l’extension Browser MCP dans le navigateur
    • Ajouter le serveur MCP Browser MCP à l’application d’IA pour le relier à l’extension du navigateur
    • Commencer à créer des workflows d’automatisation pour que l’assistant IA gère les tâches répétitives dans le navigateur
  • L’automatisation s’exécute sur la machine locale de l’utilisateur
    • Vise de meilleures performances et une réduction de la latence réseau
    • L’activité du navigateur n’est pas envoyée à des serveurs distants et reste sur l’appareil
    • Utilise le profil de navigateur existant afin de conserver l’état de connexion aux services
    • Utilise une véritable empreinte de navigateur pour éviter la détection de bots basique et les CAPTCHA

Outils fournis et environnements pris en charge

  • Fournit les outils nécessaires au pilotage du navigateur
    • Navigate, Go Back, Go Forward, Wait
    • Press Key, Click, Drag & Drop, Hover, Type Text
    • Snapshot, Screenshot, Get Console Logs
  • Les environnements pris en charge incluent Cursor, Claude, Windsurf et VSCode
  • La documentation est disponible sur Documentation

1 commentaires

 
GN⁺ 2025-04-08
Avis sur Hacker News
  • [!warning!] L’extension Chrome de ce projet envoie des données de télémétrie détaillées à PostHog et Amplitude : https://storage.googleapis.com/cobrowser-images/telemetry.pn..., https://storage.googleapis.com/cobrowser-images/pings.png
    De plus, le code source du serveur MCP local est inclus, mais pas celui de l’extension Chrome ; elle semble embarquer https://github.com/ruifigueira/playwright-crx sans attribution, ce qui est très suspect.

    • Je suis le créateur de Browser MCP. L’extension utilise un ID d’appareil anonyme et envoie des événements d’analyse lorsque des appels d’outils sont utilisés.
      En regardant le trafic réseau, on peut vérifier qu’aucune information personnalisée ou identifiable n’est envoyée. L’objectif est de collecter des données d’usage anonymisées pour comprendre à quel point l’extension est utilisée, comme un site web qui compte ses visiteurs. Comme je répartis mon temps entre plusieurs projets, connaître le nombre d’utilisateurs actifs m’aide à décider sur quoi me concentrer.
      J’ai entièrement écrit l’extension moi-même, et la raison pour laquelle le dépôt actuel ne contient que le serveur MCP est expliquée dans cette issue GitHub : https://github.com/BrowserMCP/mcp/issues/1#issuecomment-2784...
      En résumé, j’utilise un monorepo qui contient le code partagé par toutes les extensions ; isoler uniquement celle-ci et maintenir plusieurs monorepos synchronisés demanderait pas mal de travail. On peut ne pas aimer la façon dont le projet est organisé, mais il n’y a rien de malveillant.
    • Si par « détaillées » on entend ici un deviceId anonyme et un compteur du nombre d’appels d’outils, alors on reproche aussi à une app de chercher à obtenir des informations d’usage de base.
    • Les seules extensions Chrome qu’on devrait installer sont celles qu’on peut compiler soi-même depuis les sources.
  • Le site affirme « utiliser une véritable empreinte de navigateur pour éviter la détection de bots et les CAPTCHA », mais en réalité ce n’était pas le cas.
    Il y a quelques semaines, avec un système similaire que j’avais fabriqué moi-même pour laisser une IA contrôler le navigateur dans une session connectée, des CAPTCHA ont commencé à apparaître même dans une session utilisée manuellement, et j’ai fini par être bloqué sur plusieurs sites. Quand j’ai arrêté d’utiliser la session du navigateur de cette manière, les blocages ont fini par disparaître avec le temps, mais cette approche n’est pas une solution miracle et peut aussi vous faire perdre votre propre accès.

    • Le prérequis implicite de ce genre d’approche est généralement « avec des proxys de haute qualité ».
      De plus, cette extension a l’air assez visible, donc la détection de bots de Cloudflare ne devrait pas mettre longtemps à la repérer, comme elle le fait avec Playwright.
    • Cette extension active le débogage dans le navigateur, et une bannière indique qu’une automatisation est en cours. JavaScript peut le détecter.
      C’est pour cela que ce genre de projet existe : https://github.com/Kaliiiiiiiiii-Vinyzu/patchright. Il masque la partie débogage côté JavaScript.
    • Cela peut aussi dépendre de la vitesse à laquelle les éléments du site sont cliqués.
    • Je me demande quels signaux permettraient une détection rapide. Par exemple, on peut suivre les mouvements de souris et calculer s’ils sont trop propres ; ajouter un bruit plus humain aux déplacements de la souris pourrait améliorer le contournement.
      Faire trop d’actions trop vite est aussi un problème, mais le timing entre les actions peut également jouer. Même si chaque clic n’est pas rapide, des délais trop réguliers deviennent un autre signal non humain.
    • La raison même de l’existence des CAPTCHA est aussi qu’on ne peut pas faire confiance aux gens pour utiliser correctement des outils d’automatisation.
      Dire « éviter la détection de bots et les CAPTCHA » revient au fond à dire que ces dispositifs existent à cause de personnes comme toi. Si tu as vraiment besoin d’un accès, il faut demander une API ; elle pourra être payante ou non. Elle pourra être accordée ou le propriétaire du site pourra refuser, auquel cas tu dois accepter que ton comportement ou ton cas d’usage n’est pas souhaité.
  • J’ai l’impression d’avoir dormi une journée et maintenant je vois MCP partout. Je ne sais pas ce qu’est MCP, et à ce stade j’ai peur de demander.

    • MCP est une manière de fournir une bibliothèque de méthodes/API que les modèles LLM peuvent « appeler ».
      On indique au modèle le nom des méthodes, leurs paramètres, leurs types de sortie et leur usage ; le LLM demande alors au serveur MCP d’appeler une fonction, examine le résultat, puis appelle la fonction suivante si nécessaire. Aujourd’hui, il est difficile de dire à ChatGPT : « ouvre Google Maps avec mon compte, cherche des magasins de vélos près de New York et récupère leurs numéros de téléphone », mais avec un MCP de navigateur, ChatGPT peut envoyer au navigateur des instructions comme « ouvrir Google Maps », « montrer une capture d’écran » ou « cliquer à cet endroit ».
    • Le pire, c’est que cela ouvre une boîte de Pandore de vulnérabilités potentielles : https://elenacross7.medium.com/%EF%B8%8F-the-s-in-mcp-stands...
    • MCP est un standard qui permet de brancher des outils utiles aux modèles d’IA afin qu’ils puissent les utiliser.
      Pour le grand public, le concept est curieusement inversé et peu intuitif ; pour les développeurs, cela ressemble aux outils qu’ils utilisent déjà, donc ils perçoivent moins la confusion.
    • MCP est largement adopté, mais ce n’est pas vraiment un mouvement venu de la base. Cela ressemble plutôt à une entrée rapide d’entreprises d’IA déjà établies pour capter la notoriété auprès des développeurs et des parts de marché avant qu’un consensus n’émerge.
    • C’est un appel de procédure distante (RPC) dédié aux LLM. Et aussi la nouvelle tendance du jour qui déferle sur le monde entier.
  • Sur un site de shopping, j’aimerais pouvoir dire au navigateur : « Parcours tous les buffets de cette liste et ne garde que ceux qui font plus de 155 cm et moins de 100 cm. Donne la priorité au bois foncé et à ceux qui ont de la place pour des vinyles de 31,43 cm de hauteur »
    Si on pouvait extraire les détails depuis la page, ce serait très utile, et je me demande s’il existe déjà un navigateur capable de faire ça

    • Je construis quelque chose de similaire appelé MatterRank, qui fonctionne actuellement sur la recherche web
      Par exemple : « privilégie les résultats qui traitent de X et ont une tendance Y, et rétrograde ceux qui essaient de vendre quelque chose ». Vous pouvez l’essayer sur https://matterrank.ai
      J’aimerais aussi en savoir plus sur les cas d’usage que vous imaginez. Je me demande s’il s’agit d’une extension de navigateur qui fonctionne sur le site que vous êtes déjà en train de consulter, d’un service d’agrégation d’achats proposant ce type de fonction, ou de quelque chose de totalement différent
    • C’est possible avec browser-use : https://browser-use.com/
    • Pour l’aménagement intérieur, je suis clairement intéressé par la recherche d’objets correspondant à des prompts très précis
  • Beau travail. Je l’ai testé dans Claude Desktop et ça fonctionnait de manière fluide, avec beaucoup moins de lourdeur que Playwright. Ça va dans la bonne direction
    Je ne sais pas si c’est déjà fait, mais ce serait bien que, lorsqu’un CAPTCHA est détecté sur une page, l’automatisation se mette en pause et indique à l’utilisateur qu’une intervention est nécessaire. Playwright, lui, essaie de continuer malgré les CAPTCHA

  • Une tâche consistant à chercher des informations sur le web et à mettre les résultats dans une feuille de calcul Google Sheets a fonctionné presque parfaitement au premier essai, puis a complètement échoué lors des 8 à 10 tentatives suivantes
    Je me demande s’il y a un problème de latence entre ce qui se passe dans le navigateur et l’application MCP, ici Claude Desktop. Lors du premier essai, j’ai cliqué assez vite sur l’autorisation « Allow for this chat » ; ensuite, j’ai eu l’impression qu’au moment où je cliquais sur l’autorisation, le LLM indiquait déjà : « Il semble y avoir eu un problème avec le clic. Je vais réessayer avec une autre référence »
    Des actions comme cliquer sur le titre de la feuille Google puis saisir un nom, qui avaient parfaitement fonctionné la première fois, ont échoué à 100 % lors des tentatives suivantes. Même chose pour l’identification de cellules comme A1, B1 et la saisie de lignes. L’expérience elle-même est très fluide, et la configuration comme l’exécution sont excellentes, mais à cause de la latence et de la vitesse nécessaire pour cliquer sur le bouton d’autorisation, cela semble en pratique difficile à utiliser avec Claude Desktop

    • Une UI riche comme Google Sheets me paraît être un mauvais cas d’usage pour un serveur MCP d’automatisation de navigateur généraliste
      Ce serait bien d’avoir un tel serveur MCP, mais avec un outil spécifique permettant au LLM de lire et d’écrire dans les cellules Google Sheets. En donnant une abstraction plus précise, au lieu d’interagir de façon générale avec une page web, ce genre de tâche serait bien mieux géré
    • J’ai travaillé sur Google Sheets MCP et, en m’appuyant sur la recherche intégrée de Claude pour le scraping de données, cela fonctionnait plutôt bien
      Exemple : https://x.com/xing101/status/1903391600040083488
      Configuration : https://github.com/xing5/mcp-google-sheets
    • Ce que vous avez vécu, c’est ce qu’on appelle couramment de la chance
      C’est la même raison pour laquelle les gens pensent régulièrement que chaque nouvelle version de ChatGPT a été nerfée. En réalité, ils ont eu de la chance au début et, sur la base de ce premier résultat positif, ils se sont construit des attentes irréalistes. Ce n’est pas un bug ni un défaut ; c’est plutôt que la probabilité statistique d’obtenir le comportement voulu était faible, et que vous avez simplement eu un bon lancer de dés au premier tour
    • De mon côté, dans Google Sheets, il n’arrive à cliquer nulle part. J’obtiens l’erreur suivante
      --Error: Cannot access a chrome-extension:// URL of different extension
  • J’attends vraiment ce genre de chose pour les tâches manuelles comme les notes de frais. Chaque mois, je dois aller sur les sites de prestataires, me connecter, trouver et télécharger les relevés, créer un document Google avec les détails, le télécharger, puis rédiger un nouvel e-mail et y joindre tous les fichiers
    Pour vérifier que les pièces jointes sont les bonnes, il arrive même que je doive les retélécharger, car je ne peux pas les consulter directement depuis l’e-mail. L’automatisation est déjà possible, et une bonne application de suivi des dépenses supprimerait la moitié de ce travail, mais les outils d’IA ont le potentiel de réduire fortement la charge liée à ces petites tâches de rédaction détaillée. C’est particulièrement important pour ce type de workflow, où de petits changements surviennent souvent

  • C’est peut-être évident pour la plupart des gens ici, mais pour exécuter le serveur MCP, Node.js doit être installé. Ce détail important manque dans les instructions de configuration

  • J’ai créé quelque chose de similaire, qui contrôle des synthétiseurs matériels pour permettre de faire du sound design sans toucher physiquement aux potards : https://github.com/zerubeus/elektron-mcp

    • Bonne idée
      On peut imaginer contrôler des plugins à distance et laisser un LLM faire du mastering et de l’ajustement de timbre avec des outils existants. Les interfaces complexes et excessivement graphiques des VST peuvent constituer un obstacle aux performances, mais on pourrait se connecter à une interface de mapping MIDI étiquetée pour contrôler les potards et les niveaux
  • Ce serait bien de pouvoir explorer la page via l’arbre d’accessibilité des outils de développement Chrome, plutôt que de dépendre de captures d’écran : https://developer.chrome.com/blog/full-accessibility-tree

    • En fait, c’est l’inverse : pour l’instant, il n’y a pas de captures d’écran, seulement l’arbre d’accessibilité