browser
Provides integration with a Vaultwarden password vault (via the bw CLI) to retrieve credentials for browser logins, second-factor authentication, and digital certificates (.p12) while keeping secrets out of logs and model context.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@browserWhat are my grades for Álgebra on the campus portal?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
lisa-browser-use
El navegador de Lisa. Un servicio que maneja un Chromium propio y hace en él lo que le pide el agente de Pablo, sea cual sea (se conecta como MCP, ver docs/MCP.md): abrir y leer páginas, dar pasos en ellas, iniciar sesión con el baúl de contraseñas, descargar y adjuntar archivos, y repetir gestiones que ya sabe hacer.
Trabajan dos modelos, y casi todo el coste está en el primero:
Quién | Qué decide | Coste |
El planificador (el agente que use Pablo, conectado por el MCP único; hasta el 17-10-2026, lisa-agent) | Qué página abrir y qué paso pedir | El del modelo grande, en cada llamada |
JEV, dentro de este servicio | Cada clic y cada tecla de un paso, sobre los elementos accesibles de la página, sin capturas | 0,042 $ por millón de tokens de entrada |
Por eso todo lo que este servicio hace por sí solo, sin devolver el control al planificador, abarata la tarea.
Y lo que no necesita ningún modelo, mejor todavía: seguir un enlace por su nombre (follow) lo resuelve el servicio mirando la página, sin JEV, y sin equivocarse de enlace.
El paquete de Python sigue llamándose lisa_browser: es el nombre que usa el servicio desplegado.
Documentos
Documento | Contenido |
El navegador como MCP: herramientas, formularios a Pablo y límites (desde el 17-10-2026) | |
Requisitos R1–R13 y decisiones | |
Arquitectura, contratos de la API, barrera de aprobaciones e inicio de sesión | |
Qué está hecho, con su evidencia, y qué falta |
Related MCP server: browser-bridge
Estructura
Archivo | Contenido |
| Transporte de arc-cua hacia JEV por la API de Command Code; cuenta llamadas, tokens y coste |
| Ejecuta una subtarea con límites de pasos y tiempo y devuelve un estado estable, sin secretos |
| Abrir una página, leer su texto y capturarla |
| Barrera de aprobaciones: clasifica cada acción (enviar, borrar, dinero) y pide permiso antes de ejecutarla |
| Baúl de contraseñas (Vaultwarden por |
| Inicio de sesión con el baúl, un solo intento, y segundo factor |
| Certificado digital del baúl ( |
| Pago con tarjeta que Pablo da en el momento (tasas de trámites), con aprobación de dinero |
| Adjuntar archivos, recoger descargas, listar y cerrar sesiones |
| Biblioteca: sitios habituales y rutinas guardadas |
| Registro de operaciones en SQLite, sin secretos |
| El MCP del navegador (destino |
| Sedes oficiales y búsqueda en el BOE |
| API HTTP: operaciones con eventos, respuestas, cancelación, subidas, descargas, registro y biblioteca |
| Arranque con un archivo de configuración; ver |
La biblioteca: sitios y rutinas
Sin memoria, cada gestión se redescubre: el planificador tantea direcciones y decide paso a paso. Medido el 12-10-2026, localizar una página en una web que no conocía le costó entre 13 y 19 llamadas al modelo grande.
Un sitio guarda la dirección de entrada y una nota de dónde está cada cosa.
Una rutina guarda los pasos que funcionaron para una gestión que se repite. El servicio los hace seguidos y el planificador recibe solo el final.
// PUT /v1/library/routines/Notas del campus
{
"description": "Dice las notas de una asignatura en el campus virtual.",
"steps": [
{ "op": "open", "url": "https://cv.usc.es/my/" },
{ "op": "login" },
{ "op": "task", "goal": "Abrir la asignatura {asignatura}", "verification": ["Se ve la página de {asignatura}"] },
{ "op": "task", "goal": "Abrir las calificaciones", "verification": ["Se ve la tabla de calificaciones"], "find": "nota, total" }
]
}
// POST /v1/operations { "op": "routine", "args": { "name": "notas del campus", "params": { "asignatura": "Álgebra" } } }Una rutina guarda el objetivo de cada paso, no los clics: JEV vuelve a decidir sobre la página de ese momento, así que aguanta cambios pequeños de la web. Si un paso no sale, se detiene y dice cuál. No guarda contraseñas (el paso login usa el baúl y se salta si la sesión sigue abierta) y no rodea la barrera: enviar, borrar o pagar siguen pidiendo permiso. Detalle en PLAN §12.
Trámites: certificado digital y tasas
Para hacer trámites en sedes electrónicas (propuesta en lisa-assistant/docs/tramites.md, LISA-70 a LISA-77).
Certificado. Chromium no puede elegir un certificado de cliente sin pantalla. Lo presenta un proxy en Go,
sidecar/, tomado de SpainAssist (MIT, versidecar/NOTICE):Chromium solo manda por él los dominios oficiales de la configuración, que decide su PAC.
Con
loginymethod: "certificate", el ejecutor saca del baúl el adjunto.p12/.pfxy su contraseña (un campo «Contraseña» de la entrada, o la contraseña de la entrada). Durante 30 minutos el proxy presenta el certificado a esas sedes; aguanta la renegociación TLS 1.2 que usan algunas.La clave solo vive en memoria del ejecutor y del proxy.
El proxy solo atiende al contenedor del navegador y nunca conecta con direcciones privadas, de loopback ni de Tailscale (
sidecar/lisa.go).
Tasas. La operación
cardpide la tarjeta a Pablo como dato secreto (eventosecretconkind: "card"), la rellena y pulsa pagar.JEV ve
[secret]en el número y el CVV, y el registro los oculta.La aprobación de dinero muestra solo las cuatro últimas cifras, y las capturas ocultan los campos de tarjeta.
tests/test_sede.py monta una sede HTTPS que pide el certificado de cliente y la alcanza con el binario real del proxy, configurado como el ejecutor. Prueba que sin certificado la sede rechaza (403), con él entra, y que un dominio fuera de la lista se rechaza. El proxy nunca conecta con direcciones internas; esa sede de prueba vive en loopback y se permite con allow_private/allowPrivateHosts, que solo usan las pruebas y queda vacío en producción.
Navegador en vivo
GET /v1/screencast, con el token, emite la pestaña en la que trabaja el ejecutor mientras alguien mira (lisa-assistant D86). Devuelve una línea JSON por evento: frame (JPEG en base64, con ancho y alto), idle (aún no hay navegador) y ping cada 15 s. Va por una conexión propia a Chrome (Page.startScreencast), así que no espera a que termine una tarea ni la retrasa. Hay una sola emisión para todos los que miran, a 5 fotogramas por segundo como mucho, y se para cuando se va el último. Los fotogramas no se guardan. Solo sirve para mirar.
Pruebas
nix-shell --run "python -m unittest discover -s tests -t . -v"shell.nix trae Python con arc-cua, Chromium y el proxy de certificados compilado (LISA_SIDECAR). Las pruebas del proxy en sí: cd sidecar && go test ./.... Las pruebas no usan JEV ni internet: sirven su propio sitio web, arrancan Chromium sin interfaz y sustituyen al modelo por una política fijada. Si el entorno no permite el aislamiento de procesos de Chromium, LISA_TEST_CHROME_ARGS="--no-sandbox".
Despliegue
Corre en el servidor de Lisa como el servicio lisa-browser, junto a un Chromium en un contenedor; lo define hosts/lisa/navegador.nix del repositorio lisa. Solo escucha en 127.0.0.1:8787 (la API) y 127.0.0.1:8789 (el MCP), y cada petición lleva un token.
Desde el 12-10-2026 el servicio ejecuta este repositorio, clonado en /srv/lisa/lisa-browser-use (desde el 17-10-2026, del repositorio público por HTTPS, sin clave). Actualizarlo:
git -C /srv/lisa/lisa-browser-use pull && sudo systemctl restart lisa-browserLa biblioteca está en /var/lib/lisa-browser/biblioteca.sqlite, junto al registro.
Medido con una gestión real
«Descarga del campus virtual el PDF del enunciado de la práctica 2 de Sistemas Operativos I», con Claude Sonnet 5.5 como planificador (12-10-2026):
Lo que hay guardado | Cómo se siguen los enlaces | Llamadas del planificador | Pasos de JEV | Tiempo | Tokens del planificador | Resultado |
Nada | JEV | 20 | 0 | 242 s | 341.000 | No llegó a encontrar el campus |
El sitio | JEV | 15 | 10 | 73 s | 260.000 | PDF entregado (y antes, uno equivocado) |
El sitio |
| 5 | 0 | 19 s | 74.000 | PDF entregado |
El sitio y la rutina | JEV | 1 | 5 | 14 s | 26.000 | PDF entregado |
El sitio y la rutina |
| 1 | 0 | 6–11 s | 27.000 | PDF entregado |
Son pocas pasadas (una o dos por fila; la última, tres). La fila de follow sin rutina es otro documento del mismo curso, pedido paso a paso. Lo que gasta JEV es aparte y casi no cuenta: 59.000 tokens suyos en la segunda fila son 0,0025 $.
Casi todos los tokens del planificador son relectura de lo ya enviado, que el proveedor cobra a una décima parte: ponderados por precio, la segunda fila son unos 50.000 y la última unos 4.300. El suelo actual son dos llamadas (decidir y contestar) con unos 13.500 tokens fijos cada una, entre instrucciones, índice de memoria y herramientas.
Lo que enseñó esta gestión:
La rutina que guardó el planificador usaba un paso de JEV para pulsar el enlace, y JEV pulsó a veces el de otra práctica. Con
followno hay nada que decidir: o existe un enlace con ese nombre o la rutina se detiene y lo dice (así terminó la petición de una práctica 3 que todavía no existe).En una pasada la rutina falló por un error del navegador justo después de reiniciar el servicio; el planificador terminó a mano desde donde quedó (3 llamadas, 19 s).
Origen
El código viene de packages/lisa-browser de lisa-project (rama browser-use), con su historial. Los documentos de docs/ estaban allí en specs/browser-use/.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
- PomeradoOAuthai.pomerado
MCPs that do tasks on any website. Search flights, book, shop, check accounts and fill in forms.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceDrive your real, signed-in Chrome browser from any MCP client, enabling browser automation such as navigation, clicking, typing, and screenshots through standard MCP tools.1-
- AlicenseNot gradedqualityAmaintenanceEnables remote agents to control a local Chrome/Edge browser via MCP, supporting navigation, snapshots, clicks, typing, screenshots, and script execution.147 npmISC
- AlicenseNot gradedqualityCmaintenanceEnables agents to drive many parallel stealth headless Chrome sessions — navigating, clicking, typing, extracting, and screenshotting pages — through MCP tools. Also provides an encrypted credential vault with RFC 6238 TOTP codes, so logins persist and agents can operate unattended without a human at the keyboard.Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables MCP agents to drive the user's already-open Chrome profile through a Manifest V3 extension and loopback bridge, listing and controlling existing tabs, capturing screenshots, and sending clicks, typing, drags and key holds via an independent on-page cursor without moving the system mouse. It also supports form filling, console and network inspection, read-only or confirmed JavaScript execution, file and PDF downloads, and game-style screenshot/action loops with snapshot recovery and an emergency stop.MIT