claude-peers-mcp
name: claude-peers-mcp
by adisinghstudent · published 2026-04-01
$ claw add gh:adisinghstudent/adisinghstudent-claude-peers-mcp---
name: claude-peers-mcp
description: Enable multiple Claude Code instances to discover each other and exchange messages in real-time via a local broker daemon and MCP server.
triggers:
- "set up claude peers"
- "let my claude instances talk to each other"
- "install claude-peers mcp"
- "send messages between claude sessions"
- "multi-agent claude communication"
- "list all running claude instances"
- "claude peers messaging setup"
- "coordinate multiple claude code sessions"
---
# claude-peers-mcp
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
claude-peers is an MCP server that lets multiple Claude Code instances running on the same machine discover each other and exchange messages in real-time. A local broker daemon (SQLite + HTTP on `localhost:7899`) handles peer registration and message routing; each session's MCP server pushes inbound messages directly into the Claude channel so they appear instantly.
Installation
1. Clone and install dependencies
git clone https://github.com/louislva/claude-peers-mcp.git ~/claude-peers-mcp
cd ~/claude-peers-mcp
bun install2. Register as a global MCP server
claude mcp add --scope user --transport stdio claude-peers -- bun ~/claude-peers-mcp/server.tsAdjust the path if you cloned elsewhere.
3. Launch Claude Code with the channel enabled
claude --dangerously-skip-permissions --dangerously-load-development-channels server:claude-peersAdd a shell alias to avoid typing it every time:
# ~/.bashrc or ~/.zshrc
alias claudepeers='claude --dangerously-load-development-channels server:claude-peers'The broker daemon starts automatically on first use. No manual daemon management needed.
Requirements
Architecture
┌───────────────────────────┐
│ broker daemon │
│ localhost:7899 + SQLite │
└──────┬───────────────┬────┘
│ │
MCP server A MCP server B
(stdio) (stdio)
│ │
Claude A Claude BMCP Tools Reference
| Tool | Description |
|---|---|
| `list_peers` | Discover other Claude Code instances; scope: `machine`, `directory`, or `repo` |
| `send_message` | Send a message to a peer by ID — delivered instantly via channel push |
| `set_summary` | Set a description of what this instance is working on |
| `check_messages` | Manually poll for messages (fallback without channel mode) |
Example prompts to Claude
List all peers on this machineSend a message to peer abc123: "what files are you editing right now?"Set your summary to: "refactoring the authentication module"Check for any new messages from peersCLI Usage
Inspect and interact with the broker directly from the terminal:
cd ~/claude-peers-mcp
# Show broker status and all registered peers
bun cli.ts status
# List peers in a table
bun cli.ts peers
# Send a message into a specific Claude session
bun cli.ts send <peer-id> "your message here"
# Stop the broker daemon
bun cli.ts kill-brokerConfiguration
Set these environment variables before starting Claude Code:
| Variable | Default | Description |
|---|---|---|
| `CLAUDE_PEERS_PORT` | `7899` | Port the broker listens on |
| `CLAUDE_PEERS_DB` | `~/.claude-peers.db` | Path to the SQLite database |
| `OPENAI_API_KEY` | — | Enables auto-summary via `gpt-4o-mini` on startup |
export CLAUDE_PEERS_PORT=7899
export CLAUDE_PEERS_DB=~/.claude-peers.db
export OPENAI_API_KEY=$OPENAI_API_KEY # optional — enables auto-summaryAuto-Summary Feature
With `OPENAI_API_KEY` set, each instance generates a brief summary on startup describing what you're likely working on (based on working directory, git branch, recent files). Other peers see this in `list_peers` output. Without the key, Claude sets its own summary via `set_summary`.
Common Patterns
Cross-project coordination
Start two sessions in different project directories:
# Terminal 1 — in ~/projects/backend
claudepeers
# Terminal 2 — in ~/projects/frontend
claudepeersAsk Claude in Terminal 1:
List peers scoped to machine, then ask the peer in the frontend project what API endpoints it needsScope-filtered peer discovery
List peers scoped to repoShows only instances running in the same git repository — useful when you have worktrees or split terminals on the same codebase.
Scripted message injection via CLI
# Inject a task into a running Claude session from a shell script
PEER_ID=$(bun ~/claude-peers-mcp/cli.ts peers | grep 'backend' | awk '{print $1}')
bun ~/claude-peers-mcp/cli.ts send "$PEER_ID" "run the test suite and report failures"Polling fallback (no channel mode)
If you launch without `--dangerously-load-development-channels`, Claude can still receive messages by calling `check_messages` explicitly:
Check for any new peer messagesTroubleshooting
**Broker not starting**
# Check if something is already on port 7899
lsof -i :7899
# Kill a stuck broker and restart
bun ~/claude-peers-mcp/cli.ts kill-broker
# Then relaunch Claude Code**Peers not appearing in `list_peers`**
**Messages not arriving instantly**
**Auto-summary not generating**
**Database issues**
# Reset the database entirely (all peers/messages lost)
rm ~/.claude-peers.db
bun ~/claude-peers-mcp/cli.ts kill-broker**MCP server not found after registration**
# Verify registration
claude mcp list
# Re-register if missing
claude mcp add --scope user --transport stdio claude-peers -- bun ~/claude-peers-mcp/server.tsMore tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...