chatgpt-web-agent
chatgpt-web-agent
Прокси-слой MCP для использования локальных инструментов через OpenAI Secure MCP Tunnel в веб-версии ChatGPT.
Это рабочая эталонная реализация, а не готовый продукт для установки в один клик; она в первую очередь предназначена для демонстрации проверенного подхода к интеграции, который пользователи могут быстро адаптировать под свою локальную среду с помощью агента.
Собственный интерфейс MCP проекта стабилен, реальные инструменты предоставляются заменяемым LocalToolBackend. Первый бэкенд напрямую использует OpenClaw Plugin SDK, не изменяя исходный код OpenClaw и не переопределяя инструменты для работы с файлами, оболочкой, патчами и фоновыми процессами.
Текущее состояние
P0 предоставляет четыре инструмента OpenClaw:
readexecprocessapply_patch
Опционально включаются инструменты для обмена файлами Google Drive:
drive_listdrive_searchdrive_statdrive_uploaddrive_downloaddrive_exportdrive_mkdir
По умолчанию включены два инструмента OpenClaw Skills только для чтения:
skills_list(query?, limit?)skill_read(name)
skills_list() возвращает компактный каталог имен доступных и видимых моделью навыков; с запросом на естественном языке query может вернуть небольшое количество имен и описаний через отдельную коллекцию QMD. skill_read принимает только имя/ключ навыка, канонический путь SKILL.md всегда разрешается через реальный skills.status OpenClaw, клиент не может предоставить путь к файлу. Инструкции MCP initialize также подсказывают клиенту: активно обнаруживать навык только в том случае, если задача явно может зависеть от локальных инструментов, сервисов, рабочих процессов или операционных норм, а текущего контекста недостаточно; обычные самодостаточные задачи не запрашивают навыки.
По умолчанию инструменты для работы с файлами и патчами могут обращаться только к настроенной рабочей области; exec.workdir также должен находиться внутри рабочей области. Параметры host/security/ask/node/elevated внутри OpenClaw не раскрываются клиенту MCP.
Для отдельного коннектора, авторизованного только для доверенной рабочей области ChatGPT, можно установить CHATGPT_WEB_AGENT_WORKSPACE_ONLY=false; в этом случае рабочая область является лишь точкой привязки для относительных путей и текущей рабочей директории по умолчанию, а read/apply_patch/exec.workdir могут обращаться к внешним абсолютным путям. Этот режим не является песочницей безопасности.
Граница
exec.workdirне является командной песочницей. Клиент, получивший разрешение наexec, всё равно может обращаться к другим частям системы в тексте команды; следует доверять туннель только доверенной рабочей области ChatGPT и по мере необходимости использовать политики allowlist/approval OpenClaw.
Разработка
Требуется Node.js 22.22.3 или совместимая версия Node от OpenClaw, а также pnpm.
pnpm install
pnpm check
pnpm smokeЗапуск
export CHATGPT_WEB_AGENT_WORKSPACE=/path/to/workspace
# 可信独立 Connector 如需把 workspace 仅作为默认工作目录:
# export CHATGPT_WEB_AGENT_WORKSPACE_ONLY=false
pnpm build
node dist/cli.jsСервис использует MCP stdio, стандартный вывод используется только для протокола MCP.
Конфигурация
Скопируйте .env.example, чтобы увидеть доступные переменные окружения. Белый список инструментов по умолчанию:
read,exec,process,apply_patchexec по умолчанию использует allowlist + on-miss. Можно явно переопределить:
export CHATGPT_WEB_AGENT_EXEC_SECURITY=allowlist
export CHATGPT_WEB_AGENT_EXEC_ASK=on-missДля первоначального доверенного локального smoke-теста можно временно использовать:
export CHATGPT_WEB_AGENT_EXEC_SECURITY=full
export CHATGPT_WEB_AGENT_EXEC_ASK=offАрхитектура
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(后续按需)Бэкенд Skills выполняет только обнаружение/чтение возможностей; QMD является лишь ускорителем поиска кандидатов, реальный инвентарь OpenClaw всегда является источником истины для eligibility, model visibility и канонического пути навыка.
Семантическое обнаружение навыков
Рекомендуется размещать семантический каталог в отдельном именованном индексе QMD, а не в общем индексе памяти. Векторный ANN QMD 2.5.3 сначала выбирает кандидатов по всему индексу, а затем применяет фильтр коллекции; смешивание нескольких десятков навыков с десятками тысяч документов памяти приведет к тому, что маленькая коллекция будет淹没 кандидатами из всей базы.
Текущее развертывание использует:
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/mcpПоиск использует Qwen3-Embedding-0.6B, только векторный, rerank=false, без query expansion / HyDE. Попадание в QMD является лишь кандидатом; перед возвратом результат пересекается с live skills.status. Схема/инвентарь каталога инвалидируется по поколению через catalogHash; при недоступности QMD или устаревании каталога автоматически происходит откат к каталогу только с именами из live-данных.
Google Drive
Drive — это опциональный канал данных, не предназначенный для фоновой синхронизации, монтирования дисков или полного зеркалирования. Реализация напрямую использует Google Drive API v3, MCP предоставляет только небольшие стабильные примитивы для работы с файлами.
По умолчанию локальные пути для загрузки/выгрузки/экспорта Drive могут находиться только в:
<CHATGPT_WEB_AGENT_WORKSPACE>/exchangeЭто ограничение не зависит от CHATGPT_WEB_AGENT_WORKSPACE_ONLY и предназначено для снижения риска непреднамеренного использования инструментов Drive как канала для передачи произвольных локальных данных. При необходимости развертывающий может настроить его через CHATGPT_WEB_AGENT_DRIVE_LOCAL_ROOT и CHATGPT_WEB_AGENT_DRIVE_LOCAL_ROOT_ONLY.
Одноразовая настройка OAuth
В Google Cloud включите Drive API и создайте Desktop OAuth client.
Сохраните загруженный JSON OAuth как:
<workspace>/.credentials/google-drive/credentials.jsonили установите
CHATGPT_WEB_AGENT_DRIVE_CREDENTIALS, указав другой локальный приватный путь.Запустите:
CHATGPT_WEB_AGENT_WORKSPACE=/path/to/workspace pnpm drive:authПосле завершения авторизации в браузере будет создан токен авторизованного пользователя с правами
0600. Секрет OAuth-клиента и refresh token не должны попадать в Git и не возвращаются через MCP.При запуске сервиса установите:
export CHATGPT_WEB_AGENT_DRIVE_ENABLED=true
В инструментах Drive folderId / fileId напрямую используют идентификаторы Drive API. Обычные бинарные файлы загружаются через drive_download; Google Docs/Sheets/Slides экспортируются через drive_export в указанный MIME-тип.
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