Cross-machine agent communication for Claude Code over Tailscale.
Agents on different machines register, send messages, and coordinate tasks through a shared MCP server running on any Tailscale node.
pip install -r requirements.txtSet a shared auth token:
export RELAY_AUTH_TOKEN="your-secret-token"Start the server:
fastmcp run relay.py --transport http --port 8080tailscale serve --bg 8080This gives you a URL like https://your-hostname.tailnet-name.ts.net.
Local (for testing):
claude mcp add --transport http relay http://localhost:8080/mcp \
--header "Authorization: Bearer $RELAY_AUTH_TOKEN"Over Tailscale:
claude mcp add --transport http relay https://your-hostname.tailnet-name.ts.net/mcp \
--header "Authorization: Bearer $RELAY_AUTH_TOKEN"register_agent(name, capabilities)- Register and see who else is onlinelist_agents()- List all registered agentsheartbeat(name)- Stay online (5 min timeout)
send_message(from_agent, to_agent, content)- Direct messageget_messages(agent_name)- Read and clear your inboxbroadcast_message(from_agent, content)- Message all agents
create_task(title, description, created_by, assigned_to?)- Create shared tasklist_tasks(status?)- List tasks (all/pending/in_progress/completed)update_task(task_id, status?, assigned_to?)- Update task
- Server: FastMCP 2.x, streamable HTTP transport
- Storage: SQLite with WAL mode (zero config, persistent)
- Auth: Bearer token via
RELAY_AUTH_TOKENenv var - Networking:
tailscale servehandles HTTPS and DNS