TL;DR - Slack MCP Quick Start
Let AI communicate with your team - Send messages and search Slack with natural language.
🆕 2025: Slack now has official MCP server support! Slack’s native AI includes channel recaps, thread summaries, and AI-powered workflows. For an introduction to MCP, see the MCP Introduction guide.
Quick Setup:
- Create Slack App: Go to api.slack.com/apps
- Get Bot Token: Copy token starting with
xoxb- - Add config:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here",
"SLACK_TEAM_ID": "T01234567"
}
}
}
}
What you can do:
- 💬 Send: Post messages to any channel
- 🔍 Search: Find messages across workspace
- 📋 List: Browse channels and members
- 📖 Read: View conversation history
- 📌 React: Add emoji reactions
Example conversation:
You: Post to #dev-team: "Just deployed v2.0! 🚀
Please test the new auth flow."
Claude: Posted to #dev-team:
"Just deployed v2.0! 🚀 Please test the new auth flow."
Message sent successfully!
💡 Note: Messages appear from your Slack App bot, not your personal account.
🤖 Official MCP: Slack developed their MCP server in collaboration with Anthropic (available since summer 2024).
Why Slack + AI?
Slack is where teams communicate. AI integration supercharges it:
| Manual Slack | With Slack MCP |
|---|---|
| Type and send messages | ”Post update to engineering channels” |
| Search through history | ”Find discussions about the auth bug” |
| Check multiple channels | ”Summarize what happened in #dev today” |
| Copy-paste to share | ”Share these results in #analytics” |
Use Cases
| Who | How They Use It |
|---|---|
| Developers | Post deployment notifications, share updates |
| Managers | Announce decisions, gather feedback |
| Analysts | Share reports automatically |
| Teams | Cross-post important updates |
| Support | Escalate issues to specific channels |
For more productivity tips, see the AI for Everyday Productivity guide.
2025 Native Slack AI Features
| Feature | Description |
|---|---|
| Channel Recaps | AI summaries of channel discussions |
| Thread Summaries | Quick overviews of lengthy threads |
| AI Search | Natural language search across chats |
| AI Workflow Builder | Generative AI steps in automations |
| Einstein Copilot | Salesforce CRM insights in Slack |
Prerequisites
1. Create a Slack App
- Go to api.slack.com/apps
- Click “Create New App”
- Choose “From scratch”
- Enter:
- App Name: “Claude MCP” (or your preference)
- Workspace: Select your workspace
- Click “Create App”
2. Configure Permissions
Navigate to OAuth & Permissions and add these Bot Token Scopes:
Essential Scopes:
| Scope | Allows |
|---|---|
channels:read | List public channels |
channels:history | Read public channel messages |
chat:write | Send messages |
users:read | List users |
Optional Scopes:
| Scope | Allows |
|---|---|
channels:join | Join public channels |
groups:read | List private channels (if added) |
groups:history | Read private channel messages |
im:read | List DM conversations |
im:history | Read DM messages |
reactions:write | Add emoji reactions |
search:read | Search messages |
3. Install App to Workspace
- Go to Install App section
- Click “Install to Workspace”
- Review and approve permissions
- Copy the Bot User OAuth Token (starts with
xoxb-)
4. Get Team ID
Find your Slack Team ID:
- Open Slack in browser
- URL contains:
app.slack.com/client/T01234567/... - The
T01234567part is your Team ID
Or ask AI after setup: “What’s my Slack team ID?“
5. Add Bot to Channels
The bot needs to be in channels to access them:
- Go to the channel in Slack
- Type
/invite @your-bot-name - Or click channel settings → Integrations → Add apps
Installation & Configuration
Claude Desktop Setup
Add to claude_desktop_config.json:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-1234567890-xxxxx",
"SLACK_TEAM_ID": "T01234567"
}
}
}
}
Cursor Setup
Add to .cursor/mcp.json:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token",
"SLACK_TEAM_ID": "T01234567"
}
}
}
}
Verify Installation
Restart your AI client and test:
You: List the Slack channels I have access to
Claude: Here are your accessible Slack channels:
| Channel | Members | Description |
|----------------|---------|--------------------------|
| #general | 45 | Company-wide updates |
| #dev-team | 12 | Engineering discussions |
| #random | 45 | Fun and off-topic |
| #deployments | 8 | Deploy notifications |
Available Tools
Messaging
| Tool | Description | Example Prompt |
|---|---|---|
send_message | Post to a channel | ”Send ‘deployed!’ to #dev” |
reply_to_thread | Reply in a thread | ”Reply with the fix details” |
add_reaction | Add emoji reaction | ”React with 👍 to that message” |
Reading & Search
| Tool | Description | Example Prompt |
|---|---|---|
get_channel_history | Read recent messages | ”What’s new in #dev-team?” |
search_messages | Search workspace | ”Find messages about ‘bug fix‘“ |
get_thread_replies | Read thread | ”Show replies to that message” |
Channels & Users
| Tool | Description | Example Prompt |
|---|---|---|
list_channels | List all channels | ”What channels exist?” |
get_channel_info | Channel details | ”Tell me about #engineering” |
list_users | List workspace members | ”Who’s in this workspace?” |
get_user_info | User details | ”What’s Sarah’s title?” |
Practical Workflows
Workflow 1: Deployment Notifications
Automate deployment announcements. For more on AI-powered workflows, see the AI-Powered Workflows guide.
You: Post a deployment notification to #deployments:
- Service: Auth API
- Version: 2.1.0
- Changes: Fixed login timeout, added MFA support
- Status: Successful
Claude: Posted to #deployments:
🚀 **Deployment Complete**
**Service:** Auth API
**Version:** 2.1.0
**Status:** ✅ Successful
**Changes:**
• Fixed login timeout issue
• Added MFA support
_Please monitor for any issues._
Workflow 2: Standup Summary
Share meeting summaries:
You: Post our standup summary to #dev-team:
- Alice: Working on auth bug, needs code review
- Bob: Finishing API docs, blocked on design specs
- Carol: Starting new feature sprint
Claude: Posted to #dev-team:
📋 **Daily Standup - Dec 24**
👤 **Alice**
• Working on: Auth bug fix
• Needs: Code review
👤 **Bob**
• Working on: API documentation
• Blocked: Waiting for design specs
👤 **Carol**
• Starting: New feature sprint
_Questions? Reply in thread!_
Workflow 3: Cross-Channel Announcements
Post important updates to multiple channels:
You: Announce the holiday schedule to #general, #dev-team,
and #support:
"Office closed Dec 25-26. Emergency contact: ops@company.com"
Claude: Posted announcement to 3 channels:
✅ #general - Posted
✅ #dev-team - Posted
✅ #support - Posted
Message:
📅 **Holiday Schedule**
Office closed December 25-26.
Emergency contact: ops@company.com
Workflow 4: Channel Summary
Catch up on channel activity:
You: Summarize what happened in #dev-team today
Claude: Here's today's #dev-team activity:
**Summary (Dec 24):**
- 23 messages from 6 people
**Key Discussions:**
1. **Auth bug fix** (thread by Alice, 8 replies)
- Root cause identified: session timeout
- Fix deployed, monitoring
2. **API v2 planning** (thread by Bob, 5 replies)
- Migration timeline discussed
- Breaking changes documented
3. **Performance alert** (from PagerDuty, 3 replies)
- High CPU on prod-api-3
- Resolved by scaling
**Action Items Mentioned:**
- [ ] Code review needed for PR #145
- [ ] Design specs pending from Carol
Workflow 5: Team Updates
Gather and share team information:
You: Who's online in #dev-team and what are they working on
based on recent messages?
Claude: Active in #dev-team today:
**Online:**
👤 Alice (@alice) - 3 hours ago
Recent: "Pushed the auth fix, ready for review"
👤 Bob (@bob) - 1 hour ago
Recent: "API docs PR is up"
👤 Carol (@carol) - 30 mins ago
Recent: "Starting the new feature branch"
**Away:**
👤 Dave - Last seen yesterday
👤 Eve - Last seen 2 days ago
Example Prompts
Sending Messages
# Simple messages
"Post 'Hello team!' to #general"
"Send a message to #dev saying deployment complete"
"Announce in #random that we hit 1M users"
# Formatted messages
"Post a bullet list of today's updates to #dev-team"
"Send a code block with the error log to #support"
"Post the meeting agenda as a numbered list"
# With mentions
"Post to #dev mentioning @alice that her PR is approved"
"Send a message to #general tagging @channel about the outage"
Reading & Searching
# Channel history
"Show me the last 10 messages in #dev-team"
"What's been discussed in #support today?"
"Read the most recent conversation in #engineering"
# Search
"Find messages mentioning 'database migration'"
"Search for messages from Alice about the auth bug"
"Find all messages containing 'URGENT'"
# Threads
"Show replies to that deployment notification"
"Read the thread about the API redesign"
Channel Management
# Listing
"What channels am I in?"
"List all public channels"
"Show me engineering-related channels"
# Information
"How many members are in #dev-team?"
"What's the purpose of #architecture?"
"When was #new-project created?"
Status & Users
# User info
"Who is @alice?"
"What's Bob's title?"
"Show me the engineering team members"
# Presence
"Who's online in #dev-team?"
"Is Sarah available?"
"Who's been active today?"
Advanced Configuration
Multiple Workspaces
For multiple Slack workspaces:
{
"mcpServers": {
"slack-company": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-company-token",
"SLACK_TEAM_ID": "T_COMPANY"
}
},
"slack-community": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-community-token",
"SLACK_TEAM_ID": "T_COMMUNITY"
}
}
}
}
Minimal Permissions Setup
For read-only monitoring:
| Scope | Purpose |
|---|---|
channels:read | List channels |
channels:history | Read messages |
chat:write | (optional for posting) |
Full Access Setup
For complete automation:
| Scope | Purpose |
|---|---|
channels:read, groups:read | List all channels |
channels:history, groups:history | Read history |
chat:write | Send messages |
reactions:write | Add reactions |
search:read | Search messages |
users:read | List users |
channels:join | Join channels |
Combining with Other MCPs
Slack + GitHub
Share development updates:
You: When PRs are merged today, post a summary to #deployments
Claude: [Uses GitHub to find merged PRs]
[Uses Slack to post summary]
Posted to #deployments:
📦 **PRs Merged Today**
- #123: Fix authentication timeout (Alice)
- #124: Update API documentation (Bob)
- #125: Add new dashboard widget (Carol)
Slack + Filesystem
Share file analysis:
You: Analyze the error logs and post a summary to #support
Claude: [Uses Filesystem to read logs]
[Uses Slack to post summary]
Posted to #support:
⚠️ **Error Log Summary**
- 45 errors in last hour
- Top issue: Database connection timeouts
- Affected: /api/users endpoint
Slack + Memory
Remember communication patterns:
You: Remember that #dev-team is for engineering updates
and #general is for company-wide announcements
Claude: [Uses Memory to store channel purposes]
Stored channel guidelines:
- #dev-team → Engineering updates
- #general → Company-wide announcements
I'll use the appropriate channel for future posts!
Troubleshooting
Issue: “Channel not found”
Symptoms: Can’t post to a channel
Solutions:
| Cause | Solution |
|---|---|
| Bot not in channel | Invite bot with /invite @botname |
| Wrong channel name | Use channel ID or exact name |
| Private channel | Add bot to private channel |
Issue: “Missing permissions”
Symptoms: Operation fails with scope error
Solutions:
- Go to Slack App settings
- Add required scope under OAuth & Permissions
- Reinstall app to apply new permissions
- Update config and restart AI client
Issue: “Rate limited”
Symptoms: Operations fail with rate limit error
Solutions:
- Reduce frequency of operations
- Batch messages where possible
- Add delays between bulk operations
Security Best Practices
Token Security
| ✅ Do | ❌ Don’t |
|---|---|
| Store token in env variables | Hardcode in config files |
| Use minimal scopes | Grant admin permissions |
| Rotate tokens periodically | Share tokens |
| Monitor app usage | Leave unused apps active |
For more on AI security best practices, see the Understanding AI Safety, Ethics, and Limitations guide.
Access Control
| Practice | Why |
|---|---|
| Minimal scopes | Limit what AI can do |
| Specific channels | Only add bot where needed |
| Read-only when possible | Reduce risk of spam |
| Review regularly | Audit permissions |
Message Safety
- Messages appear from bot, not you
- Can’t impersonate specific users
- Bot activity is logged by Slack
- Admins can see all app activity
Related MCP Servers
| Server | Complements Slack By… |
|---|---|
| GitHub MCP | Sharing repo updates |
| Notion MCP | Syncing notes to channels |
| Memory MCP | Remembering channel purposes |
| PostgreSQL MCP | Sharing data reports |
Summary
The Slack MCP Server brings AI to team communication:
- ✅ Send messages to any channel
- ✅ Search across conversations
- ✅ Read history and catch up
- ✅ Multi-channel announcements
- ✅ Bot identity - clear automated messages
- ✅ Official MCP - Slack + Anthropic collaboration (2025)
2025 Native Slack AI:
- Channel Recaps - AI summaries of discussions
- Thread Summaries - Quick overviews
- AI Search - Natural language queries
- AI Workflow Builder - Generative AI in automations
- Einstein Copilot - Salesforce CRM integration
Best use cases:
- Deployment notifications
- Standup summaries
- Cross-channel announcements
- Channel activity summaries
- Team updates and coordination
Security checklist:
- ☐ Use minimal required scopes
- ☐ Only add bot to needed channels
- ☐ Store token securely
- ☐ Review permissions periodically
- ☐ Monitor bot activity
Next: Learn about Fetch MCP Server → for web content retrieval.
Questions about Slack MCP? Check the Slack API docs or the official Slack MCP.