Pusher Channels MCP Server
An MCP (Model Context Protocol) server that gives AI agents the ability to send realtime messages, query channels, and manage users through Pusher Channels.
Tools
| 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 |
Prerequisites
- Node.js 18 or later
- A Pusher Channels account (free tier available)
Installation
npm install -g @crashbytes/pusher-mcp-server
Or clone and build from source:
git clone https://github.com/CrashBytes/pusher-mcp-server.git
cd pusher-mcp-server
npm install
npm run build
Configuration
You 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) |
Usage with Claude Desktop
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"
}
}
}
}
Usage with Claude Code
claude mcp add pusher -- node /path/to/pusher-mcp-server/build/index.js
Set the environment variables in your shell before running, or configure them in your Claude Code MCP settings.
Example Prompts
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"
Development
npm install
npm run dev # Run with tsx (hot reload)
npm run build # Compile TypeScript
npm run type-check # Check types without emitting
Tutorial
For a step-by-step guide on building this server from scratch, see the full tutorial on CrashBytes.
License
MIT