An MCP (Model Context Protocol) server that gives AI agents the ability to send realtime messages, query channels, and manage users through Pusher Channels.
| Tool | Description |
|---|---|
trigger_event |
Send an event to one or more channels |
trigger_batch_events |
Send up to 10 events in a single API call |
list_channels |
List active channels with optional prefix filter |
get_channel_info |
Get subscription/user count for a channel |
get_presence_users |
List users connected to a presence channel |
authorize_channel |
Generate auth tokens for private/presence channels |
terminate_user_connections |
Disconnect all connections for a user |
- Node.js 18 or later
- A Pusher Channels account (free tier available)
npm install -g @crashbytes/pusher-mcp-serverOr clone and build from source:
git clone https://github.com/CrashBytes/pusher-mcp-server.git
cd pusher-mcp-server
npm install
npm run buildYou need four environment variables from your Pusher dashboard:
| Variable | Description |
|---|---|
PUSHER_APP_ID |
Your Pusher app ID |
PUSHER_KEY |
Your Pusher app key |
PUSHER_SECRET |
Your Pusher app secret |
PUSHER_CLUSTER |
Your Pusher cluster (e.g. us2, eu, ap1) |
Add the following to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pusher": {
"command": "node",
"args": ["/path/to/pusher-mcp-server/build/index.js"],
"env": {
"PUSHER_APP_ID": "your_app_id",
"PUSHER_KEY": "your_app_key",
"PUSHER_SECRET": "your_app_secret",
"PUSHER_CLUSTER": "us2"
}
}
}
}If installed globally via npm:
{
"mcpServers": {
"pusher": {
"command": "pusher-mcp-server",
"env": {
"PUSHER_APP_ID": "your_app_id",
"PUSHER_KEY": "your_app_key",
"PUSHER_SECRET": "your_app_secret",
"PUSHER_CLUSTER": "us2"
}
}
}
}claude mcp add pusher -- node /path/to/pusher-mcp-server/build/index.jsSet the environment variables in your shell before running, or configure them in your Claude Code MCP settings.
Once configured, you can ask Claude things like:
- "Send a 'deploy-complete' event to the notifications channel with the message 'v2.1.0 deployed'"
- "Show me all active presence channels"
- "How many users are on the presence-lobby channel?"
- "Disconnect user abc123 from all channels"
npm install
npm run dev # Run with tsx (hot reload)
npm run build # Compile TypeScript
npm run type-check # Check types without emittingFor a step-by-step guide on building this server from scratch, see the full tutorial on CrashBytes.
MIT