What Is Slack MCP Server?
Slack MCP Server connects Claude to your Slack workspace, enabling read and write operations including message search, channel reading, and posting. It is maintained by Anthropic as part of the official modelcontextprotocol/servers monorepo.
Quick Facts
| Field | Value |
|---|---|
| Package | @modelcontextprotocol/server-slack |
| Install | npx @modelcontextprotocol/server-slack |
| Compatible with | Claude Desktop, Claude Code |
| Status | Active |
| GitHub | github.com/modelcontextprotocol/servers/tree/main/src/slack |
What You Can Do With It
- Search messages: Query message history across channels to find specific discussions or decisions.
- Read channels: Pull recent messages from a given channel into your Claude context for summarization or analysis.
- Post updates: Send messages to channels or users directly from a Claude session.
- Send team notifications: Trigger Slack notifications as part of an automated workflow or Claude-driven task.
How to Set It Up
Prerequisites: You need a Slack app with a Bot Token (xoxb-...) that has been installed to your workspace. At minimum, grant the bot the channels:read, channels:history, chat:write, and search:read OAuth scopes. The bot must be invited to any channel it needs to access.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token-here",
"SLACK_TEAM_ID": "T0123456789"
}
}
}
}
**Claude Code (`.claude/mcp.json`):**
```json
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token-here",
"SLACK_TEAM_ID": "T0123456789"
}
}
}
}
Replace SLACK_BOT_TOKEN with your actual bot token and SLACK_TEAM_ID with your workspace’s team ID (found in your Slack workspace URL or admin panel). Restart Claude Desktop or reload the MCP server after editing.
Works Best With
This server is documented as compatible with both Claude Desktop and Claude Code. Claude Desktop is the straightforward choice for interactive use — reading channels and posting one-off updates during a conversation. Claude Code is well-suited when you want Slack operations embedded in a development workflow, such as posting build summaries or notifying a channel after a code task completes.
Known Limitations
- Authentication is required: The server will not start without a valid
SLACK_BOT_TOKENandSLACK_TEAM_ID. Token errors surface at runtime, not at install time. - Bot must be invited: The bot cannot read or post in channels it hasn’t been added to, even with broad OAuth scopes.
- Slack API rate limits apply: The Slack Web API enforces tier-based rate limits. Heavy message search or bulk reads can hit these limits; the server does not implement retry logic beyond what the underlying API client provides.
- No DM initiation by default: Sending direct messages to users may require additional OAuth scopes (
im:write) not granted by a minimal setup. - Private channels: Accessing private channels requires the bot to be explicitly invited and may need additional scopes (
groups:read,groups:history). - No real-time event streaming: This server uses the Slack Web API, not the Events API or WebSocket mode, so it cannot receive or react to incoming messages in real time.
Community Resources
- GitHub Issues — modelcontextprotocol/servers — file bugs or check existing reports specific to the Slack server
- GitHub Source — src/slack — review the implementation, available tools, and open PRs
- r/ClaudeAI on Reddit — community discussion including MCP server integrations
- Anthropic Discord —
#mcpchannels for real-time help and setup questions



