From a48e2623719fc2c710e64042e128e882394b4680 Mon Sep 17 00:00:00 2001 From: Egutierrez Date: Sat, 13 Jun 2026 14:28:03 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20app.md=20v0.8.0=20=E2=80=94=20browser?= =?UTF-8?q?=5Fset=5Fmode=20+=20aceleraciones=20CDP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Documenta los cambios de la v0.8.0 en el app.md del browser_mcp: - Bump de versión 0.7.0 -> 0.8.0 y descripción (45 -> 46 tools, mención del modo de velocidad de sesión). - Sección Tools (46): añade browser_set_mode en el grupo Sesión. - Capability growth log: entrada v0.8.0 detallando el flag de velocidad, el settle adaptativo, la escritura insertText en auto, el poll del puerto en launch_profile, los enable cacheados, wait_load por evento, el timeout de sendCDP y las nuevas CdpInsertText/CdpTypeRefFast, con los números del smoke contra Chrome 9333. --- app.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/app.md b/app.md index 784f6e6..680924c 100644 --- a/app.md +++ b/app.md @@ -2,8 +2,8 @@ name: browser_mcp lang: go domain: infra -version: 0.7.0 -description: "Servidor MCP que expone control total del navegador via CDP (45 tools: navegación, DOM, cookies, iframes, teclado/scroll, diálogos, estado de sesión, selección determinista de pestaña, lectura compacta texto/AX nativa + bucle percibir→actuar por #ref con auto-observe, percepción y lectura de texto dentro de iframes, click por coordenadas, screenshot devuelto como image content que el LLM ve, y gestión del ciclo de vida de Chromium por perfil: listar masters en ejecución, lanzar un perfil concreto con o sin CDP, y cerrar limpio) reusando funciones del dominio browser del registry con un pool de conexiones CDP vivas. Por defecto opera sobre un Chrome aislado (puerto 9333) separado del navegador diario." +version: 0.8.0 +description: "Servidor MCP que expone control total del navegador via CDP (46 tools: navegación, DOM, cookies, iframes, teclado/scroll, diálogos, estado de sesión, selección determinista de pestaña, modo de velocidad de sesión (browser_set_mode: 'auto' rápido por defecto / 'human' sigiloso anti-detección), lectura compacta texto/AX nativa + bucle percibir→actuar por #ref con auto-observe, percepción y lectura de texto dentro de iframes, click por coordenadas, screenshot devuelto como image content que el LLM ve, y gestión del ciclo de vida de Chromium por perfil: listar masters en ejecución, lanzar un perfil concreto con o sin CDP, y cerrar limpio) reusando funciones del dominio browser del registry con un pool de conexiones CDP vivas. Por defecto opera sobre un Chrome aislado (puerto 9333) separado del navegador diario." tags: [mcp, browser, cdp, automation, scraping] e2e_checks: - id: build @@ -118,12 +118,13 @@ podría manipular pestañas ajenas del usuario (banca, correo). Para evitarlo: - Para adjuntarte deliberadamente al navegador diario, pasa `port: 9222` explícito en cada tool. Hazlo solo con cuidado. -## Tools (45) +## Tools (46) ### Sesión (`tools_session.go`) - `browser_launch` (MUTA) — lanza Chrome con CDP. args: port, headless, user_data_dir, url. - `browser_connect` — abre/poolea la conexión CDP del puerto. args: port. - `browser_disconnect` — cierra y descarta la conexión del puerto (no mata Chrome). args: port. +- `browser_set_mode` — fija el modo de velocidad de sesión del puerto: `auto` (default, rápido) o `human` (sigiloso anti-detección). args: port, mode. Cada tool de acción puede overridearlo con su arg `mode`. ### Ciclo de vida por perfil (`tools_lifecycle.go`) Gestionan los Chromium del USUARIO por perfil (`Personal`, `Work`, ...), distintos del Chrome @@ -286,6 +287,24 @@ Funciones del dominio `browser` que NO se exponen como tools en esta versión, c ## Capability growth log +- v0.8.0 (2026-06-13) — Aceleración del manejo del navegador via CDP + flag de velocidad de + sesión. (1) Nueva tool `browser_set_mode` (45 → 46 tools): fija el modo de velocidad por puerto + en el pool — `auto` (default del MCP, rápido) vs `human` (sigiloso anti-detección). El modo se + resuelve por acción con `effectiveMode`: arg `mode` de la tool > modo de sesión > `auto`. (2) Settle + adaptativo: el sleep ciego fijo de 400ms tras cada acción mutante (`dom_click_ref`/`dom_type_ref`/ + `dom_hover_ref`/`dom_click_xy`) pasa a `settleForMode` — 60ms en `auto`, aleatorio 250-650ms en + `human` (ritmo no-máquina), 0 en `instant`. (3) `dom_type_ref` ahora tiene arg `mode`: en `auto` + usa `CdpTypeRefFast` (`Input.insertText`, un solo round-trip) y en `human` teclea carácter a + carácter (`CdpTypeRef`) con pausas aleatorias. (4) `browser_launch_profile` reemplaza el `sleep(1s)` + ciego por un poll del puerto CDP (`waitCDPPort`). Cambios en el dominio `browser` del registry que + aprovecha el MCP: `Accessibility.enable`/`Network.enable`/`Page.enable` cacheados por conexión + (`ensureAX`/`ensureNetwork`/`ensurePage` en `CDPConn`) — se eliminan round-trips redundantes en cada + percepción/espera; `cdp_wait_load` pasa de polling de `document.readyState` cada 200ms a esperar el + evento `Page.loadEventFired` (fast path si ya está `complete`); `sendCDP` adquiere timeout + (`cdpCmdTimeout` 30s) para no colgar el tool indefinidamente; nuevas `CdpInsertText` y + `CdpTypeRefFast` (camino rápido de escritura); el modo `auto` se añade al perfil de ratón + (`MouseProfileForMode`) como alias rápido de `fast`. Smoke contra Chrome 9333: percepción #2 con + enable cacheado 1.7ms (vs 3.7ms la #1), `wait_load` fast-path 245µs (vs ≥200ms del polling previo). - v0.7.0 (2026-06-10) — Ciclo de vida de Chromium por perfil (`tools_lifecycle.go`). Tres tools nuevas: `browser_list` (enumera los procesos master de Chromium leyendo `/proc/*/cmdline`, filtrando por `--user-data-dir` presente y `--type=` ausente), `browser_launch_profile` (lanza un