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.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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 (open con link; en las rutinas, el paso 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, barrera de aprobaciones e inicio de sesión (histórico: describe también la API HTTP, ya quitada) | |
Qué está hecho, con su evidencia, y qué falta |
Related MCP server: vibatchium-mcp
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 |
| 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 |
| El ejecutor: una operación a la vez, con sus eventos y las respuestas de Pablo |
| 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.
// library, action save_routine, name «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" }
]
}
// library { "action": "run", "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.
Lo que se quitó (18-10-2026)
Para dejar el servicio más pequeño, Pablo quitó lo que ya no se usaba o no se había probado de verdad:
La API HTTP (
127.0.0.1:8787: operaciones, subidas, descargas, registro y biblioteca). La usaba lisa-agent, retirado el 17-10-2026; el MCP llama directamente al ejecutor.El navegador en vivo (
/v1/screencast). Pablo lo había descartado.El BOE y las sedes oficiales (
tramites.py, herramientasboe_searchyofficial_site), quitados el mismo día después.El certificado digital (
certificate.pyy el proxy en Gosidecar/) y el pago con tarjeta (card.py, herramientacard). Nunca se probaron con una sede o una pasarela reales. Siguen en el historial de git (hasta el commit 132f524) por si hacen falta.
La barrera sigue clasificando como «dinero» cualquier botón de pago y las capturas siguen ocultando los campos de tarjeta.
Pruebas
nix-shell --run "python -m unittest discover -s tests -t . -v"shell.nix trae Python con arc-cua y Chromium. 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:8789 (el MCP), y cada petición lleva su clave.
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
Whole browser tasks done in pilotfish's cloud for any MCP agent, signed in with your saved logins.
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.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables remote agents to control a local Chrome/Edge browser via MCP, supporting navigation, snapshots, clicks, typing, screenshots, and script execution.18 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
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to drive a self-hosted Chromium through MCP tools for opening pages, reading content, taking screenshots, clicking, filling forms, and triggering final submissions, while a human watches the same browser live and can take over for logins or captchas. Server-side guardrails enforce per-session domain allowlists and denylists, refuse password, payment card, IBAN and one-time-code fields, isolate each token in its own browser context, and route submits, payments and orders through a separate final-action tool that can require human approval.MIT