Slack MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Slack MCP Server send a message to #general saying hello team"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Slack MCP Server
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 Kitblockssend_payload— pre-built payload object or multi-part array (rate-limit aware)send_markdown— Markdown → Block Kit conversion with Slack size limits and splittingSTDIO 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.whlConfiguration
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 8080Claude 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 -5Tools
Tool | Purpose |
| Post plain text + optional Block Kit blocks |
| Post a pre-built JSON payload (object or array) |
| Convert Markdown to Block Kit and send |
Development
pip install -e ".[dev]"
make test
make lintReleasing
Bump
versioninpyproject.tomland__version__inslack_mcp_server/__init__.pyCommit, then tag and push:
git tag v0.1.0 git push origin v0.1.0The Release workflow builds
slack_mcp_server-X.Y.Z-py3-none-any.whland attaches it to the GitHub Release
License
Apache License 2.0 — see LICENSE.
Available Tools
3 toolssend_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
Scored across 3 tools
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.
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.
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.
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
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Hosted Slack MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA 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 npm1MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables AI agents to read and write Slack messages as the user, not as a bot, using Slack user tokens for authentic actions across multiple workspaces.101MIT
- AlicenseAqualityDmaintenanceMCP server for sending messages to Slack channels and replying in threads, with automatic channel name resolution and support for Claude Desktop and KADI agents.2MIT
- AlicenseNot gradedqualityCmaintenanceMCP 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 npmMIT