chatgpt-web-agent
chatgpt-web-agent
Capa de pegamento MCP local que permite que la interfaz web de ChatGPT utilice herramientas locales a través del Túnel MCP Seguro de OpenAI.
Esta es una implementación de referencia ejecutable, no un producto listo para instalar con un solo clic; su propósito principal es compartir una vía de integración validada en la práctica, que los usuarios puedan adaptar rápidamente a su propio entorno local con la ayuda de un agente.
La interfaz MCP del proyecto se mantiene estable, y las herramientas reales son proporcionadas por un LocalToolBackend reemplazable. El primer backend reutiliza directamente el SDK del Plugin OpenClaw, sin modificar el código fuente de OpenClaw ni reimplementar las herramientas de archivos, shell, parches y procesos en segundo plano.
Estado actual
P0 proporciona cuatro herramientas de OpenClaw:
readexecprocessapply_patch
Opcionalmente, se pueden habilitar herramientas de intercambio de archivos de Google Drive:
drive_listdrive_searchdrive_statdrive_uploaddrive_downloaddrive_exportdrive_mkdir
Por defecto, están habilitadas dos herramientas de solo lectura de OpenClaw Skills:
skills_list(query?, limit?)skill_read(name)
skills_list() devuelve un directorio compacto de nombres de Skills elegibles y visibles para el modelo; con una query en lenguaje natural, puede devolver un pequeño conjunto de nombres y descripciones candidatos a través de una colección QMD independiente. skill_read solo acepta el nombre/clave de la Skill; la ruta canónica SKILL.md siempre se resuelve mediante skills.status de OpenClaw en tiempo real, sin aceptar rutas de archivo proporcionadas por el cliente. Las instrucciones de inicialización de MCP también indicarán al cliente: solo descubrir Skills activamente cuando la tarea claramente pueda depender de herramientas, servicios, flujos de trabajo o normas operativas locales y el contexto actual sea insuficiente; las tareas autónomas comunes no consultan Skills.
Por defecto, solo se permite que las herramientas de archivos y parches accedan al workspace configurado; exec.workdir también debe estar dentro del workspace. Los parámetros internos de host/security/ask/node/elevated de OpenClaw no se exponen al cliente MCP.
Para conectores independientes autorizados solo para un workspace de ChatGPT de confianza, se puede establecer CHATGPT_WEB_AGENT_WORKSPACE_ONLY=false; en este modo, el workspace es solo el punto de referencia para rutas relativas y el cwd predeterminado, y read/apply_patch/exec.workdir puede acceder a rutas absolutas externas. Este modo no es un sandbox de seguridad.
El límite de
exec.workdirno es un sandbox de comandos. Un cliente con permisoexecaún puede acceder a otras partes del sistema en el texto del comando; solo se debe autorizar el Túnel a un workspace de ChatGPT de confianza y utilizar las políticas de allowlist/approval de OpenClaw según sea necesario.
Desarrollo
Requiere Node.js 22.22.3 o una versión compatible de OpenClaw Node, y pnpm.
pnpm install
pnpm check
pnpm smokeEjecución
export CHATGPT_WEB_AGENT_WORKSPACE=/path/to/workspace
# 可信独立 Connector 如需把 workspace 仅作为默认工作目录:
# export CHATGPT_WEB_AGENT_WORKSPACE_ONLY=false
pnpm build
node dist/cli.jsEl servicio utiliza MCP stdio; la salida estándar solo transporta el protocolo MCP.
Configuración
Copia .env.example para ver las variables de entorno disponibles. La lista blanca de herramientas predeterminada es:
read,exec,process,apply_patchexec usa por defecto allowlist + on-miss. Se puede sobrescribir explícitamente:
export CHATGPT_WEB_AGENT_EXEC_SECURITY=allowlist
export CHATGPT_WEB_AGENT_EXEC_ASK=on-missPara una primera prueba de humo local de confianza, se puede usar temporalmente:
export CHATGPT_WEB_AGENT_EXEC_SECURITY=full
export CHATGPT_WEB_AGENT_EXEC_ASK=offArquitectura
ChatGPT Web
→ OpenAI Secure MCP Tunnel
→ chatgpt-web-agent MCP Server
→ LocalToolBackend
→ OpenClawBackend
→ SkillsBackend → OpenClaw Gateway (live status)
→ QMD MCP (optional semantic discovery)
→ NativeBackend / other backend(后续按需)El backend de Skills solo realiza descubrimiento/lectura de capacidades; QMD es solo un acelerador de búsqueda de candidatos; el inventario en tiempo real de OpenClaw es siempre la fuente de verdad para elegibilidad, visibilidad del modelo y rutas canónicas de Skills.
Descubrimiento semántico de Skills
Se recomienda colocar el catálogo semántico en un índice QMD nombrado independiente, en lugar de compartir el índice de memoria. El ANN vectorial de QMD 2.5.3 primero toma candidatos de todo el índice y luego aplica el filtro de colección; mezclar unas decenas de Skills entre decenas de miles de documentos de memoria haría que la colección pequeña se viera inundada por candidatos de toda la base.
El despliegue actual utiliza:
local catalog: <workspace>/skills-catalog/
M4 mirror: ~/qmd-data/skills-chatgpt-web-agent/
QMD index: skills-chatgpt-web-agent
collection: skills-chatgpt-web-agent
MCP endpoint: http://192.168.0.96:8182/mcpLa recuperación usa Qwen3-Embedding-0.6B, solo vectorial, rerank=false, sin query expansion / HyDE. Los aciertos de QMD son solo candidatos; antes de devolverlos, se cruzan con skills.status en vivo. El esquema/inventario del catálogo se invalida por generación mediante catalogHash; cuando QMD no está disponible o el catálogo está obsoleto, se retrocede automáticamente al catálogo de solo nombres en vivo.
Google Drive
Drive es un canal de datos opcional; no realiza sincronización en segundo plano, montaje de disco ni duplicación completa del disco. La implementación utiliza directamente la API v3 de Google Drive; MCP solo expone primitivas pequeñas y estables para operaciones con archivos.
De forma predeterminada, las rutas locales de carga/descarga/exportación de Drive solo pueden estar en:
<CHATGPT_WEB_AGENT_WORKSPACE>/exchangeEsta restricción es independiente de CHATGPT_WEB_AGENT_WORKSPACE_ONLY y sirve para reducir el riesgo de que las herramientas de Drive se utilicen indebidamente como canal de transferencia arbitraria de datos locales. Si es necesario, el implementador puede ajustarlo mediante CHATGPT_WEB_AGENT_DRIVE_LOCAL_ROOT y CHATGPT_WEB_AGENT_DRIVE_LOCAL_ROOT_ONLY.
Configuración OAuth única
Habilita la API de Drive en Google Cloud y crea un cliente OAuth de escritorio.
Guarda el JSON de OAuth descargado como:
<workspace>/.credentials/google-drive/credentials.jsono establece
CHATGPT_WEB_AGENT_DRIVE_CREDENTIALSpara que apunte a otra ruta local privada.Ejecuta:
CHATGPT_WEB_AGENT_WORKSPACE=/path/to/workspace pnpm drive:authDespués de la autorización en el navegador, se generará un token de usuario autorizado con permisos
0600. El secreto del cliente OAuth y el token de actualización no deben enviarse a Git ni devolverse a través de MCP.Al iniciar el servicio, establece:
export CHATGPT_WEB_AGENT_DRIVE_ENABLED=true
En las herramientas de Drive, folderId / fileId utilizan directamente los IDs de la API de Drive. Los archivos binarios comunes usan drive_download; los documentos de Google Docs/Sheets/Slides usan drive_export para exportar al tipo MIME especificado.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/AxelHu/chatgpt-web-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server