Skip to main content
Glama
AxelHu
by AxelHu

chatgpt-web-agent

Прокси-слой MCP для использования локальных инструментов через OpenAI Secure MCP Tunnel в веб-версии ChatGPT.

Это рабочая эталонная реализация, а не готовый продукт для установки в один клик; она в первую очередь предназначена для демонстрации проверенного подхода к интеграции, который пользователи могут быстро адаптировать под свою локальную среду с помощью агента.

Собственный интерфейс MCP проекта стабилен, реальные инструменты предоставляются заменяемым LocalToolBackend. Первый бэкенд напрямую использует OpenClaw Plugin SDK, не изменяя исходный код OpenClaw и не переопределяя инструменты для работы с файлами, оболочкой, патчами и фоновыми процессами.

Текущее состояние

P0 предоставляет четыре инструмента OpenClaw:

  • read

  • exec

  • process

  • apply_patch

Опционально включаются инструменты для обмена файлами Google Drive:

  • drive_list

  • drive_search

  • drive_stat

  • drive_upload

  • drive_download

  • drive_export

  • drive_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_patch

exec по умолчанию использует 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

  1. В Google Cloud включите Drive API и создайте Desktop OAuth client.

  2. Сохраните загруженный JSON OAuth как:

    <workspace>/.credentials/google-drive/credentials.json

    или установите CHATGPT_WEB_AGENT_DRIVE_CREDENTIALS, указав другой локальный приватный путь.

  3. Запустите:

    CHATGPT_WEB_AGENT_WORKSPACE=/path/to/workspace pnpm drive:auth

    После завершения авторизации в браузере будет создан токен авторизованного пользователя с правами 0600. Секрет OAuth-клиента и refresh token не должны попадать в Git и не возвращаются через MCP.

  4. При запуске сервиса установите:

    export CHATGPT_WEB_AGENT_DRIVE_ENABLED=true

В инструментах Drive folderId / fileId напрямую используют идентификаторы Drive API. Обычные бинарные файлы загружаются через drive_download; Google Docs/Sheets/Slides экспортируются через drive_export в указанный MIME-тип.

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

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/AxelHu/chatgpt-web-agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server