Sobre el proyecto
Mac Developer Bridge es un servidor MCP (Protocolo de Contexto de Modelo) de código abierto que conecta ChatGPT a un entorno de ejecución real de Mac. Expone herramientas locales deterministas—comandos de shell, operaciones del sistema de archivos, sesiones PTY interactivas, gestión de trabajos en segundo plano, lectura de hilos de Codex almacenados y automatización opcional de Chrome en segundo plano—sin añadir un segundo bucle de razonamiento. ChatGPT sigue siendo el agente; el Mac es el entorno de ejecución.
Las capacidades clave incluyen:
- Ejecución arbitraria de comandos de shell mediante /bin/zsh -lc bajo el usuario de macOS con sesión iniciada
- Trabajos en segundo plano desacoplados con registros persistentes de stdout/stderr, inspección de estado y terminación de grupos de procesos
- Lectura, escritura, anexado, listado, stat, copia, movimiento, chmod, symlink, mkdir y borrado recursivo sin restricciones de archivos
- Aplicación de diffs unificados mediante git apply
- Descubrimiento y lectura de hilos de Codex almacenados sin reanudar un hilo ni iniciar un turno de modelo de Codex
- Recuperación paginada de turnos de Codex para historiales demasiado grandes para una sola respuesta
- Auditoría local en JSONL
- Conectividad privada solo de salida a través del Túnel MCP Seguro de OpenAI, o un front-end de bucle local HTTP plano publicado sobre HTTPS mediante Túnel de Cloudflare
- Persistencia por usuario mediante un LaunchAgent de macOS
- Pestillo de desbloqueo con cierre por fallo: bridge.mjs relee el archivo de desbloqueo antes de cada llamada de herramienta, por lo que eliminarlo rechaza la siguiente llamada y sale
- Interruptor de apagado local (scripts/disable.sh) que detiene el front-end, el bridge, el host nativo opcional de Chrome en segundo plano, los grupos de trabajos desacoplados de shell_start, las sesiones PTY interactivas y los servidores MCP hijos federados
La integración opcional de Chrome en segundo plano opera el mismo perfil de Chrome con sesión iniciada mediante una pequeña extensión local, manteniendo la automatización en segundo plano sin robar el foco. Gestiona un grupo de pestañas persistente (8 por defecto, máximo 32) con acceso basado en concesión, reclamación de inactividad tras 10 minutos y capacidad de autocuración. El control directo de Chrome mediante shell_exec siempre se rechaza con CHROME_BACKGROUND_REQUIRED para imponer estructuralmente el límite de no robar el foco. El acceso relajado es el predeterminado para trabajo HTTP/HTTPS normal; el modo de aprobaciones estrictas añade concesiones de URL por sitio con TTL de 15 minutos.
Las sesiones de terminal interactivas usan un PTY real asignado por un helper central en Perl (lib/ptyhelper.pl), con herramientas para iniciar, leer, escribir, redimensionar, señalar y cerrar sesiones. Se aplica un límite de línea de 1024 bytes en modo canónico, y un búfer circular fijo retiene la salida reciente.
El proyecto también incluye características experimentales: una herramienta de inicio de conversación de ChatGPT (chatgpt_conversation_start) que inicia o continúa una conversación de ChatGPT de consumidor a través de la acción de runtime de primera parte de la página con sesión iniciada, sin escritura en la interfaz ni exportación de credenciales, y un adaptador separado /v1/responses para modelos OpenCodex explícitos (chatgpt-browser y chatgpt-sol) que reconstruye turnos sin estado a partir de instrucciones/entrada de Responses y presenta herramientas mediante un protocolo fijo de decisión JSON.
Consideraciones de seguridad: el bridge otorga deliberadamente a un cliente MCP los permisos efectivos del usuario de macOS. No está en un sandbox y no tiene lista blanca de comandos ni rutas. Se indica a los usuarios que lean SECURITY.md antes de habilitarlo. El modo de aprobaciones estrictas está disponible para un control más estricto del flujo de trabajo del navegador/aplicación, y la app de la barra de menús proporciona un interruptor en vivo.
El proyecto se publica bajo la Licencia MIT y es un proyecto independiente de código abierto, no un producto oficial de OpenAI o Cloudflare.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.