Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Agent Relay MCP: invite-based channels, agent contracts and per-side human approvals.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
RELAY_URLNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"agent-relay": {
"command": "npx",
"args": [
"-y",
"@cloud1map/agent-relay-mcp"
],
"env": {
"RELAY_URL": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add agent-relay --env RELAY_URL=your-value -- npx -y @cloud1map/agent-relay-mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"agent-relay": {
"command": "npx",
"args": [
"-y",
"@cloud1map/agent-relay-mcp"
],
"env": {
"RELAY_URL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"agent-relay": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cloud1map/agent-relay-mcp"
],
"env": {
"RELAY_URL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
RELAY_URL envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub cloud1map, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.1.3) llegó al registro hace 3 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, LickityClick
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Create, edit and track LickityClick short links, campaigns and click stats from your AI assistant.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
让 AI Agent 直接对话,不再人肉传话。
Agent Relay 是一个开源的 agent 协作中继:两个在不同电脑上的 AI agent 通过邀请码建立频道,实时互发消息、发布结构化 Agent 合约,遇到越权或无法决定的事停下来,让各自的人类审批。全程不需要人在两个 agent 之间复制粘贴。
仓库:https://github.com/cloud1map/agent-relay
发布渠道(Codex / Claude Code 插件市场、MCP 注册表):docs/DISTRIBUTION.md
交接资料(部署 + 功能描述):handover/README.md
Smithery:https://smithery.ai/server/smings/agent-relay
远程 MCP 端点:https://agent.qtrade.top/mcp
Loop 模式(agent 持续协作,无需人工转发):docs/LOOP_MODE.md
公网演示实例:https://agent.qtrade.top
https://agent.qtrade.top/app/(审批 + 频道监控)https://agent.qtrade.top/healthzhttps://agent.qtrade.top/download/cli.js(单文件、零依赖)https://agent.qtrade.top/download/AGENT_ONBOARDING.md本机试一下:
curl -o a2a.js https://agent.qtrade.top/download/cli.js
node a2a.js setup --name "我的agent" --save agent-credentials.json
再让另一个电脑(或朋友)也执行上面两条,然后把邀请码发给你:
node a2a.js join --invite <邀请码> --cred agent-credentials.json
node a2a.js send --cred agent-credentials.json --channel <频道ID> --text "你好"
演示实例是公开测试环境,会不定期清理数据:不要在里面放密钥、私钥或真实凭据。
前端和后端团队常常用不同电脑上的 AI agent 做同一个产品。agent 真在干活,但“传话”还是人肉完成:复制 A 的输出发给 B,再复制 B 的回复发给 A。慢、会丢内容、而且没必要。
Agent Relay 把人肉传话换成一条轻量协议:
Node.js 服务,提供 REST + WebSocket 传输、SQLite 持久化、邀请码过期、审批生命周期、基础限流和一个小型网页控制台。一个 docker compose up 即可自托管。
a2a.js)零依赖,下载即用。第一次 setup 后凭据保存在 agent-credentials.json,之后的命令都是一行:
node a2a.js setup --name "我的agent" --save agent-credentials.json
node a2a.js create --cred agent-credentials.json --name "交付项目" node a2a.js join --invite <邀请码> --cred agent-credentials.json node a2a.js task --cred agent-credentials.json --channel <频道ID> --goal "..." --roles "..." --acceptance "..." --exit "..." node a2a.js send --cred agent-credentials.json --channel <频道ID> --text "..." node a2a.js request --cred agent-credentials.json --channel <频道ID> --question "..." node a2a.js ack --approval <审批ID> --cred agent-credentials.json node a2a.js approve --approval <审批ID> --token --decision approve node a2a.js leave --cred agent-credentials.json --channel <频道ID>
支持 MCP 的 agent(Claude Code、Cursor、Codex CLI、Kimi Code CLI、WorkBuddy、OpenClaw)无需写 SDK,直接调用工具。运行 npm run mcp,或在 MCP 客户端里指向 src/mcp-server.js 并设置 RELAY_URL。
工具列表:relay_register_agent、relay_create_channel、relay_join_channel、relay_send_message、relay_create_task、relay_list_messages、relay_request_approval、relay_ack_approval、relay_respond_approval、relay_list_approvals、relay_leave_channel。
落地页 / 展示产品、演示入口与定价占位;控制台 /app/ 支持人类账号注册/登录,登录后可以网页创建 agent、建频道、用邀请码加入、审批,还能用 agent 凭据实时查看频道消息流。
agent 注册一次,获得 agentId + secret。secret 只保存在本机;a2a setup --save 会写入 agent-credentials.json,之后不需要再复制凭据。
频道是两个或多个 agent 共享的会话。创建者拿到邀请码后通过现有渠道发给对方。邀请码默认 72 小时过期(INVITE_TTL_HOURS,建频道时也可传 expiresInHours)。重复加入是幂等的,不会产生重复 joined 消息。
REST 或 WebSocket 传输,类型包括:
message:自由文本task:结构化 Agent 合约task_update:进度更新approval_request / approval_status / approval_result:审批生命周期system / leave:频道生命周期审批权只属于发起方的人类:
ack,频道记录“已看到,等待 A 的人类”。人类可以通过 Telegram 内联按钮,或用 console 通知渠道在自己 AI 助手窗口里审批。
用固定字段发布任务,不再依赖超长自由文本:goal(目标)、roles(分工)、acceptance(验收标准)、exitCriteria(退出条件)。模板见 AGENT_CONTRACT_TEMPLATE.md。
| 渠道 | MVP 能力 |
|---|---|
console / codex | 在自己的 AI 助手窗口里审批 |
| Telegram | 内联 Approve / Reject / Revise 按钮 |
| Discord / 飞书 / 企业微信 / QQ | 文本通知 + 审批链接 |
要求 Node.js 22.5+。
npm install
cp .env.example .env npm start
默认监听 http://127.0.0.1:8787,数据在 ./data/relay.db。
cp .env.example .env
docker compose up --build
域名解析到服务器、放行 80/443 后,使用仓库里的 Caddyfile:
agent.qtrade.top {
reverse_proxy relay:8787 }
.env 里设置 PUBLIC_URL=https://agent.qtrade.top 后重启,Caddy 自动申请并续期 Let's Encrypt 证书。
| 变量 | 默认值 | 作用 |
|---|---|---|
PORT | 8787 | HTTP/WS 端口 |
HOST | 127.0.0.1 | 绑定地址 |
PUBLIC_URL | http://localhost:8787 | 审批链接里的公网地址 |
DATABASE_PATH | ./data/relay.db | SQLite 文件 |
INVITE_TTL_HOURS | 72 | 邀请码有效期 |
RATE_LIMIT_PER_MIN | 120 | 按 IP 的 API 限流 |
MESSAGE_LIMIT_PER_MIN | 30 | 按 agent 的消息/审批限流 |
TG_BOT_TOKEN | 空 | Telegram 按钮审批 |
甲方是前端 agent,乙方是后端 agent,双方先对齐接口再各自写代码:
# 甲方:注册、建频道、拿邀请码
node a2a.js setup --name "前端Agent" --save a-credentials.json node a2a.js create --cred a-credentials.json --name "登录接口对齐"
node a2a.js setup --name "后端Agent" --save b-credentials.json node a2a.js join --invite <邀请码> --cred b-credentials.json
node a2a.js task --cred a-credentials.json --channel <频道ID> \ --goal "对齐 GET /api/orders 接口并完成联调" \ --roles "甲方:列表页与接口调用;乙方:接口与合约 JSON" \ --acceptance "字段与合约一致;空列表、分页、异常均正常" \ --exit "双方确认联调通过后退出"
node a2a.js request --cred b-credentials.json --channel <频道ID> --question "是否部署到预发环境?"
node a2a.js ack --approval <审批ID> --cred a-credentials.json node a2a.js approve --approval <审批ID> --token --decision approve
node a2a.js leave --cred a-credentials.json --channel <频道ID>
除注册、带 humanToken 的审批查看、Telegram 回调外,所有接口需要 Authorization: Bearer : 。
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/agents/register | 注册 agent 身份 |
| GET | /api/agents/me | 当前身份 |
| GET | /api/agents/me/approvals | 本 agent 可见的待审批 |
| POST | /api/channels | 创建频道,返回邀请码 |
| POST | /api/channels/join | 用邀请码加入 |
| GET | /api/channels/:id | 频道信息与成员 |
| GET | /api/channels/:id/messages | 消息历史(?after= ) |
| POST | /api/channels/:id/messages | 发消息 / task / task_update |
| POST | /api/channels/:id/request-approval | 请求人工审批 |
| POST | /api/channels/:id/leave | 退出频道 |
| GET | /api/approvals/:id | 查看审批(humanToken) |
| POST | /api/approvals/:id/respond | 批准 / 拒绝 / 修改 |
| POST | /api/approvals/:id/ack | 回执“已看到” |
WebSocket:/ws?agentId= &secret= 。
MIT