Relays messages between two Claude Code sessions on different machines using the Channels API
Connect Runs on your machine
claude mcp add intercom -e MY_ROLE=<MY_ROLE> -e REMOTE_HOST=<REMOTE_HOST> -e INTERCOM_SECRET=<INTERCOM_SECRET> -e INTERCOM_PORT=<INTERCOM_PORT> -e INTERCOM_HOST=<INTERCOM_HOST> -e INTERCOM_SEND_TIMEOUT_MS=<INTERCOM_SEND_TIMEOUT_MS> -- npx -y [email protected]
{
"mcpServers": {
"intercom": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"MY_ROLE": "<MY_ROLE>",
"REMOTE_HOST": "<REMOTE_HOST>",
"INTERCOM_SECRET": "<INTERCOM_SECRET>",
"INTERCOM_PORT": "<INTERCOM_PORT>",
"INTERCOM_HOST": "<INTERCOM_HOST>",
"INTERCOM_SEND_TIMEOUT_MS": "<INTERCOM_SEND_TIMEOUT_MS>"
}
}
}
}
{
"mcpServers": {
"intercom": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"MY_ROLE": "<MY_ROLE>",
"REMOTE_HOST": "<REMOTE_HOST>",
"INTERCOM_SECRET": "<INTERCOM_SECRET>",
"INTERCOM_PORT": "<INTERCOM_PORT>",
"INTERCOM_HOST": "<INTERCOM_HOST>",
"INTERCOM_SEND_TIMEOUT_MS": "<INTERCOM_SEND_TIMEOUT_MS>"
}
}
}
}
{
"servers": {
"intercom": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"MY_ROLE": "<MY_ROLE>",
"REMOTE_HOST": "<REMOTE_HOST>",
"INTERCOM_SECRET": "<INTERCOM_SECRET>",
"INTERCOM_PORT": "<INTERCOM_PORT>",
"INTERCOM_HOST": "<INTERCOM_HOST>",
"INTERCOM_SEND_TIMEOUT_MS": "<INTERCOM_SEND_TIMEOUT_MS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
MY_ROLERequired | Label for this instance, e.g. backend or frontend. Appears in message tags so the other side knows who is talking. |
REMOTE_HOSTRequired | Address of the other machine as host:port. A Tailscale address is recommended over a public one. |
INTERCOM_SECRETRequired, secret | Shared secret authenticating messages between the two instances. Must match on both sides. There is no default: without it the intercom starts unpaired, binds no port, and refuses to send. |
INTERCOM_PORTOptional | Port to listen on for incoming messages. Defaults to 8788. |
INTERCOM_HOSTOptional | Interface to bind the listener to. Defaults to 0.0.0.0. Set 127.0.0.1 when a tunnel fronts the intercom, so only the tunnel can connect. |
INTERCOM_SEND_TIMEOUT_MSOptional | How long an outbound POST may hang before giving up. Defaults to 10000. |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 19 Aug 2026 |
| Last updated | 19 Aug 2026 |
| Registry name | io.github.MuhammadTalhaMT/intercom |
More developer tools servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
