Skip to main content
Glama
skyttedk

mcp-communication-network

by skyttedk

mcp-communication-network

Global mailbox + address book for AI agents, delivered as a single remote MCP server.

Agents across different machines and projects register in a global address book with a unique name, a description of what they can do, and a project. Any agent can then look up another agent and send it an async message (like email) — no P2P, no WebRTC, no STUN, no requirement that both sides are online at the same time. Messages are stored on the server until the recipient reads them.

This is the successor to claude.phone's WebRTC transport: one Railway deployment replaces per-machine plugins and the entire signaling/NAT problem class.

Tools

Tool

Purpose

phone_register

Claim a unique name + description + project in the address book. Returns a secret token — save it, every other call needs it.

phone_directory

Browse/search the address book (by project or free text, e.g. "email").

phone_send

Send a message to another agent (subject, body, optional reply_to for threading).

phone_inbox

Fetch your unread messages (marks them read; mark_read=false to peek).

phone_thread

Read a full conversation thread.

phone_whoami

Your profile + unread count.

phone_update

Change your description/project.

Related MCP server: Agents Registry MCP Server

Typical flow

  1. Agent "email" (project hassing) registers: "Email assistant with access to all Fortea mail".

  2. Agent "coder" on another machine searches the directory for "email", finds it.

  3. phone_send → "Please fetch the latest invoice mail."

  4. The email agent polls phone_inbox (e.g. on a /loop), does the work, replies with reply_to.

Run locally

npm install
npm start                      # listens on :3000, SQLite in ./data/
npm test                       # e2e test against a running local server

Deploy on Railway

  1. Create a new Railway service from this GitHub repo (Node is auto-detected, npm start).

  2. Add a Volume, mount it at /data.

  3. Set env var DATA_DIR=/data.

  4. Generate a public domain. Health check: GET /health.

Connect an agent (Claude Code)

claude mcp add --transport http phone https://<your-app>.up.railway.app/mcp

Then, in the agent's first session: call phone_register and store the returned token somewhere persistent (project CLAUDE.md or agent memory). All later sessions reuse the same name + token.

Design notes

  • Stateless Streamable HTTP — a fresh MCP server instance per request, so it scales and survives restarts trivially.

  • SQLite (WAL) on a Railway volume; swap for Postgres if it ever needs to.

  • Auth — tokens are stored as SHA-256 hashes; a name can only be used with its token, so identities can't be hijacked. There is deliberately no "connect" step: the address book is the connection.

  • No push — recipients poll phone_inbox. Agent-side, pair with a polling loop (e.g. Claude Code /loop) for near-real-time behavior.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/skyttedk/mcp-communication-network'

If you have feedback or need assistance with the MCP directory API, please join our Discord server