mcp-browser
MCP Browser
Un navegador web nativo para macOS que se expone a sí mismo como un servidor del Protocolo de Contexto de Modelo (MCP), para que los agentes de IA puedan controlar un WKWebView real de la misma manera que lo haría una persona: navegar, hacer clic, rellenar formularios, leer el DOM, tomar capturas de pantalla, ejecutar JavaScript y capturar la actividad de la red y la consola.
Construido con SwiftUI + WKWebView. El servidor MCP se ejecuta en el proceso a través de HTTP local con autenticación de token de portador y defensa contra el rebinding de DNS.
Descarga
⬇ Descarga la última versión para macOS: .dmg firmado y notariado para Apple Silicon.
Después de descargar, abre el DMG y arrastra MCP Browser a tu carpeta de Aplicaciones.
Capturas de pantalla


Por qué
La mayoría de las historias de "navegador como herramienta" para agentes se dividen en dos campos:
Automatización sin interfaz (headless) (Playwright, Puppeteer): rápido y programable, pero el agente nunca ve lo que tú ves, no puede compartir tus sesiones iniciadas y se ejecuta en un motor de navegador diferente al que tú confías.
Navegadores en la nube controlados remotamente: tus datos salen de tu máquina y pagas por sesión.
MCP Browser es la tercera opción: una ventana de navegador real en tu Mac en la que inicias sesión, navegas y usas tú mismo, y que un LLM puede controlar a través de MCP cuando se lo pides. Las cookies, el historial, los marcadores y las descargas permanecen locales. El agente ve la misma página que tú.
Características
Navegador
Pestañas respaldadas por WKWebView con una barra de pestañas al estilo Safari (favicons, cierre al pasar el ratón, píldoras de igual ancho)
Barra de URL con autocompletado de historial y marcadores
Barra de marcadores, gestor completo de marcadores, vista de historial, ventana emergente de descargas
Buscar en página, persistencia de zoom por host, controlador de imagen en imagen
Importador de marcadores (formatos HTML / Safari / Chrome)
Captura de cookies y red por pestaña
Servidor MCP
Transporte HTTP local en el puerto
8833(configurable):POST /mcppara JSON-RPC,GET /mcppara estado estilo SSEAutenticación de token de portador con un token por lanzamiento, regenerable desde Configuración
Defensa contra rebinding de DNS: encabezado
Hostvalidado contra127.0.0.1/localhostAutorregistro con clientes MCP comunes (Claude Desktop, Codex, etc.) a través de
MCPRegistrarRegistro de acciones de herramientas: cada llamada a una herramienta se registra con argumentos, resumen de resultados y tiempo
Herramientas (catálogo actual)
Navegación:
navigate,back,forward,reload,current_url,current_titlePestañas:
list_tabs,new_tab,switch_tab,close_tabDOM:
click,fill,submit,hover,press_key,type_text,scroll,find_in_page,get_element,accessibility_treeContenido de página:
read_text,read_page,page_metadata,screenshot,pdf_export,render_html,eval_js,find,list_links,list_formsCookies / almacenamiento:
get_cookies,set_cookie,storage,clear_sessionMarcadores:
list_bookmarks,open_bookmark_folderInspección:
console_logs,network_log,dialogArchivos:
download,upload_file(restringido por permiso del usuario)Varios:
wait_for,emulate,resize
Consulta MCP Browser/MCP/MCPToolCatalog.swift para ver la lista oficial.
Privacidad y seguridad
Token de portador por lanzamiento: los clientes sin él reciben
401 UnauthorizedValidación de origen / host: bloquea ataques de rebinding de DNS desde una página web local maliciosa
Confirmación del usuario para descargas, subidas y cualquier interacción de
dialogSolo local por defecto: el servidor se vincula a
127.0.0.1, nunca a la red públicaRegistro de acciones en Configuración: puedes ver exactamente lo que un agente ha hecho en tu navegador
Requisitos
macOS 14+ (Sonoma o posterior)
Xcode 16+ para compilar desde el código fuente
Primeros pasos (usuarios)
Descarga el último DMG desde la página de Releases.
Arrastra MCP Browser a
/Applicationsy ábrelo.Abre Configuración → Conexión para copiar el token de portador y la URL del endpoint MCP.
En tu cliente MCP (Claude Desktop, Codex, etc.) añade el servidor. La pestaña Configuración → Clientes MCP de la aplicación puede parchear la configuración para los clientes más comunes automáticamente.
Navega normalmente. Cuando el LLM necesite hacer algo en la web, llamará a las herramientas a través de MCP y verás la acción en el registro.
Primeros pasos (desarrolladores)
Clona este repositorio.
Abre
MCP Browser.xcodeprojen Xcode.Selecciona el esquema
MCP Browser.Compila y ejecuta en My Mac.
Compilación CLI:
xcodebuild -project "MCP Browser.xcodeproj" -scheme "MCP Browser" -configuration Debug buildCompilando tu propia bifurcación
El proyecto se envía con la configuración de firma del autor original. Si estás bifurcando para compilar y distribuir tu propia copia:
Equipo de desarrollo: abre el objetivo
MCP Browseren Xcode → Signing & Capabilities → elige tu propio equipo. Esto reescribeDEVELOPMENT_TEAMenMCP Browser.xcodeproj/project.pbxproj.Identificador de paquete: cambia
PRODUCT_BUNDLE_IDENTIFIERdecom.moosia.mcp-browsera uno que poseas.No se incluyen claves API. MCP Browser no llama a ningún proveedor de LLM por sí mismo; solo sirve herramientas a cualquier cliente que se conecte.
Configuración de un cliente MCP
La mayoría de los clientes MCP aceptan un bloque de transporte HTTP. Ejemplo para claude_desktop_config.json:
{
"mcpServers": {
"mcp-browser": {
"transport": "http",
"url": "http://127.0.0.1:8833/mcp",
"headers": {
"Authorization": "Bearer <token-from-settings>"
}
}
}
}La pestaña de configuración de Clientes MCP incluida puede escribir esto por ti para los clientes que conoce (Claude Desktop, Codex, etc.): elige el cliente, pulsa Añadir MCP Browser y parcheará el archivo en su lugar.
El token rota cada vez que haces clic en Regenerar token en Configuración → Conexión. Vuelve a parchear tus clientes después de rotar.
Almacenamiento de datos
Los marcadores, el historial, el zoom por host, las descargas y el registro de acciones se almacenan localmente con
PersistentStore(respaldado por archivos) y SwiftData cuando corresponde.El token de portador se almacena en
UserDefaults. Se regenera desde Configuración → Conexión siempre que desees revocar clientes existentes.Los favicons se almacenan en caché en el disco bajo Application Support.
Sin telemetría. Sin sincronización en la nube. Nada sale de la máquina a menos que una herramienta MCP que invoques lo provoque.
Estructura del proyecto
MCP Browser/
├── Browser/ WKWebView wrapper, tab model, presenter, scripts, PiP
├── MCP/ MCP server, JSON-RPC, host protocol, tool catalog
│ ├── Registrar/ Auto-config patcher for Claude Desktop / Codex / etc.
│ └── Tools/ Tool implementations (navigation, DOM, content, etc.)
├── Settings/ Settings tabs (general, privacy, connection, recorder, etc.)
├── Storage/ Bookmarks, history, downloads, favicons, action log
├── Views/ Bookmarks bar, bookmarks manager, history, downloads popover
├── ContentView.swift Top-level window layout, tab strip, URL bar
├── AppCommands.swift Menu bar commands and keyboard shortcuts
└── MCP_BrowserApp.swift App entry point and environment wiringArchivos clave
MCP/MCPServer.swift: servidor HTTP/JSON-RPC basado enNWListener, autenticación, defensa contra rebindingMCP/MCPCoordinator.swift: enruta las llamadas de herramientas a la pestaña activa de la ventana enfocadaMCP/MCPToolCatalog.swift: registro de cada herramienta expuestaMCP/MCPSecret.swift: token de portador respaldado por KeychainBrowser/BrowserTab.swift: modelo@Observablepor pestaña que envuelveWKWebViewBrowser/WebViewHost.swift: puenteNSViewRepresentable
Modelo de seguridad
MCP Browser se ejecuta deliberadamente sin sandbox para que pueda:
Parchear archivos de configuración de clientes MCP en
~/Library/Application Support/~/.configControlar otras aplicaciones (p. ej., abrir esquemas externos) cuando se le solicite explícitamente
No:
Vincula ninguna interfaz de red que no sea loopback (
127.0.0.1)Acepta conexiones sin el token de portador por lanzamiento
Atiende solicitudes cuyo encabezado
Hostno coincida con127.0.0.1olocalhost(defensa contra rebinding de DNS)Envía nada fuera de la máquina por sí mismo
Si te preocupa la auditoría, toda la superficie HTTP está en MCP Browser/MCP/MCPServer.swift y tiene aproximadamente 400 líneas.
Limitaciones conocidas
El registro de acciones aún no se puede buscar retroactivamente desde la interfaz de usuario.
Existe soporte para múltiples ventanas, pero el coordinador MCP solo enruta a la ventana enfocada más recientemente.
Los flujos de OAuth y autenticación básica para sitios son manejados por WebKit; MCP Browser en sí no almacena contraseñas. Usa el llavero del sistema a través de la importación de Safari/Chrome por ahora.
No hay compilación para móvil/iOS: esta es una herramienta solo para Mac.
Contribución
Consulta CONTRIBUTING.md para saber cómo informar errores, solicitar funciones y enviar solicitudes de extracción.
Licencia
This server cannot be installed
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/brainfuel/mcp-browser'
If you have feedback or need assistance with the MCP directory API, please join our Discord server