relay
OfficialModula Relay
Позвольте вашим ИИ-агентам общаться друг с другом. Relay — это локальный протокол обмена сообщениями для команд агентов. Представьте кодера в одной панели и верификатора в другой: они работают на разных моделях в разных средах, но над одной задачей. Он работает на вашей машине. Никакого сервера, никакого облака.
Установка
claude mcp add relay -- npx -y @modulastack/relay --name coder
npx -y @modulastack/relay setup claudeВторая строка оснащает агента инструкциями цикла, хуком пробуждения и доверием к инструментам, чтобы разговоры проходили без присмотра. Подробнее об этом — в разделе Оснащение агентов. setup codex делает то же самое для Codex, а также регистрирует сервер. Для любой другой MCP-среды команда сервера — npx -y @modulastack/relay --name <role>. Чтобы встроить его в свой инструмент, выполните npm install @modulastack/relay.
Related MCP server: claude-intercom-mcp
Первый разговор ваших агентов
Откройте два терминала в одной папке проекта.
Запустите по агенту в каждом. Одному дайте
--name coder, другому —--name verifier.Скажите любому агенту: «проверь список участников relay». Вы сразу увидите другого пира. Список напрямую пингует пиров, так что он также служит проверкой «связь работает?» и отвечает за миллисекунды.
Теперь скажите кодеру простыми словами:
Отправь верификатору через relay это сообщение: «пожалуйста, проверь utils.py и ответь с любыми замечаниями», и дождись ответа.
Наблюдайте, как верификатор получает сообщение, выполняет работу и отвечает. Вам никогда не нужно вводить протокольные команды. Агенты сами управляют Relay.
Скорость определяется моделями, а не каналом связи. Каждый обмен — это полный ход с каждой стороны, потому что другой агент реально работает над вашим запросом, поэтому ответы приходят со скоростью работы модели, обычно через несколько секунд. Если всё тянется, дело в модели или в аккаунте с лимитом запросов, а не в транспорте. relay_roster проверяет связь сам, не пробуждая модель.
Что получают ваши агенты
Шесть инструментов, которыми уже умеет пользоваться любая модель, поддерживающая MCP:
Tool | Meaning |
| Кто ещё есть в этом пуле? |
| Отправить один запрос пиру |
| Ждать запрос или ответ |
| Ответить на запрос |
| Проверить ответ без ожидания |
| Освободить устаревший слот запроса |
Всё остаётся на вашей машине. Пиры находят друг друга через пул на папку поверх доменных сокетов Unix. Ни брокера, ни сетевого порта, ни аккаунтов.
Поддержание разговора
Relay работает по модели pull. Сообщение ждёт получателя, пока тот не вызовет await. Разовый промпт вроде «дождись одного запроса и ответь на него» перестаёт слушать после первого обмена, поэтому для постоянного разговора дайте каждому агенту цикл один раз:
Вы участвуете в непрерывном разговоре через relay. Цикл: ожидай через relay входящие запросы или ответы; когда что-то приходит, обработай и ответь; затем снова жди. Продолжай цикл, пока я не скажу «стоп».
Цикл охватывает и отправку. Ответ на отправленный вами запрос появляется в том же await, так что агент, остающийся в цикле, всё равно получает ответы, даже если потерял msg_id.
Подбирайте цикл под свою среду. Среды по-разному обрабатывают ваш ввод, пока агент находится в середине хода. Codex подхватывает его в течение секунд, так что непрерывный цикл там подходит. Claude Code может удерживать введённый текст между множеством вызовов инструментов, поэтому ему лучше подходит ритм пробуждения по требованию. Скажите ему завершать ход после двух пустых тайм-аутов и позвольте наблюдателю будить его, когда сообщения встают в очередь. Тогда он остаётся у приглашения в режиме ожидания, готовый к вам, и всё равно просыпается в течение секунд, когда пир пишет ему.
Интеграторы хостов могут пойти дальше. Сервер отправляет уведомление о пробуждении (notifications/relay/wake), когда сообщения встают в очередь для простаивающего пира, и хост, который его слушает, может сам возобновить цикл. Пробуждение — это лишь сигнал доставки, а не источник инструкций. В examples/ поставляются два готовых хоста. claude-stop-hook.sh не даёт агенту Claude Code завершить ход, пока сообщения стоят в очереди, и без участия tmux. relay-watch.sh — универсальный наблюдатель, который подталкивает простаивающие tmux-панели на основе глубины очереди в реестре.
Оснащение агентов
Две вещи незаметно ломают автономные циклы. Первая — запросы на подтверждение. Агент, застывший на «Разрешить relay_await?», выглядит точь-в-точь как мёртвый. Вторая — простаивающие пиры. Среда завершает ход, и ничто не будит её, когда приходит сообщение. Одна команда для каждой среды устанавливает компоненты, предотвращающие обе проблемы: инструкции цикла, хуки и ограниченное доверие к инструментам.
npx -y @modulastack/relay setup claude # CLAUDE.md loop + Stop hook + tool trust
npx -y @modulastack/relay setup codex # AGENTS.md loop + config.toml server & trustЗапустите её в папке проекта. Повторный запуск не делает ничего нового; она вливается в существующую конфигурацию, а не перезаписывает её.
Чтобы настроить это вручную, компоненты — это обычные файлы. Текст цикла помещается в ваш CLAUDE.md или AGENTS.md. Claude Code доверяет серверу через permissions.allow: ["mcp__relay"] или --allowedTools mcp__relay при запуске. Codex принимает одну строку в записи сервера:
[mcp_servers.relay]
default_tools_approval_mode = "auto"Доверяйте именно инструментам relay, а не выдавайте глобальный обход. Вы хотите, чтобы координационные вызовы перестали прерывать, а не чтобы всё проходило без проверок. Одна вещь, которой стоит избегать. Не устанавливайте approval_policy = "never" для этого. Из-за этого Codex молча отклоняет всё, что потребовало бы подтверждения, а это блокирует relay_reply.
Если ничего не появляется
Пустой список? Оба агента должны работать в одной папке. Папка и есть пул.
Всё ещё пусто? Проверьте, что оба агента действительно запущены.
relay_rosterудаляет мёртвых пиров.Имя занято? Каждому пиру нужно уникальное
--nameв пределах пула.Сообщение отправлено, но пир простаивает? Доставка ждёт, пока пир вызовет await, так что верните его в цикл выше. Квитанция об отправке содержит
note, если получатель давно не вызывал await, а список показываетlast_await_atкаждого пира.
Глубже
Полный протокол описан в SPEC.md: конверты, канал пробуждения, модель безопасности и версионирование. Он пока нестабилен и находится на v0.x, так что фиксируйте версию поведенческого контракта, а не текст.
Apache-2.0 · © 2026 ModulaStack
О ModulaStack
Relay создан компанией ModulaStack. Если вы хотите наблюдать за работой своих агентов — с панелями, подтверждениями и командами на разных моделях, — Modula Stack — это консоль оператора, построенная на Relay.
«Modula Relay» и «ModulaStack» — товарные знаки ModulaStack. Лицензия Apache-2.0 не предоставляет прав на использование наименований.
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
Connect AI agents to Replynodes over the Model Context Protocol.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables peer-to-peer communication, discovery, shared state, and file coordination between AI coding agents across machines and sessions.2819Elastic 2.0
- AlicenseAqualityBmaintenanceEnables local messaging between Claude Code, Codex, Pi, and other coding-agent sessions on the same machine, allowing them to discover each other, send updates, ask questions, and reply.8192AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to communicate asynchronously via a decentralized, peer-to-peer LAN bridge with automatic discovery and direct messaging.MIT
- AlicenseNot gradedqualityCmaintenanceCross-harness communication mesh for LLM agents enabling rooms, DMs, presence, and visibility over TCP.31816MIT
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/modulastack/modula-relay'
If you have feedback or need assistance with the MCP directory API, please join our Discord server