Slack MCP Server
Slack is where teams communicate. The Slack MCP Server lets AI agents read channels, execute commands, and integrate team workflows directly from your IDE.
The Slack MCP Server turns your team’s communication hub into an integration point for AI agents. Instead of context-switching between your IDE and Slack, your AI assistant can read channel discussions, search messages, and trigger workflows directly from Claude Code, Cursor, or Claude Desktop.
What the Slack MCP Server Does
The Slack MCP Server implements the Model Context Protocol, a standardized interface that bridges AI agents with your Slack workspace. It exposes core Slack capabilities—message search, sending messages, reading history, canvas management, and user profile access—through tools your AI assistant can call natively.
The official implementation is maintained by Slack and runs on their hosted endpoint at mcp.slack.com/. It works with MCP-compatible clients such as Claude Code, Claude Desktop, Cursor, and others. Support and features vary by client. A community-maintained implementation (korotovsky/slack-mcp-server, ~1.4k stars as of publication) also exists for teams who want to self-host or need additional features.
This is particularly useful for teams doing agentic development. Instead of manually summarizing discussions or searching through threads, your AI agent can do it automatically—perfect for pulling team context into development workflows or automating notification and alert patterns.
Installation
Prerequisites
- Active Slack workspace with admin approval (critical: workspace admins must explicitly approve MCP integration)
- Registered Slack app (directory-published or internal; Slack’s MCP policy prohibits unlisted apps from integrating — only directory-published or internal apps can use MCP)
- OAuth-compatible MCP client (Claude Code, Claude Desktop, Cursor, etc.)
- Network access to
https://mcp.slack.com/
Official Plugin Method (Claude Code)
If using Claude Code, open Plugins → Marketplace and search for Slack, then install. Alternatively, use the CLI command:
claude plugin install slack
The system auto-configures and prompts for OAuth authentication. No local installation needed. See the Slack official plugin repository for details.
Claude Desktop Setup
- Open Settings → Customize → Connectors
- Click the plus icon, select Slack
- Complete the OAuth flow
Full setup instructions in the Slack developer docs for Claude Desktop.
Manual / Self-Hosted (Community Server)
If self-hosting or using a community implementation, install locally:
npx -y @modelcontextprotocol/server-slack
Note: This installs the community-maintained reference implementation locally, not the Slack-hosted endpoint. See the community repository README for configuration steps.
Security & Data Handling
Before enabling Slack MCP integration, understand the data flow and access implications.
Data Flow & Logging
- Slack-hosted endpoint (
mcp.slack.com): Message contents are processed by Slack’s infrastructure. Review Slack’s data retention policies and audit logging capabilities for your workspace tier. - Self-hosted community servers: Messages flow through your own infrastructure. You control logging and retention, but must secure token storage and API access yourself.
Access Control & Permissions
- Admin approval is workspace-scoped. The approving admin determines which OAuth scopes the app receives. Review Slack OAuth scopes documentation to understand what each scope allows.
- User tokens (xoxp-) grant access to all channels the authenticating user can see. Bot tokens (xoxb-) are limited to channels the bot is explicitly invited to—use bot tokens for least-privilege access where possible.
Token Strategy & Privacy
- Prefer limited user tokens with only required scopes. Avoid granting
channels:writeorchat:writeunless write operations are essential. - Consider ephemeral sessions for sensitive workflows—re-authenticate per session rather than storing long-lived tokens.
- For Enterprise Grid workspaces, verify compliance requirements with your security team before enabling third-party MCP integrations.
Practical Mitigations
- Enforce workspace policies that restrict which apps can be installed and which channels they can access.
- Use Marketplace-approved apps when available—they undergo Slack’s app review process and offer predictable rate limits and security guarantees.
- Audit which channels the MCP integration can read. Remove access to channels containing sensitive internal discussions.
Available Slack MCP Server Tools
- Search Messages: Full-text search across your workspace (with date, user, content filtering)
- Send Messages: Post to channels, direct messages, and group DMs
- Read History: Fetch complete channel message history and thread conversations
- Reply to Threads: Send targeted responses to specific threads
- Reactions: Add or remove emoji reactions to messages
- Canvas Management: Create, update, and export Slack canvases as markdown
- User Profiles: Fetch user information with custom fields and statuses
- Channel Metadata: List and retrieve channel information
Example Usage
Scenario: You’re in Claude Code debugging a feature when questions arise about the original design decision. Instead of switching to Slack:
You: "Summarize the last week of discussion about authentication in #architecture"
Claude: [uses search_messages tool with date filter]
Result: Claude retrieves and summarizes 5 key threads, providing immediate context without leaving your IDE
Limitations & Gotchas
The Slack MCP Server has real limitations worth understanding.
Token Expiry (1-hour) with No Refresh
In the Claude Code client, the hosted Slack MCP implementation issues tokens that expire after 1 hour with no refresh mechanism (GitHub #29257). This forces re-authentication via browser every hour—a frustrating UX for long-running sessions. Behavior may differ for self-hosted community implementations or future updates.
Admin Approval Gate
Workspace admins must explicitly approve MCP integration before any access is possible. This adds setup friction for teams with strict governance.
Write Operations Disabled by Default
In the community reference implementation, message posting and reactions are disabled by default for safety. Enable them via the environment variable SLACK_MCP_ADD_MESSAGE_TOOL—see the repository README for safe setup steps.
Rate Limits Apply
Standard Slack API rate limits enforce 1 request per second baseline. Recent May 2025 rate-limit changes reduced conversations.history and conversations.replies to 1 request per minute for non-Marketplace apps—a critical constraint for high-volume agent workflows. For agentic use, plan for caching, batching, and exponential backoff—these endpoints are the common choke points.
Bot Tokens Can’t Search
If you’re using a bot token (xoxb-), search functionality is unavailable. You need a user token (xoxp-).
Other Issues
No Dynamic Client Registration support, occasional SSE redirect failures (GitHub #23468), startup rate-limiting on Enterprise Grid workspaces, and cache initialization failures.
Compared to Alternatives
Direct Slack Web API
Gives you granular control and token refresh support, but requires writing custom integration code. Better for scheduled workflows or legacy systems. Not optimized for AI agents.
Incoming Webhooks
Simple one-way messaging with zero authentication overhead. Works for notifications (CI/CD, monitoring), but can’t read, search, or act agentic. Dead end for agent workflows.
Slack MCP is best for: AI agents in IDEs needing seamless Slack integration. Direct API for custom logic. Webhooks for simple notifications only.
Our Take
Best for: Teams building agentic workflows who want team context available in their IDE without context-switching. Particularly valuable for large engineering teams where Slack discussions drive architecture decisions.
Skip if: Your use case is simple notifications (use webhooks instead) or you need custom Slack integrations with complex logic (use Direct API).
Why these ratings:
- Documentation (8/10): Slack’s official docs are clear and comprehensive, with well-documented OAuth flows and scope requirements.
- Reliability (7/10): Solid implementation, but 1-hour token expiry and rate-limit constraints impact real-world use for long-running agentic sessions.
- Usefulness (8/10): Exceptionally valuable for agentic IDE workflows where team context matters; less useful for simple notification use cases.
- Overall (7/10): Strong tool for its intended use case, held back by auth friction and token management overhead. If token refresh were supported, this would be a 9/10.
Read more about What is an MCP Server to understand how Slack fits into your agentic stack. See also Claude Code Features and AI Agents vs Automation for workflow context.
Sources:
- Slack API: MCP Overview
- Slack Developer: Connect to Claude
- GitHub: slackapi/slack-mcp-plugin
- GitHub: korotovsky/slack-mcp-server
- GitHub Issue #29257: Token Expiry
- GitHub Issue #23468: SSE Redirect
- Slack API: Rate Limits
- Slack Changelog: May 2025 Rate Limit Changes
- Slack OAuth Scopes Documentation
- Slack OAuth Installation Guide