Skip to main content
Glama
Slack MCP Server

Slack MCP Server

by rokej

Slack MCP Server

CI

A Model Context Protocol (MCP) server that posts notifications to Slack via an Incoming Webhook. AI agents call tools instead of shelling out to curl.

Features

  • send_message — plain text and optional Block Kit blocks

  • send_payload — pre-built payload object or multi-part array (rate-limit aware)

  • send_markdown — Markdown → Block Kit conversion with Slack size limits and splitting

  • STDIO and SSE transports

  • Works with Claude Code, Cursor, OpenCode, and other MCP clients

Related MCP server: nomos-slack-mcp

Installation

git clone https://github.com/rokej/slack-mcp-server.git
cd slack-mcp-server
pip install -e ".[dev]"

Or install a release wheel:

pip install https://github.com/rokej/slack-mcp-server/releases/download/v0.1.0/slack_mcp_server-0.1.0-py3-none-any.whl

Configuration

Copy .env.example to .env (or export the variable):

export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/T…/B…/…"

Create a webhook at Slack API — Your Apps → Incoming Webhooks.

Usage

# STDIO (default) — for MCP clients
slack-mcp-server

# SSE transport
slack-mcp-server --transport sse --port 8080

Claude Code / Cursor / OpenCode

{
  "mcpServers": {
    "slack-webhook": {
      "command": "slack-mcp-server",
      "env": {
        "SLACK_WEBHOOK_URL": "${SLACK_WEBHOOK_URL}"
      }
    }
  }
}

In Agent Swarm, add Slack Webhook from the workspace MCP catalog — Swarmer injects SLACK_WEBHOOK_URL into sandboxes.

Agent container images

Pin a release wheel the same way as jira-mcp-server:

ARG SLACK_MCP_VERSION=0.1.0
RUN curl -fsSL -o /tmp/slack_mcp_server-${SLACK_MCP_VERSION}-py3-none-any.whl \
      "https://github.com/rokej/slack-mcp-server/releases/download/v${SLACK_MCP_VERSION}/slack_mcp_server-${SLACK_MCP_VERSION}-py3-none-any.whl" \
    && python3 -m pip install --no-cache-dir /tmp/slack_mcp_server-*.whl \
    && rm -f /tmp/slack_mcp_server-*.whl \
    && slack-mcp-server --help | head -5

Tools

Tool

Purpose

send_message

Post plain text + optional Block Kit blocks

send_payload

Post a pre-built JSON payload (object or array)

send_markdown

Convert Markdown to Block Kit and send

Development

pip install -e ".[dev]"
make test
make lint

Releasing

  1. Bump version in pyproject.toml and __version__ in slack_mcp_server/__init__.py

  2. Commit, then tag and push:

    git tag v0.1.0
    git push origin v0.1.0
  3. The Release workflow builds slack_mcp_server-X.Y.Z-py3-none-any.whl and attaches it to the GitHub Release

License

Apache License 2.0 — see LICENSE.

Available Tools

3 tools
send_markdownA

Convert Markdown to Slack Block Kit and send via Incoming Webhook.

Handles headings, dividers, code blocks, tables (bullets when links are present), mrkdwn inline formatting, Slack size limits, and multi-part splitting with (n/m) sequence headers.

Inputs: markdown (required), footer, fallback_text, include_default_footer. Returns: object

send_messageB

Post a Slack message via Incoming Webhook.

Inputs: text (required), blocks. Returns: object

send_payloadA

Post a pre-built Slack webhook payload (object or array of objects).

Same contract as send_to_slack.sh: a single payload object, or an array for multi-part messages (1s spacing between parts, 429 retry).

Inputs: payload (required). Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 3 tools

    Disambiguation3/5

    The three tools are all variations of sending messages to Slack, which creates some overlap. send_payload and send_message especially could be confused, though send_markdown is clearly distinct. The descriptions help clarify input format differences, but the boundaries are not fully crisp.

    Naming Consistency5/5

    All tool names follow a consistent send_verb_noun pattern: send_payload, send_markdown, send_message. This makes the set predictable and easy to navigate.

    Tool Count5/5

    With only 3 tools, the server is tightly scoped to its purpose of sending Slack messages via webhook. Each tool covers a distinct input format, and there are no redundant or unnecessary tools.

    Completeness5/5

    For the stated domain of sending Slack messages via incoming webhooks, the server covers all major input formats: raw payload, markdown, and plain message. There are no obvious gaps for this narrow scope, though full Slack API features like reading messages are intentionally excluded.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server for Slack workspace integration. This server allows AI assistants to interact directly with your Slack workspace, providing tools to manage channels, send messages, list users, and upload files.
      53,813 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server that exposes Slack Web API operations as tools, enabling users to list conversations, read history, post messages, and call any Slack Web API method.
      156 npm
      MIT