Connecter Cursor à un vrai navigateur via CDP — illustration de couverture Clawbrowser

Connecter Cursor à un vrai navigateur via CDP

Clawbrowser Teamagents-iacdpcursortutoriel

Le navigateur intégré de Cursor est pratique pour inspecter une app locale. Il peut naviguer, cliquer et prendre des captures. Mais il tourne dans un webview isolé : pas de cookies durables, pas de vrai fingerprint et aucune stratégie propre pour les sites qui vérifient l'identité du navigateur.

TL;DR : connectez Cursor à Clawbrowser via CDP (Chrome DevTools Protocol). Votre agent utilise alors un vrai Chromium avec profils persistants, fingerprints gérés et proxy routing. Quelques commandes suffisent, puis Cursor parle au navigateur par un endpoint local.


Pourquoi le navigateur intégré de Cursor ne suffit pas

Cursor fournit un browser tool basé sur un webview sandboxed exposé par un MCP server. Pour votre localhost, c'est utile : navigate, click, type, scroll, screenshot, console output et network traffic.

Dès que l'agent sort de votre environnement de développement, les limites deviennent visibles :

Limite Ce qui se passe
Webview isolé Ce n'est pas une vraie instance Chromium. Les sites repèrent les APIs manquantes et les propriétés non standard.
Pas de session persistante Cookies et localStorage restent liés au workspace et peuvent disparaître entre deux sessions.
Pas de gestion de fingerprint Le même canvas hash, WebGL renderer et navigator reviennent à chaque exécution.
Pas de proxy support Tout le trafic sort par l'IP par défaut de la machine. Les IPs datacenter sont vite signalées.
Fiabilité variable Cursor 2.3.18+ a introduit des régressions sur les clicks, le scroll et la détection d'éléments.

Si l'agent doit passer Cloudflare, DataDome, PerimeterX ou un autre système anti-bot commercial, le webview intégré part avec un mauvais profil.


Ce que CDP apporte

CDP (Chrome DevTools Protocol) est l'interface standard pour piloter Chromium par programme. Playwright expose connectOverCDP, Puppeteer expose puppeteer.connect, et les clients CDP bruts ouvrent un WebSocket vers le port de debugging.

En connectant Cursor à un navigateur externe via CDP, vous obtenez :

  • Un vrai navigateur avec moteur de rendu complet, extensions et APIs standard
  • Des sessions persistantes avec cookies et état de connexion réutilisables
  • Le contrôle complet des pages via le protocole utilisé par Playwright et Puppeteer
  • Anti-detection quand le navigateur garde fingerprint et proxy cohérents

La connexion reste une URL WebSocket standard. Tout outil compatible CDP peut se brancher sur tout navigateur qui expose un endpoint CDP. Clawbrowser en expose un par profil.


Connecter Cursor à Clawbrowser : étape par étape

Prérequis

  • macOS (Apple Silicon), Linux (x64 ou arm64) ou Windows
  • Cursor installé
  • Une API key Clawbrowser depuis app.clawbrowser.ai

Étape 1 : installer Clawbrowser

Téléchargez puis extrayez le bootstrapper clawctl :

# macOS (Apple Silicon)
archive="clawctl-macos-arm64.tar.gz"
curl -fL --retry 3 -o "$archive" \
  "https://github.com/clawbrowser/clawctl/releases/latest/download/${archive}"
tar -xzf "$archive"

Sous Linux, utilisez clawctl-linux-amd64.tar.gz ou clawctl-linux-arm64.tar.gz. Pas besoin de Docker ni de sudo.

Définissez votre API key :

./clawctl config set api-key

Étape 2 : démarrer un profil navigateur

Lancez Clawbrowser avec un profil nommé. Chaque profil a son fingerprint, son stockage de cookies et son proxy optionnel :

# Start a profile and open the verification page
clawctl start --profile cursor-dev --url clawbrowser://verify/ --json

# Get the CDP endpoint for this profile
clawctl endpoint --profile cursor-dev --json

La commande endpoint renvoie une URL comme http://127.0.0.1:9222. C'est l'endpoint CDP que votre agent Cursor utilisera.

Étape 3 : se connecter depuis Cursor via MCP

L'intégration la plus simple passe par le MCP server intégré de Clawbrowser. Il expose navigation, screenshots, clicks, gestion des tabs et démarrage de profils sous forme d'outils MCP appelables par Cursor. Le serveur gère CDP en interne.

Exécutez l'installateur pour écrire la configuration MCP locale :

clawctl install --agent all --json

Cursor récupère ensuite le MCP server dans sa configuration.

Alternative : Microsoft Playwright MCP

