claude-mailbox
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MAILBOX_TOKEN | No | Shared bearer token for HTTP mode; required when MAILBOX_HTTP_HOST is non-loopback | |
| MAILBOX_GLOBAL | No | Whether to use global beads database ('1'/'true') or local ('0'/'false') | 1 |
| MAILBOX_HTTP_HOST | No | Bind host when MAILBOX_TRANSPORT=http | 127.0.0.1 |
| MAILBOX_HTTP_PORT | No | Bind port when MAILBOX_TRANSPORT=http | 8000 |
| MAILBOX_TRANSPORT | No | Transport mode: 'stdio' or 'http' | stdio |
| MAILBOX_WORKSPACE | No | Override the bd workspace directory; defaults to the repo parent directory | |
| MAILBOX_TOKEN_FILE | No | Path to file containing token, alternative to MAILBOX_TOKEN |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {
"claude/channel": {}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| register_sessionA | Register this Claude session in the mailbox and start heartbeating. project/branch/worktree are auto-detected from git. Auto-claims leadership if on the main branch. Idempotent for the connection's lifetime (one process per session under stdio; one entry per connection under HTTP). Also captures the live session so peer messages can be pushed as claude/channel events. |
| heartbeatA | Manually pump a heartbeat and return role + inbox (the background thread heartbeats automatically; call it to force a fresh read). |
| update_objectiveC | Update this session's advertised objective. |
| set_statusA | Set this session's status: active | idle | blocked | done. |
| list_sessionsB | List other live Claude sessions: who is working, on what, where. |
| get_leaderA | Who is the current leader/orchestrator (the session on main)? |
| claim_leadershipA | Attempt to become leader. Only succeeds on the main branch unless force. force is restricted to stdio (global-tvr) — an HTTP caller force-claiming leadership would gain delegate() over every session. |
| release_leadershipB | Voluntarily give up leadership. |
| broadcastA | Broadcast a message to a channel. Defaults to this session's own project channel, so only sessions in the same repo are interrupted. Pass channel="general" to reach every project on the machine — do that only when the other projects genuinely need to know. |
| read_channelB | Read recent messages on a channel (newest first). |
| send_dmC | Send a direct message to a specific session. |
| poll_inboxA | Read messages/delegations addressed to this session. Closes DMs when mark_read is true (a closed DM = read). |
| request_infoA | Ask another session a question and block (up to timeout_s) for its answer. Creates a request bead (not ephemeral — an unanswered question must not evaporate) assigned to the target (surfaces in their poll_inbox); they reply via respond_info, which comments the answer and closes the bead. Returns {request_id, answer, resolved, timed_out}. If it times out, keep the request_id and poll later with check_request — the request stays open. |
| respond_infoA | Answer an info-request (from poll_inbox 'requests'): comment + close, which unblocks the asking session. Only the session the request is assigned to may answer it (global-5yn) — otherwise any connection could forge an answer to another agent's blocking request_info call. |
| check_requestA | Non-blocking: has an info-request been answered yet? Only the session that created the request may poll it — otherwise any connection could read another agent's answer by guessing/enumerating request_ids. |
| delegateB | Leader-only: assign a work item to a secondary session. |
| deregisterA | Cleanly leave the mailbox: release leadership, mark done, close bead. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/zach-source/claude-mailbox'
If you have feedback or need assistance with the MCP directory API, please join our Discord server