MCP server exposing Agent Relay tools for Claude Code, Cursor, and other MCP clients. Enables turn-based agent-to-agent communication.
Three tools with complete input schemas and descriptions, but significant gaps in output documentation and error handling. Tool names follow verb_noun pattern (relay_create, relay_send, relay_heartbeat). Descriptions are present (60-120 chars) but lack actionable recovery guidance. Parameters have types and descriptions, but no enums for constrained values (e.g., 'status' accepts 'active'|'composing'|'idle' but not declared as enum). No documented output schemas. Error handling exists in _handle_http_error() but responses are generic ('Not your turn') without recovery steps. Session state management via .agent-relay.json is undocumented in tool descriptions.
Create a new relay for turn-based agent communication. Returns relay_id and agent_names. Share the relay_id with other agents to join.
Send heartbeat to let others know you're still connected. Call this periodically (every 10-15 seconds) during long operations.
Send a message in a relay. Only works when it's the agent's turn. Use relay_status to check whose turn it is first. All arguments default to session values from the last relay_create call.
No output schemas documented. LLMs cannot plan downstream calls or extract relay_id, agent_names, or message_id from responses.
Constrained parameters lack enum declarations. 'status' accepts 'active'|'composing'|'idle' and 'type' accepts 'text'|'question'|'action-item'|'decision'|'bug-report'|'code', but no enum constraint visible in schema.
Error responses lack recovery guidance. '_handle_http_error()' returns generic messages ('Not your turn', 'Relay not found') without suggesting next steps (e.g., 'Call relay_status to check whose turn it is').
Session state persistence (.agent-relay.json) is undocumented in tool descriptions. LLMs cannot understand that relay_id, token, and agent default to session values or that state persists across MCP restarts.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No pagination or result limits documented. relay_send and relay_create responses may return unbounded data (e.g., full message history, all agent names) without limit or cursor guidance.