relay
OfficialModula Relay
AI 에이전트들이 서로 대화하게 하세요. 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 로스터를 확인해 봐."라고 말하세요. 상대 피어가 바로 보일 것입니다. 로스터는 피어를 직접 ping하므로 "연결이 살아 있나?" 확인을 겸하며 밀리초 단위로 응답합니다.
이제 코더에게 평범한 영어로 말하세요:
relay를 통해 검증기에게 이 메시지를 보내세요: "utils.py를 검토하고 문제가 있으면 답변해 주세요", 그리고 답변을 기다리세요.
검증기가 메시지를 받아 작업을 수행하고 답변하는 것을 지켜보세요. 프로토콜 명령을 직접 입력할 일은 없습니다. 에이전트가 Relay를 스스로 구동합니다.
속도는 링크가 아니라 모델에서 나옵니다. 상대 에이전트가 실제로 요청을 처리하는 동안 각 교환은 양쪽에서 전체 턴을 소비하므로, 답변은 모델이 실행되는 속도(보통 몇 초)에 맞춰 도착합니다. 느리다면 그건 전송이 아니라 모델 또는 요금 제한이 걸린 계정 때문입니다. relay_roster는 모델을 깨우지 않고 링크를 자체적으로 확인합니다.
에이전트가 얻는 것
MCP를 지원하는 모델이라면 이미 사용법을 아는 여섯 가지 도구:
Tool | Meaning |
| 이 풀에 다른 누가 있나요? |
| 피어에게 요청 하나를 보냅니다 |
| 요청 또는 답변을 기다립니다 |
| 요청에 답합니다 |
| 기다리지 않고 답변을 확인합니다 |
| 오래된 요청 슬롯을 비웁니다 |
모든 것이 여러분의 머신에 유지됩니다. 피어들은 Unix 도메인 소켓을 통한 폴더별 풀에서 서로를 찾습니다. 브로커도, 네트워크 포트도, 계정도 없습니다.
대화를 이어가기
Relay는 풀 기반입니다. 메시지는 수신자가 await를 호출할 때까지 수신자에게 대기합니다. "요청 하나를 기다렸다가 답하세요" 같은 일회성 프롬프트는 첫 교환 후 수신을 멈추므로, 계속되는 대화를 위해서는 각 에이전트에 루프를 한 번 지정하세요:
당신은 진행 중인 relay 대화에 참여하고 있습니다. 루프: 인바운드 요청이나 답변을 위해 relay를 await하세요. 무언가 도착하면 처리하고 답변한 다음 다시 대기하세요. 내가 멈추라고 말할 때까지 루프를 유지하세요.
루프는 전송 측도 포함합니다. 전송한 요청에 대한 답변은 같은 await에 나타나므로, 루프를 유지하는 에이전트는 msg_id를 놓치더라도 여전히 답변을 받습니다.
루프를 하네스에 맞추세요. 하네스는 에이전트가 턴을 진행하는 동안 입력을 처리하는 방식이 다릅니다. Codex는 몇 초 안에 입력을 받아들이므로 연속 루프가 적합합니다. Claude Code는 많은 도구 호출에 걸쳐 입력을 유지할 수 있으므로 요청 시 깨우는(wake-on-demand) 리듬이 더 잘 맞습니다. 빈 타임아웃 두 번 후 턴을 끝내고, 메시지가 대기열에 쌓이면 watcher가 깨우도록 하세요. 그러면 유휴 프롬프트에 앉아 여러분을 기다리면서도, 피어가 메시지를 보내면 몇 초 안에 깨어납니다.
호스트 통합자는 더 나아갈 수 있습니다. 서버는 유휴 피어에게 메시지가 대기 중일 때 웨이크 알림(notifications/relay/wake)을 내보내며, 이를 수신하는 호스트는 루프를 스스로 재개할 수 있습니다. 웨이크는 전달 신호일 뿐, 명령 소스가 아닙니다. 준비된 호스트 두 개가 examples/에 포함되어 있습니다. claude-stop-hook.sh는 tmux 없이도 메시지가 대기 중인 동안 Claude Code 에이전트가 턴을 끝내지 못하게 합니다. relay-watch.sh는 레지스트리의 대기열 깊이를 기준으로 유휴 tmux 패널을 깨우는 범용 watcher입니다.
에이전트 무장시키기
무인 루프를 조용히 망가뜨리는 두 가지가 있습니다. 첫째는 승인 프롬프트입니다. "Allow 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를 호출할 때까지 대기하므로, 위의 루프로 다시 넣으세요. 대상이 최근에 await하지 않았다면 전송 영수증에
note가 포함되며, 로스터에는 각 피어의last_await_at이 표시됩니다.
더 깊이 알아보기
전체 프로토콜은 SPEC.md에 있습니다: 봉투(envelope), 웨이크 채널, 보안 모델, 버저닝. 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