claude-intercom
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@claude-intercomAsk the data-pipeline session if the ETL job finished."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
claude-intercom
An MCP server that lets Claude Code sessions talk to each other.
Run many Claude Code sessions at once (e.g. with agent-deck, tmux, or just several terminals) and let them:
list_sessions— discover recent sessions and see which are live right nowwhoami— find out which session you aresend_message— drop an async message into another session's inboxread_messages— pick up messages other sessions sent youreply— answer a message you receivedask— ask a live session a question and get its answer back synchronously
No daemon, no database. Messages are plain JSON files under ~/.claude-intercom/, and sessions are discovered from Claude Code's own transcripts (~/.claude/projects/).
How it works
Discovery. Every Claude Code session writes a transcript to
~/.claude/projects/<project>/<session-id>.jsonl.list_sessionsreads those for the session id, project, first prompt (as a title), and last-active time.Liveness. A session is "live" if its
claudeprocess is running inside a tmux pane. The server correlates tmux panes → processes → the session id each one has open.Self-identity. The server walks up from its own process to the parent
claudeprocess and useslsofto find which transcript that process has open — that's you. (Override withCLAUDE_INTERCOM_SESSIONif detection ever fails.)Live delivery /
ask. For a live target, the message is typed into its tmux pane withtmux send-keys. Forask, the server then tails the target's transcript and returns the assistant text that appears in response.
Heads up: live delivery and
askinterrupt whatever the target session is doing, exactly as if you typed into its terminal. Asyncsend_message(the default) does not — the recipient sees it when it next callsread_messages.
Related MCP server: claude-peers
Requirements
Node.js ≥ 18
tmux,ps, andlsofonPATH(standard on macOS/Linux) — only needed for liveness, live delivery, andask. Async messaging works without them.
Install
From source (recommended today)
git clone https://github.com/AriOliv/claude-intercom
cd claude-intercom
npm install
npm run buildThen register it with Claude Code (user scope = available in every session):
claude mcp add intercom -s user -- node "$(pwd)/dist/index.js"If you run several Claude Code config dirs, register it in each:
CLAUDE_CONFIG_DIR=~/.claude claude mcp add intercom -s user -- node "$(pwd)/dist/index.js"
CLAUDE_CONFIG_DIR=~/.claude-ari claude mcp add intercom -s user -- node "$(pwd)/dist/index.js"Via npx (once published to npm)
claude mcp add intercom -s user -- npx -y claude-intercomOr add it to your MCP config manually:
{
"mcpServers": {
"intercom": {
"command": "node",
"args": ["/absolute/path/to/claude-intercom/dist/index.js"]
}
}
}Usage
In any Claude Code session:
"List the other sessions I have open."
"Ask the litellm session whether the model-selection refactor is merged yet."
"Tell the BRLA session I'm done with the migration — it can rebase."
"Check my intercom inbox."
Configuration
Env var | Default | Purpose |
|
| Where Claude Code stores |
|
| Where messages are stored |
| (auto) | Force this server's session identity (a session id) |
Development
npm install
npm run build # compile to dist/
npm run dev # run from source with tsxLimitations
Liveness, live delivery, and
askassume sessions run inside tmux. Plain-terminal sessions still work forlist_sessionsand asyncsend_message/read_messages.askreads the answer by tailing the target's transcript; it returns the assistant text produced after the question, capped at ~4k chars. It's pragmatic, not a structured RPC.A session only checks its inbox when something calls
read_messages(or you tell it to). Pair it with a hook or a polling loop if you want hands-off pickup.
License
MIT
Maintenance
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/AriOliv/claude-intercom'
If you have feedback or need assistance with the MCP directory API, please join our Discord server