Slack Notifications MCP Server
# ๐ Slack Notifications MCP Server
A powerful **Model Context Protocol (MCP)** server that brings Slack notifications to Claude AI workflows. Perfect for getting notified when long-running tasks complete, errors occur, or when user input is needed.

[](https://modelcontextprotocol.io)
[](https://www.typescriptlang.org/)
## โจ Features
- ๐ฑ **Rich Slack Messages**: Formatted messages with attachments, colors, and fields
- ๐ฏ **Task Completion Notifications**: Specialized notifications for development workflows
- ๐ง **Webhook Configuration**: Easy setup with Slack webhook URLs
- ๐ **Color-Coded Status**: Visual indicators for success, error, warning, and info
- ๐จ **Customizable**: Channel selection, bot username, emojis, and priority levels
- ๐ **Zero Config**: Works with environment variables or runtime configuration
## ๐ ๏ธ Tools
### `send_slack_notification`
Send a customizable Slack notification with full formatting options.
**Parameters:**
- `title` (required): The notification title
- `message` (required): The notification message
- `webhook_url` (optional): Slack webhook URL (if not configured globally)
- `channel` (optional): Target channel (e.g., #general, @username)
- `username` (optional): Bot username (default: "Claude Code")
- `icon_emoji` (optional): Bot emoji (default: ":robot_face:")
- `color` (optional): Message color (good, warning, danger, info, or hex)
- `priority` (optional): Priority level (low, normal, high, urgent)
### `slack_task_completion_notification`
Send a specialized notification for task completion with intelligent formatting.
**Parameters:**
- `status` (required): `success`, `error`, `warning`, or `info`
- `taskType` (optional): Type of task (e.g., "Build", "Deploy", "Test")
- `duration` (optional): How long the task took
- `summary` (optional): Brief summary of accomplishment
- `url` (optional): Related URL (e.g., localhost development server)
- `webhook_url` (optional): Slack webhook URL (if not configured globally)
- `channel` (optional): Target channel
### `configure_slack_webhook`
Configure global Slack webhook settings for the session.
**Parameters:**
- `webhook_url` (required): Your Slack webhook URL
- `default_channel` (optional): Default channel for notifications
## ๐ Quick Start
### 1. Create Slack Webhook
1. **Go to Slack API**: Visit [api.slack.com](https://api.slack.com/apps)
2. **Create New App**: Click "Create New App" > "From scratch"
3. **Configure Incoming Webhooks**:
- Go to "Incoming Webhooks" in the sidebar
- Activate incoming webhooks
- Click "Add New Webhook to Workspace"
- Choose your channel and authorize
- Copy the webhook URL (starts with `https://hooks.slack.com/services/...`)
### 2. Installation
1. **Clone this repository:**
\`\`\`bash
git clone https://github.com/chiuchau-cyril/mcp-slack-notifications.git
cd mcp-slack-notifications
\`\`\`
2. **Install dependencies:**
\`\`\`bash
npm install
\`\`\`
3. **Build the project:**
\`\`\`bash
npm run build
\`\`\`
### 3. Configuration
#### For Claude Code
Add to your Claude Code MCP configuration:
\`\`\`json
{
"mcpServers": {
"slack-notifications": {
"command": "node",
"args": ["/Users/cyril/Documents/git/mcp-servers/slack-notifications/dist/index.js"],
"env": {
"SLACK_WEBHOOK_URL": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
}
}
}
}
\`\`\`
#### For Claude App
Add to your Claude App MCP settings:
\`\`\`json
{
"slack-notifications": {
"command": "node",
"args": ["/Users/cyril/Documents/git/mcp-servers/slack-notifications/dist/index.js"],
"env": {
"SLACK_WEBHOOK_URL": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
}
}
}
\`\`\`
### 4. Testing
Run the test suite to verify everything works:
\`\`\`bash
node test-slack-notifications.js
\`\`\`
## ๐ฑ Usage Examples
### Basic Notification
\`\`\`javascript
// Simple notification
{
"title": "๐ Task Complete",
"message": "Your build finished successfully!",
"channel": "#development",
"color": "good"
}
\`\`\`
### Development Workflow
\`\`\`javascript
// Task completion with details
{
"status": "success",
"taskType": "React Build",
"duration": "2 minutes",
"summary": "Compiled 45 components successfully",
"url": "http://localhost:3000",
"channel": "#dev-notifications"
}
\`\`\`
### Error Notification
\`\`\`javascript
// Error with high priority
{
"title": "โ Build Failed",
"message": "TypeScript compilation errors detected",
"color": "danger",
"priority": "urgent",
"channel": "#alerts"
}
\`\`\`
### Configuration
\`\`\`javascript
// Set up webhook for the session
{
"webhook_url": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
"default_channel": "#claude-notifications"
}
\`\`\`
## ๐ฏ Smart Notification Logic
This MCP server implements the same intelligent notification timing as the macOS version:
### โ ๏ธ **Immediate Notifications** (User Action Required)
- Commands waiting for confirmation (`Do you want to proceed?`)
- Password prompts
- Any user input required
- **Priority**: `urgent` with red color
### โ
**Completion Notifications** (Task Finished)
- Build processes completed
- Tests finished running
- Deployments completed
- **Color**: Green (success) / Red (error) / Orange (warning)
### ๐ **No Notifications**
- Simple queries (`ls`, `pwd`)
- Commands still running normally
- Quick operations (< 30 seconds)
## ๐จ Slack Message Features
### Color Coding
- **Green** (`good`): Success, completed tasks
- **Orange** (`warning`): Warnings, partial failures
- **Red** (`danger`): Errors, critical issues
- **Blue** (`info`): Information, status updates
- **Custom**: Any hex color code (e.g., `#FF5733`)
### Priority Levels
- **Low**: `#cccccc` (gray)
- **Normal**: `#0099cc` (blue)
- **High**: `#ff9500` (orange)
- **Urgent**: `#ff0000` (red)
### Rich Formatting
- **Attachments**: Structured message layout
- **Fields**: Key-value pairs with short/long display
- **Timestamps**: Automatic message timing
- **Footer**: "Claude Code" branding
## ๐ก๏ธ Requirements
- **Node.js 18+**
- **Slack workspace** with webhook permissions
- **Internet connection** for webhook delivery
## ๐งช Environment Variables
Set these for easier configuration:
\`\`\`bash
export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
export SLACK_DEFAULT_CHANNEL="#claude-notifications"
\`\`\`
## ๐ Claude Rules Integration
For automatic notification behavior, add these rules to your Claude configuration:
\`\`\`markdown
# Automatically notify on task completion via Slack
When a task takes longer than 2 minutes or requires user input,
send a Slack notification using the appropriate tool.
# Notification timing:
- User input needed โ Immediate notification with urgent priority
- Task completed โ Result notification with appropriate status
- Errors occurred โ Error notification with danger color
\`\`\`
## ๐ Security Notes
- **Webhook URLs contain secrets** - keep them private
- **Don't commit webhook URLs** to version control
- **Use environment variables** for production deployments
- **Limit webhook permissions** to necessary channels only
## ๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
## ๐ License
MIT License - see [LICENSE](LICENSE) file for details.
## ๐โโ๏ธ Support
- ๐ **Issues**: [GitHub Issues](https://github.com/chiuchau-cyril/mcp-slack-notifications/issues)
- ๐ฌ **Discussions**: [GitHub Discussions](https://github.com/chiuchau-cyril/mcp-slack-notifications/discussions)
- ๐ง **Email**: Contact for enterprise support
## ๐ Related Projects
- [macOS Notifications MCP Server](https://github.com/chiuchau-cyril/mcp-macos-notifications) - Native macOS notifications
- [Model Context Protocol](https://modelcontextprotocol.io) - Official MCP documentation
---
**Made with โค๏ธ for the Claude AI ecosystem**TDQS
Scored across 3 tools
Tools have distinct purposes: configuration, generic notification, and specialized task completion. Minor overlap between send_slack_notification and slack_task_completion_notification, but descriptions clarify the specialization.
All use snake_case with 'slack_' prefix, but 'slack_task_completion_notification' is noun-heavy while others are verb_noun (configure_, send_). Pattern is somewhat inconsistent.
3 tools is on the lower side but appropriate for a focused Slack notification server. Each tool covers a core function without unnecessary bloat.
Basic configuration and sending are covered, including a specialized notification type. However, missing webhook validation, deletion, or listing, which may be needed for full lifecycle management.