Due protocolli dominano il controllo browser con IA: CDP (Chrome DevTools Protocol) e MCP (Model Context Protocol). Risolvono problemi diversi a livelli diversi, ma gli sviluppatori che costruiscono agenti browser spesso li confondono o scelgono quello sbagliato per il loro caso d'uso. Questa guida spiega cosa fa ciascun protocollo, quando usare quale e come funzionano insieme in uno stack di agenti in produzione.
TL;DR: CDP dà al tuo agente un controllo diretto di basso livello su un browser tramite una connessione WebSocket. MCP dà al tuo LLM strumenti browser di alto livello tramite un'interfaccia standardizzata di tool-use. CDP è il motore; MCP è il volante. La maggior parte degli agenti AI in produzione ha bisogno di entrambi: MCP perché il LLM decida le azioni e CDP sotto perché il browser funzioni davvero. Clawbrowser supporta entrambi nativamente.
Nota: "CDP" in questo articolo si riferisce a Chrome DevTools Protocol, lo standard per il controllo browser.
Cosa sono realmente CDP e MCP
CDP: Chrome DevTools Protocol
CDP è un protocollo basato su WebSocket per controllare i browser Chromium in modo programmatico. Google lo ha creato per Chrome DevTools (l'ispettore che si apre con F12), ma è diventato lo standard per l'automazione browser. Playwright, Puppeteer e tutte le principali librerie di automazione usano CDP internamente.
Quando chiami page.goto() in Playwright, viene inviato un comando CDP via WebSocket al browser. CDP offre controllo granulare: navigare pagine, eseguire JavaScript, intercettare richieste di rete, manipolare cookie e catturare screenshot.
# CDP: your code controls the browser directly
from playwright.async_api import async_playwright
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp("http://127.0.0.1:9222")Per la guida CDP completa, vedi Browser CDP per agenti AI: una guida per sviluppatori.
MCP: Model Context Protocol
MCP è un protocollo che standardizza il modo in cui gli LLM si connettono a strumenti esterni. Invece di scrivere definizioni di function-call personalizzate per ogni strumento, il LLM scopre gli strumenti disponibili tramite un MCP server e li chiama usando un'interfaccia standard.
Per il controllo browser, un MCP server espone azioni come navigate, click, type, screenshot ed extract come strumenti che il LLM può invocare. Il LLM decide quale strumento chiamare in base al compito. Nessun codice Playwright, nessun selettore CSS, nessuna definizione di strumenti personalizzata nel tuo agente.
{
"mcpServers": {
"clawbrowser": {
"command": "clawctl",
"args": ["mcp", "serve"]Aggiungi quella configurazione a Claude Code, Cursor, Gemini CLI o qualsiasi agente compatibile con MCP. Il LLM ottiene immediatamente strumenti browser.
Perché vengono confusi
Entrambi i protocolli connettono un agente AI a un browser. Entrambi usano la parola "protocollo". Entrambi compaiono nelle stesse conversazioni sull'infrastruttura degli agenti AI. Ma operano a livelli diversi:
- CDP è un protocollo a livello browser. Comunica con Chromium.
- MCP è un protocollo a livello applicazione. Comunica con gli LLM.
Un MCP server browser usa CDP internamente per controllare il browser. Non sono alternative. Sono livelli nello stesso stack.
Confronto diretto
| CDP (Chrome DevTools Protocol) | MCP (Model Context Protocol) | |
|---|---|---|
| Creato da | Google (team Chrome) | Anthropic |
| Tipo di protocollo | Controllo browser (WebSocket) | Uso strumenti (stdio/SSE) |
| Chi lo chiama | Il tuo codice (Playwright, Puppeteer, WebSocket diretto) | Un LLM (Claude, GPT, Gemini) |
| Livello di controllo | Basso livello: DOM, rete, esecuzione JavaScript, cookie | Alto livello: navigate, click, type, screenshot, extract |
| Configurazione | Connessione alla porta di debug del browser | Configurare un MCP server nel tuo agente |
| Flessibilità | Totale: tutto ciò che il browser può fare | Limitata agli strumenti esposti dal server |
| Velocità per azione | Millisecondi (nessuna inferenza) | 0,5–3 secondi (il LLM decide ogni passo) |
| Gestione errori | Il tuo codice gestisce gli errori | Il LLM ragiona sugli errori |
| Anti-detection | Non integrata (dipende dal browser) | Non integrata (dipende dal browser) |
| Ideale per | Automazione con script, controllo granulare, sviluppo di framework | Navigazione guidata da LLM, compiti aperti, prototipazione rapida |
Nessuno dei due protocolli gestisce l'anti-detection. È un problema a livello browser, non di protocollo. Un'istanza Chrome standard connessa via CDP o tramite un MCP server espone gli stessi segnali di automazione. L'anti-detection richiede una soluzione a livello di engine come Clawbrowser: impronte gestite su oltre 20 superfici, proxy routing integrato e soppressione dei segnali CDP a livello del codice sorgente Chromium.
Quando usare CDP
Usa CDP quando hai bisogno di un controllo preciso e programmatico sul browser e conosci i passi esatti in anticipo.
Scenari in cui CDP vince:
- Scraping strutturato. Sai quali selettori puntare, quali dati estrarre e come gestire la paginazione. Il tuo codice esegue gli stessi passi ogni volta.
- Intercettazione di rete. Devi bloccare risorse, modificare header di richiesta, catturare risposte API o iniettare JavaScript prima del caricamento della pagina.
- Condizioni di attesa complesse. Devi attendere elementi DOM specifici, stati di inattività di rete o cambiamenti di variabili JavaScript prima di agire.
- Automazione critica per le prestazioni. I comandi CDP si eseguono in millisecondi. Nessun ritardo di inferenza LLM per azione. Un job di scraping di 50 passi che richiede secondi via CDP richiederebbe minuti con il ragionamento LLM per ogni passo.
- Sviluppo di framework. Stai costruendo un framework per agenti, un test harness o una libreria di automazione che altri useranno.
# CDP: full control, full responsibility
await page.wait_for_selector("#login-form")
await page.fill("#email", "[email protected]")
await page.fill("#password", credentials)
await page.click("#submit")Il compromesso: scrivi e mantieni tutto il codice di integrazione con il browser. Ogni selettore, ogni condizione di attesa, ogni gestore di errori. Quando la struttura della pagina cambia, il tuo codice si rompe.
Quando usare MCP
Usa MCP quando il LLM deve decidere cosa fare dopo in base a ciò che vede sulla pagina.
Scenari in cui MCP vince:
- Navigazione aperta. "Trova la pagina dei prezzi ed estrai i dettagli dei piani." L'agente naviga, legge la pagina e decide dove cliccare senza selettori scritti nel codice.
- Workflow multi-step con giudizio. "Accedi, controlla se c'è una nuova fattura, scaricala se l'importo supera i 500 $." Il LLM gestisce la logica condizionale leggendo il contenuto della pagina a ogni passo.
- Prototipazione rapida. Vuoi un agente browser in cinque minuti senza scrivere codice Playwright. Aggiungi la config MCP, descrivi il compito, fatto.
- Utenti non tecnici. L'operatore dell'agente descrive i compiti in linguaggio naturale. Nessun codice necessario.
- Ambienti nativi per agenti. Claude Code, Cursor e Gemini CLI parlano già MCP. Aggiungere un browser è un singolo blocco di configurazione.
# MCP: the LLM decides what to do
User prompt: "Go to example.com and tell me the page title"
LLM calls: navigate(url="https://example.com")
LLM calls: screenshot()Il compromesso: meno precisione. Il LLM potrebbe cliccare sull'elemento sbagliato, fare passi extra o leggere male il contenuto della pagina. Ogni azione comporta latenza di inferenza LLM. Non puoi intercettare richieste di rete o iniettare JavaScript tramite gli strumenti MCP browser standard.
Quando usare entrambi insieme
È qui che finiscono la maggior parte degli agenti AI in produzione. MCP gestisce l'interfaccia LLM-verso-agente. CDP gestisce l'interfaccia agente-verso-browser. Il MCP server si posiziona tra i due, traducendo chiamate di strumenti di alto livello in comandi browser di basso livello.
LLM ← MCP → MCP Server ← CDP → Browser
(clawctl) (Clawbrowser)Il LLM invia chiamate di strumenti MCP ("naviga a questo URL", "clicca il pulsante di login"). Il MCP server le traduce in comandi CDP e li invia al browser. I risultati risalgono la catena.
Perché il livello browser conta
La maggior parte dei MCP server browser si connette a un'istanza Chrome standard via CDP. Il browser non ha gestione delle impronte, proxy routing né anti-detection. Il tuo agente funziona sui siti demo ma viene bloccato sui siti di produzione dietro Cloudflare, DataDome o Akamai.
Il MCP server integrato di Clawbrowser si connette al proprio motore Chromium. Quando il LLM chiama navigate, il MCP server invia un comando CDP a un browser che ha già impronte gestite, proxy routing geo-allineato e soppressione dei segnali CDP a livello di engine. Nessun plugin stealth, nessun middleware proxy, nessun codice di rotazione delle impronte.
Percorso MCP (guidato da LLM, zero codice di integrazione):
{
"mcpServers": {
"clawbrowser": {
"command": "clawctl",
"args": ["mcp", "serve"]Percorso CDP (con script, controllo totale):
browser = await playwright.chromium.connect_over_cdp(
"http://127.0.0.1:9222"
)Entrambi i percorsi si connettono alla stessa istanza Clawbrowser con le stesse impronte, lo stesso proxy routing e la stessa anti-detection. Scegli l'interfaccia adatta al tuo caso d'uso. Usa entrambi nello stesso progetto quando parti diverse del workflow necessitano livelli di controllo diversi.
Per un tutorial passo dopo passo sulla costruzione di un agente con entrambi i protocolli, vedi Come costruire un agente AI che naviga il web.
Framework decisionale
| Domanda | CDP | MCP |
|---|---|---|
| Conosci i passi esatti in anticipo? | Sì | Usa CDP |
| Il LLM deve decidere dove cliccare? | Usa MCP | Sì |
| Hai bisogno di intercettazione di rete? | Sì | Non disponibile |
| Hai bisogno di velocità d'azione sotto il secondo? | Sì | No (latenza LLM) |
| Stai costruendo per non sviluppatori? | No | Sì |
| Usi Claude Code o Cursor? | Disponibile | Integrazione nativa |
| Vuoi zero codice browser? | No | Sì |
Se hai risposto "sì" a domande su entrambi i lati, usa entrambi: MCP per le parti guidate dal LLM e CDP per le parti di precisione. Clawbrowser gestisce il livello browser per entrambi i protocolli.
FAQ
Posso passare da CDP a MCP senza cambiare browser?
Sì, se il tuo browser supporta entrambi. Clawbrowser espone un endpoint CDP su ogni profilo e include un MCP server integrato. Connetti Playwright all'endpoint CDP per l'automazione con script e usa il MCP server per la navigazione guidata da LLM, entrambi sugli stessi profili browser con le stesse impronte e sessioni. Vedi Come connettere Cursor a un browser reale via CDP per una guida su entrambi i metodi di connessione.
Quale protocollo è più veloce?
CDP. I comandi si eseguono in millisecondi perché non è coinvolta alcuna inferenza LLM. MCP aggiunge 0,5–3 secondi per azione perché il LLM deve decidere quale strumento chiamare e interpretare il risultato. Per un job di scraping di 50 passi, CDP finisce in secondi. Lo stesso job via MCP richiede minuti. Usa CDP per l'automazione di massa quando conosci i passi. Usa MCP per compiti che richiedono giudizio a ogni passo.
E WebDriver BiDi?
WebDriver BiDi è uno standard W3C che punta a sostituire sia WebDriver (usato da Selenium) sia parti di CDP con un protocollo agnostico rispetto al browser. È ancora in fase di maturazione. Playwright e Puppeteer usano ancora CDP internamente. Quando WebDriver BiDi raggiungerà l'adozione completa, competerà con CDP a livello del controllo browser, non con MCP a livello del tool-use. Il framework decisionale CDP-vs-MCP di questo articolo si applica indipendentemente da quale protocollo browser di basso livello prevarrà.
Ho bisogno di un browser anti-detect per uno dei due protocolli?
Sì, se il tuo agente automatizza su siti con protezione anti-bot. Né CDP né MCP include anti-detection. Sono protocolli per inviare comandi a un browser. Se il browser espone segnali di automazione (navigator.webdriver, User-Agent headless, hash canvas generico), il sito lo blocca indipendentemente dal protocollo usato. Vedi Automazione browser senza essere bloccati per il modello di rilevamento completo.
Inizia a costruire
Installa Clawbrowser da clawbrowser.ai incollando il prompt di installazione nel tuo agente AI.
Percorso MCP (guidato da LLM): aggiungi la configurazione del MCP server Clawbrowser al tuo agente e inizia a navigare in linguaggio naturale.
Percorso CDP (con script): connetti Playwright o Puppeteer all'endpoint CDP e scrivi il tuo codice di automazione.
Entrambi: usa MCP per le parti in cui il LLM ragiona su cosa fare. Usa CDP per le parti in cui hai bisogno di un controllo preciso, veloce e deterministico. Stesso browser, stesse impronte, stesse sessioni.
Per la guida CDP approfondita, leggi Browser CDP per agenti AI: una guida per sviluppatori. Per un tutorial completo, leggi Come costruire un agente AI che naviga il web.
Continue exploring
Ask AI how Clawbrowser helps
Continua a leggere
Articoli correlati

Browser CDP per agenti AI: una guida per sviluppatori
Chrome DevTools Protocol è il modo standard agenti AI controllo browser. Standard Chrome viene rilevato. Ecco come collegare il vostro agente a un browser CDP che non viene bloccato.
Leggi l’articolo →
Come collegare Cursor a un browser reale via CDP
Il browser integrato di Cursor è una webview isolata. Collega Cursor a Clawbrowser via CDP per profili persistenti, fingerprint gestiti e proxy routing.
Leggi l’articolo →