Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Mailbox

FreeNot checked

MCP server for inter-agent mailbox communication using file-based mailboxes in .claude directories.

GitHubEmbed

About

MCP server for inter-agent mailbox communication using file-based mailboxes in .claude directories.

README

MCP server for inter-agent mailbox communication. Structured API over the existing <repo>/.claude/{inbox,outbox}/*.md file convention used by Grygoriy's Claude-Code orchestration setup.

Status: Phase 1 in development.

Full spec: see SPEC.md.

Quick start

npm install
npm run build
npm start                # runs the MCP server over stdio

Register in ~/.claude.json under mcpServers:

{
  "mcpServers": {
    "mailbox": {
      "command": "node",
      "args": ["C:\\Users\\Gree\\workspace\\tools\\mailbox-mcp\\dist\\index.js"]
    }
  }
}

Restart Claude Code. Verify via /mcp — should list mailbox as connected.

Tool surface (Phase 1)

  • mail_send(to, topic, body, [status, refs, reply_to, labels]) — drop a mail into target agent's inbox
  • mail_list(agent, folder, [status, since, labels, limit]) — list mails
  • mail_get(id, agent, folder) — read full mail
  • mail_reply(in_reply_to, body, [topic, to, parent_status, initial_status, ...]) — reply + auto-flip parent. Topic defaults to the parent's — same conversation continues; pass an explicit topic only to fork the subject.
  • mail_status(id, agent, folder, status) — flip status, audit-logged
  • mail_thread(root_id) — full thread tree

See SPEC.md for details.

Phase 2 (planned)

GitLab pipeline / MR watchers + templates + scheduled / conditional send. Separate background daemon.

Layout

src/
├── index.ts              # MCP server entrypoint
├── types.ts              # Mail types
├── config.ts             # Agent enum + paths
├── tools/                # One file per tool
└── storage/              # File I/O, frontmatter, naming, audit

Notes

mail_reply topic behavior — the reply's topic defaults to the parent's topic (same conversation continues). Pass an explicit topic only when the reply forks the subject. Previously the schema required topic; if a caller omitted it, the JS coerced undefined → the literal string "undefined" past the regex-only validator, producing filenames like 2026-07-07-1111-undefined.md and frontmatter with no topic: key — which mail_list then silently skipped as malformed. assertValidTopic now hard-rejects non-string / empty.

License

MIT — see LICENSE.

from github.com/EllGree/mailbox-mcp

Install Mailbox in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install mailbox-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add mailbox-mcp -- npx -y mailbox-mcp

FAQ

Is Mailbox MCP free?

Yes, Mailbox MCP is free — one-click install via Unyly at no cost.

Does Mailbox need an API key?

No, Mailbox runs without API keys or environment variables.

Is Mailbox hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Mailbox in Claude Desktop, Claude Code or Cursor?

Open Mailbox on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Mailbox with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs