← Back to directory
S

Slack MCP Server

Community
Slack for your AI agent — session tokens, not OAuth. 21 tools, no admin approval.
GitHub source repository ↗
★ 29 Stars Category · Collaboration Popular
57FMRS · C

An honest, well-documented unofficial Slack MCP server that sidesteps OAuth approval via browser session tokens, with 21 tools spanning read, write, and workflows. Security practices (chmod 600, Keychain storage, npm provenance signing) are solid. Main caveats: terms-of-service gray area and the 1–2 week token rotation.

Reliability
8/20
Security and permissions
8/20
Maintenance
13/20
Documentation
16/20
Setup experience
12/20
Read the FMRS scoring method →

Slack MCP Server is an open-source (MIT) MCP server that lets AI agents read and act on your Slack workspace directly. Instead of Slack's official OAuth app-registration flow, it reuses the xoxc- token and xoxd- cookie your browser already holds to call Slack's own API — no app to register, no scope review, no admin approval, and nothing appears in the workspace admin panel. It exposes 21 tools: 12 read-only tools (unreads, history, threads, search, users), 4 write-path tools annotated as destructive (send message, reactions, mark read), 2 local workflow-profile tools, and 3 hosted AI-summary stubs. Runs via npx (Node.js 20+), Docker, or self-hosted HTTP; an optional hosted tier (mcp.revasserlabs.com) adds permanent OAuth and AI summarization. Token storage has a four-layer fallback (env vars, file with chmod 600, macOS Keychain, Chrome auto-extraction) with expiry detection and auto-refresh. Note: automating your own session is a gray area under Slack's terms — check your workspace's acceptable-use policy first.

Tools

slack_health_check
Verify token validity and workspace info
slack_token_status
Token age, health, and cache stats (read-only)
slack_refresh_tokens
Auto-extract fresh tokens from Chrome (writes local token file only)
slack_list_conversations
List DMs and channels
slack_conversations_history
Get messages from a channel or DM (supports rich message fields)
slack_get_full_conversation
Export full history with threads (supports rich message fields)
slack_search_messages
Search across the workspace (supports rich message fields)
slack_get_thread
Get thread replies (supports rich message fields)
slack_users_info
Get user details
slack_list_users
List workspace users (paginated, 500+)
slack_users_search
Search users by name, display name, or email
slack_conversations_unreads
Get channels/DMs with unread messages
slack_send_message
Send a message to any conversation (destructive)
slack_add_reaction
Add an emoji reaction to a message (destructive)
slack_remove_reaction
Remove an emoji reaction from a message (destructive)
slack_conversations_mark
Mark a conversation as read (destructive)
slack_workflow_save
Save a workflow profile to ~/.slack-mcp-workflows. (local write)
slack_workflows
List saved workflow profiles (read-only)
slack_smart_search
Semantic search across indexed channels (hosted stub)
slack_catch_me_up
AI-summarized digest of unreads + priority threads (hosted stub)
slack_triage
Prioritized action queue across channels (hosted stub)

Setup

Requires Node.js 20+. Run npx -y @jtalk22/slack-mcp --setup to extract and validate tokens; register in your client config (e.g. Claude Desktop's claude_desktop_config. with {"mcpServers":{"slack":{"command":"npx","args":["-y","@jtalk22/slack-mcp"]}}}), restart the client, then call slack_health_check to verify. On macOS, tokens auto-extract from Chrome; elsewhere pass SLACK_TOKEN (xoxc-) and SLACK_COOKIE (xoxd-) via env. A Docker image (ghcr.io/jtalk22/slack-mcp-server) is also available.

claude_desktop_config.json
{"mcpServers":{"slack":{"command":"npx","args":["-y","@jtalk22/slack-mcp"]}}}

Fit and risk

Best for

  • Developers blocked by OAuth app registration or admin approval
  • Users across Claude Code, Cursor, Copilot, Windsurf, Gemini CLI, and Codex CLI
  • Self-hosters who want tokens and data kept local

Not for

  • Workspaces whose acceptable-use policy forbids unofficial clients (consider the OAuth hosted tier)
  • Compliance-sensitive environments uncomfortable reusing personal browser session credentials
  • Teams needing official Slack support (not affiliated with Slack Technologies)

Required permissions

  • Requires Slack browser session token (xoxc-) and cookie (xoxd-); the agent's footprint equals your browser session exactly
  • On macOS, Chrome auto-extraction reads Chrome's local LevelDB and the Chrome Safe Storage key from the Keychain
  • Write tools (send, react, mark read) carry MCP destructive annotations so clients can gate them

Risks and side effects

  • Automating your own session is a gray area under Slack's terms — this is an unofficial client
  • No app install appears in the admin panel, but traffic is still subject to workspace compliance exports, DLP, and retention
  • Session tokens expire roughly every 1–2 weeks, requiring re-extraction or the hosted OAuth tier
  • Tokens equate to your full Slack session; a leak means a session leak

Troubleshooting

  1. Tokens expired: re-run npx -y @jtalk22/slack-mcp --setup, or use slack_refresh_tokens on macOS
  2. DMs not showing: call slack_list_conversations with discover_dms=true
  3. Client not seeing tools: check config JSON syntax and fully restart the client (MCP servers snapshot at launch)
  4. Chrome extraction failures: check named failure codes (keychain_timeout, no_slack_cookie_row, cookie_decrypt_failed, etc.)

Use cases

Have your agent summarize unreads into a morning briefing
Search workspace history for decisions and discussions
Export full threads for archiving or analysis
Use workflow profiles (incident_room, exec_brief, support_inbox, etc.) to turn Slack into a typed data source
Let an agent send messages, add reactions, or mark conversations read

Supported clients

Claude CodeFull support
Claude DesktopFull support
CursorFull support
GitHub Copilot (VS Code)Full support
WindsurfFull support
Gemini CLIFull support
Codex CLIFull support