Skip to main content
Glama
Chiuchau-Inc

Slack Notifications MCP Server

by Chiuchau-Inc

๐Ÿš€ 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.

Slack Notification Example MCP Compatible TypeScript

โœจ 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

Related MCP server: Discord Notification MCP Server

๐Ÿ› ๏ธ 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

  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 file for details.

๐Ÿ™‹โ€โ™‚๏ธ Support


Made with โค๏ธ for the Claude AI ecosystem

Available Tools

3 tools
configure_slack_webhookB

Configure global Slack webhook URL for notifications

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_urlYesSlack webhook URL to configure globally
default_channelNoDefault channel for notifications

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description does not disclose side effects like overwriting existing webhook or persistence requirements, leaving behavioral understanding incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no redundant information. Could benefit from slightly more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple configuration tool, but missing mention of output or confirmation of configuration. With no output schema, description could explain return behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds no extra meaning beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'configure' and resource 'global Slack webhook URL'. Distinguishes from siblings by being the setup step versus sending notifications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied that this is for configuration before sending notifications, but no explicit when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_slack_notificationB

Send a Slack notification via webhook

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoColor for the message attachmentinfo
titleYesThe notification title
channelNoSlack channel to send to (e.g., #general, @username)
messageYesThe notification message
priorityNoNotification priority levelnormal
usernameNoBot username for the messageClaude Code
icon_emojiNoEmoji icon for the bot (e.g., :robot_face:):robot_face:
webhook_urlNoSlack webhook URL (optional if configured globally)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the tool sends via webhook, omitting details about error handling, default webhook URL, idempotency, or required authentication. The description adds little beyond the schema's parameter descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence, 5 words) and immediately states the tool's function. While minimal, it is not verbose; fits the tool's straightforward nature.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters, no annotations, and no output schema, the description is insufficiently complete. It does not explain the return value, behavior when webhook URL is omitted, or how to interpret the 'color' and 'priority' parameters in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 8 parameters. The description does not add additional meaning beyond what the schema already provides, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Send a Slack notification via webhook' clearly states the action and resource, distinguishing it from sibling tools such as 'configure_slack_webhook' (configure vs. send) and 'slack_task_completion_notification' (task-specific vs. generic).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like 'slack_task_completion_notification' or prerequisites such as having a configured webhook. The purpose is implied but not contrasted with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slack_task_completion_notificationC

Send a specialized Slack notification for task completion

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoOptional URL related to the task (e.g., localhost link)
statusYesStatus of the completed task
channelNoSlack channel to send to (optional)
summaryNoBrief summary of what was accomplished
durationNoHow long the task took (e.g., "5 minutes", "30 seconds")
taskTypeNoType of task that was completed (e.g., "Build", "Deploy", "Test")
webhook_urlNoSlack webhook URL (optional if configured globally)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden, but it only repeats the basic purpose. It fails to disclose side effects, authentication needs, rate limits, or any behavioral traits beyond sending a notification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise but lacks structure. It could be improved without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters and no output schema, the description should provide more context on what 'specialized' means and what the notification includes. It is too vague for an AI agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The tool description adds no additional meaning; baseline of 3 is appropriate as the schema handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends a Slack notification for task completion, distinguishing it from the generic send_slack_notification sibling. However, 'specialized' lacks specificity about what makes it different.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this vs. siblings. The description does not mention prerequisites, alternatives, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.0
    • First observedconfigure_slack_webhook
    • First observedsend_slack_notification
    • First observedslack_task_completion_notification

TDQS

B3.1/5.0
Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count4/5

3 tools is on the lower side but appropriate for a focused Slack notification server. Each tool covers a core function without unnecessary bloat.

Completeness3/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude Code to send Telegram notifications when tasks complete, errors occur, or user intervention is needed. Runs serverless on Cloudflare Workers with support for formatted messages and flexible chat targeting.
    16
    22
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude Code to send notifications to Discord channels via webhooks when tasks complete, errors occur, or user intervention is needed. Deployed serverlessly on Cloudflare Workers with support for rich message formatting and embeds.
    8
    MIT
  • F
    license
    A
    quality
    Not graded
    maintenance
    Enables two-way communication between Claude and Slack for posting messages, managing threads, and handling files. It specifically supports asynchronous workflows by allowing Claude to poll for remote user replies and send task notifications.
    9
    -

Latest Blog Posts

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/Chiuchau-Inc/mcp-slack-notifications'

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