Skip to main content
Glama

Slack Notify MCP

README.md5.08 kB
# Slack Webhook MCP Server A Model Context Protocol (MCP) server for posting messages to Slack via webhooks or bot tokens. ## Features - **Two modes of operation**: Webhooks or Bot API - Post messages to Slack channels - Support for channel overrides - Configurable bot username and emoji - Slack-specific mention support (`<!channel>`, `<!here>`, `<@USERID>`) - Comprehensive error handling and validation ## Installation ```bash bun install ``` ## Setup ### Option 1: Webhook Mode (Simple) 1. **Create a Slack App and Webhook**: - Go to [Slack API Apps](https://api.slack.com/apps) - Create a new app or select an existing one - Navigate to "Incoming Webhooks" - Enable incoming webhooks - Add a new webhook to your workspace - Copy the webhook URL (format: `https://hooks.slack.com/services/T.../B.../...`) 2. **Configure MCP Client**: ```json { "mcpServers": { "slack-webhook": { "command": "bun", "args": [ "run", "src/index.ts", "--webhook-url", "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK", "--channel", "#general" ], "cwd": "/path/to/slack-webhook-mcp-server" } } } ``` ### Option 2: Bot Token Mode (Advanced) 1. **Create a Slack App with Bot Token**: - Go to [Slack API Apps](https://api.slack.com/apps) - Create a new app or select an existing one - Go to "OAuth & Permissions" - Add bot token scopes: `chat:write`, `chat:write.public` - Install app to workspace - Copy the "Bot User OAuth Token" (starts with `xoxb-`) 2. **Get Channel IDs**: - Right-click on channel in Slack → "View channel details" → Copy channel ID - Or use Slack API to list channels 3. **Configure MCP Client**: ```json { "mcpServers": { "slack-bot": { "command": "bun", "args": [ "run", "src/index.ts", "--bot-token", "xoxb-YOUR-BOT-TOKEN", "--channel", "CXXXXXXXXXX", "--username", "MCP Bot" ], "cwd": "/path/to/slack-webhook-mcp-server" } } } ``` ## Usage ### Command Line Arguments **Webhook Mode:** - `--webhook-url <url>` - Slack webhook URL (required) - `--channel <channel>` - Default channel name (optional, e.g., "#general") **Bot Mode:** - `--bot-token <token>` - Slack bot token (required, starts with `xoxb-`) - `--channel <channel>` - Default channel ID (required, e.g., "CXXXXXXXXXX") **Common Options:** - `--username <username>` - Default bot username (optional) - `--icon-emoji <emoji>` - Default bot emoji (optional, e.g., ":robot_face:") - `--help` - Show help message ### Examples **Webhook Mode:** ```bash bun run src/index.ts \ --webhook-url "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX" \ --channel "#general" \ --username "Assistant" ``` **Bot Mode:** ```bash bun run src/index.ts \ --bot-token "xoxb-YOUR-BOT-TOKEN" \ --channel "CXXXXXXXXXX" \ --username "Assistant" ``` ### Available Tools #### `post_slack_message` Post a message to your configured Slack integration. **Parameters:** - `message` (required): The message content to send (max 4000 characters) - `channel` (optional): Channel to post to (overrides default) - Webhook mode: Channel name (e.g., "#random") - Bot mode: Channel ID (e.g., "CXXXXXXXXXX") - `username` (optional): Override the default username for this message - `icon_emoji` (optional): Override the default emoji for this message **Example usage in MCP client:** ``` Please post "Hello from MCP!" to the general channel ``` ## Mode Comparison | Feature | Webhook Mode | Bot Mode | |---------|-------------|----------| | **Setup** | Simple | Requires OAuth setup | | **Channel Reference** | Names (#general) | IDs (CXXXXXXXXXX) | | **Permissions** | Limited to webhook channel | Configurable scopes | | **Rate Limits** | Higher | Standard API limits | | **Features** | Basic messaging | Full API access | | **Authentication** | URL-based | Token-based | ## Slack-Specific Features ### Mentions - User mention: `<@U1234567890>` - Channel notification: `<!channel>` - Here notification: `<!here>` ### Channel References - **Webhook mode**: Use `#channel-name` format - **Bot mode**: Use channel IDs like `CXXXXXXXXXX` ## Development ### Scripts - `bun run start` - Start the server - `bun run dev` - Start with file watching - `bun run build` - Build for production ### Project Structure ``` slack-webhook-mcp-server/ ├── package.json # Dependencies and scripts ├── src/ │ └── index.ts # Main server implementation ├── types/ │ └── slack.ts # TypeScript types and schemas └── README.md # This file ``` ## Error Handling The server includes comprehensive error handling for: - Invalid webhook URLs and bot tokens - Network connectivity issues - Slack API errors (different handling for webhook vs bot) - Message length validation (4000 char limit) - Channel ID validation (bot mode) - Malformed requests ## License MIT

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/SilasReinagel/slack-notify-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server