Provides tools and resources to interact with Slack's API, including managing channels, sending and updating messages with Block Kit support, managing users and files, and handling message reactions.
Click on "Install 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 ServerSummarize the recent activity in the #engineering channel"
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
An MCP (Model Context Protocol) server that exposes the Slack API, enabling AI agents (Claude, Cursor, etc.) to interact with Slack directly.
Provides 20 tools and 2 resources with focused Slack API coverage.
Features
20 MCP Tools — channels, messages, users, files, and reactions
2 MCP Resources —
slack://channelsandslack://usersfor workspace discoveryRate Limit Handling — automatic retry with
Retry-Afterbackoff via slack_sdk built-in handlersSafety Controls — channel whitelist for message-sending restrictions, write tools disabled by default
Conditional Tool Registration — search tools auto-disabled when User Token is not provided
Block Kit Support — all message tools accept Block Kit JSON
Multiple Transports — stdio (default), SSE, and streamable-http
Docker Support — production-ready Dockerfile included
Requirements
Python >= 3.10
uv (recommended) or pip
Slack Bot Token (
xoxb-...) — requiredSlack User Token (
xoxp-...) — optional, enables search features
Installation
Configuration
Edit the .env file and fill in your tokens:
Variable | Required | Description |
| Yes | Bot token ( |
| No | User token ( |
| No | Log level: |
| No | Comma-separated channel IDs to restrict message sending (e.g., |
Safety Controls
Channel Whitelist: When SLACK_MCP_ALLOWED_CHANNELS is set, message-sending tools (send_message, reply_to_thread, update_message) are restricted to the listed channels only.
Slack App Permissions (Bot Token Scopes)
The Bot Token requires the following OAuth scopes:
Scope | Purpose |
| List and view channel info |
| Read channel message history |
| View private channels |
| Read private channel history |
| Send and update messages |
| View direct messages |
| Read DM history |
| Open DMs |
| View group DMs |
| Read group DM history |
| View user info |
| Look up users by email |
| View user profiles |
| View reactions |
| Add reactions |
| View files |
| Upload files |
Additional scope required for User Token:
Scope | Purpose |
| Search messages and files |
Usage
stdio (default)
SSE transport
Streamable HTTP transport
Docker
To restrict channels:
MCP Client Configuration
Claude Desktop
Add to claude_desktop_config.json:
Claude Code
Add to .mcp.json:
Development
Available Tools (20)
Channels (6)
Tool | Description |
| List channels (with cursor pagination support) |
| Get channel details |
| Read channel message history |
| List channel members (with cursor pagination support) |
| Summarize recent activity (resolved names + threads) |
| Open a DM conversation |
Messages (5)
Tool | Description |
| Send a message (supports Block Kit) |
| Reply to a thread (supports Block Kit) |
| Get thread replies |
| Update a message (supports Block Kit) |
| Search messages (requires User Token) |
Users (4)
Tool | Description |
| List users (with cursor pagination support) |
| Get user details (cached) |
| Get user profile |
| Look up a user by email |
Files (3)
Tool | Description |
| List files (with page-based pagination) |
| Upload a file |
| Search files (requires User Token) |
Reactions (2)
Tool | Description |
| Add an emoji reaction |
| Get all reactions on a message |
MCP Resources
URI | Description |
| CSV list of all channels (id, name, is_private, num_members) |
| CSV list of all users (id, name, real_name, is_bot, deleted) |
Project Structure
License
MIT - see LICENSE for details.