Skip to main content
Glama

BoundedRelay

BoundedRelay позволяет Claude Code передавать чётко ограниченную задачу локально установленному Codex CLI через MCP. Вызов немедленно возвращает дескриптор задания. Затем Claude может показывать, что делает воркер, эффективно ожидать следующего реального обновления, получать резульат или отменять задание.

Claude Code  ── local MCP/stdio ──>  BoundedRelay  ── codex exec --json ──>  Codex
                                             │
                                             ├─ policy and resource limits
                                             ├─ sanitized live activity
                                             └─ isolated proposal clone

Поддерживаемая топология v0.1 намеренно однонаправленная: Claude Code → BoundedRelay → Codex. BoundedRelay не предоставляет обратного маршрута от Codex к Claude, и воркер никогда не применяет сгенерированные изменения к исходному репозиторию.

[!IMPORTANT] BoundedRelay — независимый проект сообщества. Он не связан с Anthropic или OpenAI, не одобрен ими и не поддерживается этими компаниями. Claude, Claude Code, Codex и OpenAI — товарные знаки соответствующих владельцев.

Версия 0.1.0 — локальный выпуск для разработки. npm-пакет ещё не опубликован, а в v0.1 нет удалённого сервиса, демона, базы данных, постоянного хранилища заданий или журнала аудита.

Зачем нужен BoundedRelay

  • Видимый вместо замороженного: безопасные метки активности, счётчики событий, прошедшее время, время с последнего обновления, позиция в очереди и опрос с учётом ревизий.

  • Только чтение по умолчанию: анализ всегда запрашивает песочницу Codex read-only.

  • Ограниченные полномочия: сервер владеет корнями рабочей области, переопределениями модели, пробросом окружения, тайм-аутами, конкурентностью, выходными данными и лимитами патчей.

  • Проверка перед изменением: режим предложений работает в одноразовом клоне, проверяет результирующий паτч и никогда не применяет его.

  • Никакого фальшивого прогресса: BoundedRelay сообщает о наблюдаемой активности жизненного цикла. Он не выдумывает процент выполнения или ETA.

  • Небольшая публичная поверхность: сфокусированные MCP-инструменты для обнарежения возможностей, проверки рабочей области, отправки, статуса, резульата, отмены и истории.

Что Claude может показывать, пока Codex работает

codex_worker_status возвращает очищенный снимок состояния, например:

{
  "status": "running",
  "revision": 14,
  "progress": {
    "phase": "working",
    "activity": "running_command",
    "activityLabel": "Codex is running a sandboxed command",
    "eventCount": 8,
    "commandCount": 2,
    "messageCount": 0,
    "lastEventType": "item.started",
    "updatedAt": "2026-08-27T18:30:00.000Z",
    "elapsedMs": 12420,
    "sinceLastUpdateMs": 180
  }
}

Поверхность статуса раскрывает фиксированный словарь активности, принадлежащий серверу. Она не раскрывает цепочки расуждений (chain-of-thought), текст команд, аргументы инструментов, пути файлов репозитория из событий или произвольные полезные нагрузки событий Codex.

Related MCP server: cc-in-codex

Где это применимо

Для общей делегации от Claude Code к Codex сначала оцените официальный openai/codex-plugin-cc. Используйте BoundedRelay, если вам нужна именно локальная граница MCP-политики вокруг подпроцесса Codex.

Потребность

С чего начать

Поддерживаемый вендором UX плагина Claude Code и встроенные процессы проверки

openai/codex-plugin-cc

Локальные stdio-инструменты с рабочей областью, окружением, моделью и политикой ресурсов, принадлежащими серверу

BoundedRelay

Очищенное живое состояние задания с длинным опросом с учётом ревизий

BoundedRelay

Патч, привязанный к ревизии, из одноразового клона; никогда не применяемый автоматически

BoundedRelay

Постоянные задания, демон, удалённый многопользовательский сервис или журнал аудита

Не предусмотрено в v0.1

Подробности — в сравнении.

Предварительные требования

  • Node.js >=22.13.0 и npm;

  • Git доступен в PATH;

  • Codex CLI установлен и аутентифицирован для текущего пользователя операционной системы;

  • Claude Code с локальной поддержкой stdio MCP;

  • Git-репозиторий для каждой делегированной задачи.

BoundedRelay использует поддерживаемый неинтерактивный интерфейс codex exec --json. У него нет ввода учётных данных и хранилища учётных данных. Сохранённая аутентификация Codex используется через обычное пользовательское окружение; прямая передача API-токенов — отдельная опция, подключаемая явно.

Быстрый старт из исходного кода

Пакета ещё нет на npm. Клонируйте или скачайте этот репозиторий и запустите его локально.

1. Установите, проверьте и проинспектируйте локальное окружение