Si vous préférez le serveur officiel Microsoft Playwright MCP, pointez-le vers l'endpoint CDP de Clawbrowser dans Cursor Settings > MCP > Add Server :

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [

Les deux approches donnent à Cursor un accès haut niveau au navigateur. Le MCP server Clawbrowser ajoute en plus la gestion des profils et fingerprints.

Étape 4 : vérifier la connexion

Demandez à l'agent Cursor d'ouvrir une page de test :

Navigate to https://browserleaks.com/canvas and take a screenshot. Tell me what canvas fingerprint hash you see.

Si la connexion fonctionne, vous verrez un canvas fingerprint réel issu du profil Clawbrowser, pas le hash générique du webview.


Connexion CDP directe depuis le code

Si votre agent écrit et exécute des scripts plutôt que d'utiliser MCP, connectez-vous directement avec Playwright ou Puppeteer :

Playwright (Python)

from playwright.async_api import async_playwright

async def browse_with_clawbrowser():
    async with async_playwright() as p:
        # Connect to Clawbrowser's CDP endpoint

Playwright (Node.js)

const { chromium } = require('playwright');

const browser = await chromium.connectOverCDP('http://127.0.0.1:9222');
const page = browser.contexts()[0].pages()[0];

Puppeteer

const puppeteer = require('puppeteer');

const browser = await puppeteer.connect({
  browserURL: 'http://127.0.0.1:9222'
});

Les trois frameworks se connectent au même endpoint CDP. Clawbrowser gère la couche d'identité : Canvas, WebGL, AudioContext, fonts, résolution d'écran, timezone, propriétés navigator et proxy routing restent cohérents dans le profil.


Pourquoi l'anti-detection compte pour les agents Cursor

Quand un agent Cursor navigue avec un navigateur standard, les systèmes anti-bot vérifient l'identité sur plusieurs surfaces :

Signal Ce qui est vérifié Chrome standard Clawbrowser
Canvas hash GPU rendering fingerprint Static, matches known automation profiles Unique per profile, consistent with reported GPU
WebGL renderer Graphics card identifier Exposes real hardware Matches the profile's simulated hardware
Navigator properties Browser version, platform, language Generic Chromium values Consistent with profile's OS and locale
Timezone System timezone vs IP geo Mismatches with proxy location Auto-aligned with proxy geography
CDP detection Runtime.enable traces Detectable via leaked CDP artifacts Engine-level patches suppress CDP signals

Une instance Chromium standard contrôlée par CDP laisse des traces que les anti-bot lisent très vite. Clawbrowser les corrige au niveau du moteur, pas avec des overrides JavaScript visibles dans les descriptors ou les prototype chains.

C'est l'écart entre chrome --remote-debugging-port=9222, qui finit bloqué, et Clawbrowser, qui présente une identité cohérente.


Gérer plusieurs profils

Chaque profil Clawbrowser est isolé. Vous pouvez lancer plusieurs profils pour plusieurs comptes ou projets :

# Create three profiles with different locations
clawctl create --profile account-a --location sweden --json
clawctl create --profile account-b --location germany --json
clawctl create --profile account-c --location japan --json

Chaque profil reçoit un fingerprint unique, sa propre IP proxy et un stockage séparé. Les plateformes voient des utilisateurs indépendants sur des machines et des pays différents.

Votre agent Cursor peut changer de profil en se connectant à un autre endpoint CDP, ou piloter plusieurs profils en parallèle depuis un seul script.


Cursor intégré Chrome via CDP Clawbrowser via CDP
Browser engine Sandboxed webview Real Chromium Real Chromium (patched)
Session persistence Workspace-scoped Manual profile dirs Named profiles with auto-persistence
Fingerprint management None None 20+ surfaces managed per profile
Proxy support None Manual flag Profile-bound, geo-aligned
Anti-bot survival Blocked instantly Blocked within minutes Passes Cloudflare, DataDome, PerimeterX
Multi-account Not possible Separate --user-data-dir Built-in profile isolation
Setup complexity Zero (built in) Moderate Three commands

Gardez le navigateur intégré pour votre app locale. Utilisez Clawbrowser via CDP dès que l'agent touche le web réel.


FAQ

Est-ce compatible avec l'agent mode de Cursor ?

Oui. L'agent mode de Cursor peut utiliser n'importe quel MCP server, y compris un serveur qui pilote un navigateur externe via CDP. Les actions s'exécutent dans Clawbrowser au lieu du webview sandboxed.

Faut-il installer Playwright ou Puppeteer ?

Seulement si l'agent écrit et lance des scripts. Pour le flux MCP, le serveur gère la connexion CDP en interne et l'agent appelle des actions comme "navigate" ou "click".

Puis-je réutiliser des sessions de login entre projets Cursor ?

Oui. Les profils Clawbrowser conservent cookies, localStorage et IndexedDB. Lancez un profil, connectez-vous manuellement ou via l'agent, puis réutilisez ce profil plus tard.

Et si l'outil browser de Cursor entre en conflit avec le navigateur externe ?

Désactivez le browser intégré dans Settings > Features > Browser si vous voulez éviter l'ambiguïté. Sinon, les deux peuvent coexister : ils sont indépendants.

Clawbrowser est-il gratuit ?

Oui. Clawbrowser est gratuit, open source et sous licence MIT. Pas de frais par seat, pas de limite d'usage, pas d'abonnement au runtime. Une API key de app.clawbrowser.ai valide l'installation.


Démarrer

Trois commandes pour connecter votre agent Cursor à un vrai navigateur :

# Install Clawbrowser
clawctl install --json

# Set your API key
clawctl config set api-key

Pointez votre MCP server ou votre script Playwright vers l'endpoint obtenu. Cursor navigue alors avec fingerprints gérés, sessions persistantes et proxy routing.

Pour aller plus loin sur CDP, lisez Navigateur CDP pour les agents IA : guide du développeur. Pour le fingerprinting, lisez Empreintes digitales du navigateur : 20 signaux anti-bot.

Poursuivre la lecture

Voir tous les articles →