git clone <repository-url> bounded-relay
cd bounded-relay
npm ci
npm run check
node dist/cli.js doctor

doctor проверяет зависимости, видимые Node, совместимость команд Codex, Git и состояние входа в Codex без обращения к модели.

2. Зарегистрируйте собранного воркера в Claude Code

Выполните эту команду из каталога BoundedRelay, чтобы оболочка записала абсолютный путь. Пользовательская область — рекомендуемый персональный вариант по умолчанию, потому что та же установка доступна, когда Claude Code открывает другие проекты:

WORKER_ENTRY="$(pwd)/dist/cli.js"

claude mcp add \
  --transport stdio \
  --scope user \
  bounded-relay \
  -- node "$WORKER_ENTRY" serve

--scope user относится лично к вашей учётной записи операционной системы и не сохраняется в репозиторий. Чтобы вместо этого сохранить регистрацию локальной для одного проекта, перейдите в целевой Git-репозиторий перед выполнением команды и используйте --scope local; локальная область принадлежит проекту, в котором выполняется команда.

Затем проверьте:

claude mcp list

Внутри Claude Code выполните /mcp. bounded-relay должен отобразиться как подключённый.

3. Выполните первую делегацию в режиме только чтения

Откройте Claude Code внутри Git-репозитория и попросите:

Use bounded-relay to inspect this workspace and start a read-only architecture review.
Poll codex_worker_status with afterRevision so you show each new activity without spam.
When the job completes, retrieve the result and summarize only high-confidence findings.

Claude должен использовать codex_worker_workspace, codex_worker_analyze, codex_worker_status и codex_worker_result.

Для macOS, Linux, Windows PowerShell, конфигурации в области проекта, удаления, обновлений и типичных ошибок настройки прочитайте полное руководство по установке и первому запуску.

MCP-инструменты

Инструмент

Назначение

codex_worker_capabilities

Сообщает о совместимости, готовности входа, действующих лимитах, доступности предложений и предупреждениях.

codex_worker_workspace

Разрешает каталог, его Git-границу, точную ревизию, чистоту и готовность к предложениям.

codex_worker_analyze

Ставит в очередь ограниченное задание Codex в режиме только чтения.

codex_worker_propose

Ставит в очередь изолированное предложение патча; регистрируется только при CCW_ENABLE_PROPOSALS=true.

codex_worker_status

Читает очищенную активность сейчас или ожидает ревизию новее, чем afterRevision.

codex_worker_result

Читает конечный результат; текст патча предложения требует includePatch=true.

codex_worker_cancel

Отменяет задание в очереди или выполняющееся задание. Повторная отмена безопасна.

codex_worker_list

Выводит ограниченную историю заданий за время жизни процесса в виде { "jobs": [...] }.

Стабильные пространства имён протокола и конфигурации v0.1 остаются codex_worker_* и CCW_*. Публичный бренд — BoundedRelay; сохранение этих явных пространств имён позволяет избежать ненужной ломающей миграции до стабилизации контракта.

Прочитайте полный справочник инструментов, включая все состояния активности, входные данные, выходные данные и коды ошибок.

Контракт безопасности

Режим анализа — по умолчанию

  • Запрашивает песочницу Codex read-only в каноническом разрешённом Git-репозитории.

  • Отклоняет поля, предназначенные только для предложений, такие как writePaths и expectedRevision.

  • Возвращает итоговый анализ Codex и метаданные о наблюдаемом использовании.

Режим предложений — отключён по умолчанию

  • Регистрируется только при запуске сервера с CCW_ENABLE_PROPOSALS=true.

  • Требует чистое дерево исходников, точный полный Git-идентификатор объекта и явные пути записи относительно репозитория.

  • Создаёт чистый одноразовый клон на зафиксированной ревизии.

  • Запускает workspace-write только внутри этого клона.

  • Отклоняет изменённые ссылки (refs), изменённый HEAD, файлы вне области действия, защищённые пути, изменения симлинков, патчи превышающие размер и чрезмерное количество изменённых файлов.

  • Возвращает проверенный бинарный патч полного индекса и дайджест SHA-256, затем удаляет клон.

  • Никогда не применяет, не коммитит, не пушит, не публикует и не развёртывает патч.

Включайте его только после того, как режим только чтения заработает:

claude mcp remove bounded-relay --scope user

claude mcp add \
  --env CCW_ENABLE_PROPOSALS=true \
  --transport stdio \
  --scope user \
  bounded-relay \
  -- node /absolute/path/to/bounded-relay/dist/cli.js serve

codex_worker_result по умолчанию опускает текст патча. Вызывающий должен запросить includePatch=true, проверить возвращённый дайджест, изучить содержимое и отдельно решить, применять ли его. Прочитайте полную модель безопасности перед включением предложений.

Архитектура

flowchart LR
    Claude[Claude Code] -->|local MCP over stdio| Relay[BoundedRelay]
    Relay --> Policy[Validation and policy]
    Policy --> Queue[Bounded in-memory queue]
    Queue --> Analyze[Read-only analysis]
    Queue --> Proposal[Isolated proposal]
    Analyze -->|codex exec --json| Codex[Codex CLI]
    Proposal --> Clone[Disposable clean clone]
    Clone -->|workspace-write only here| Codex
    Codex --> Events[Sanitized activity]
    Clone --> Patch[Validated patch artifact]
    Events --> Relay
    Patch --> Relay

См. Архитектуру и журнал архитектурных решений.

Опциональный рабочий процесс со Spec Kit

Spec Kit полезен для значительных функций в потребительских проектах, поскольку создаёт проверяемые артефакты спецификации, плана и задач до реализации. Он намеренно не является зависимостью времени выполнения BoundedRelay, и этот репозиторий не поставляет рабочее пространство .specify/.

Рекомендуемая интеграция добавляет три контрольные точки проверки:

  1. Claude составляет план Spec Kit; Codex выполняет ограниченную проверку плана в режиме только чтения, прежде чем задачи будут финализированы.

  2. После генерации задач и успешного прохождения анализа Spec Kit Codex проверяет spec.md, plan.md и tasks.md как единый межартефактный контракт.

  3. После реализации и проверок проекта Claude просматривает diff, а Codex независимо сверяет его с утверждёнными артефактами.

Строгая контрольная точка проверяет закоммиченные артефакты в чистой рабочей области, фиксирует точный Git HEAD и ревизию артефактов и становится устаревшей после изменения любого проверенного артефакта или HEAD. Черновая проверка может исследовать незакоммиченную работу, но её неверсионированные замечания носят рекомендательный характер и не могут удовлетворить строгую контрольную точку.

Используйте закреплённое опциональное руководство по интеграции Spec Kit.

Конфигурация

Безопасные значения по умолчанию не требуют конфигурации проекта.

Переменная

По умолчанию

Значение

CCW_ALLOWED_ROOTS

CLAUDE_PROJECT_DIR, затем server cwd

Каталоги, разделённые разделителем платформы, в которые воркер может заходить.

CCW_ENABLE_PROPOSALS

false

Регистрирует изолированный инструмент предложений.

CCW_MAX_CONCURRENT

2

Активные задания Codex в данном процессе сервера.

CCW_MAX_QUEUED

32

Максимальное количество заданий в очереди.

CCW_DEFAULT_TIMEOUT_MS

1200000

Тайм-аут задания по умолчанию.

CCW_MAX_TIMEOUT_MS

1800000

Максимальный тайм-аут, выбираемый вызывающим.

CCW_FORWARD_AUTH_ENV

false

Передаёт известные переменные API-токенов в Codex.

CCW_FORWARD_ENV

пусто

Дополнительные имена переменных окружения для передачи.

Прочитайте Конфигурацию перед передачей секретов или включением предложений.

Чего BoundedRelay не утверждает

  • Он не выбирает объективно «лучшую» модель. Необязательные значения model и reasoning остаются явными вариантами, внесёнными в белый список сервера.

  • Он не гарантирует лучший код, меньшее использование токенов или меньшую стоимость.

  • Он не выдаёт приватную цепочку рассуждений (chain-of-thought) за прогресс.

  • Он не поддерживает выполнение заданий после завершения процесса stdio-сервера.

  • Он не предотвращает записи, выполняемые вручную или несвязанными инструментами.

  • Он не переводит Codex в автономный режим и не изменяет политики хранения данных провайдера.

  • Он не применяет автоматически, не коммитит, не пушит, не публикует, не развёртывает и не изменяет удалённое состояние.

Документация

Статус проекта

0.1.0 намеренно является предстабильной версией. Контракты могут измениться до 1.0.0. Перед обновлением проверьте CHANGELOG.md и заметки о совместимости.

Участие в разработке, безопасность и поддержка

  • Прочтите CONTRIBUTING.md перед открытием pull request.

  • Сообщайте об уязвимостях конфиденциально через SECURITY.md.

  • Используйте SUPPORT.md для получения информации о границах поддержки и диагностических данных.

Лицензия

MIT

A
license - permissive license
Not graded
quality - not tested
C
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 Servers

View all related MCP servers

Related MCP Connectors

  • A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage

  • A paid remote MCP for OpenAI Codex context compressor, built to return verdicts, receipts, usage log

  • Paid remote MCP for Claude Code skill update gate MCP, structured receipts, audit logs, and reviewer

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/mohammad19974/bounded-relay'

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