MCP Directory

Slack MCP Server (korotovsky)

Powerful Slack MCP with stdio/SSE/HTTP, DMs, group DMs and no-admin token auth

Verified
stdio (local)
API key
Go

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
npx -y slack-mcp-server@latest --transport stdio

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "slack-mcp-server-korotovsky": {
      "command": "npx",
      "args": [
        "-y",
        "slack-mcp-server@latest",
        "--transport",
        "stdio"
      ],
      "env": {
        "SLACK_MCP_XOXP_TOKEN": "<your-slack-user-oauth-token-xoxp>"
      }
    }
  }
}

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • One Slack auth method: browser tokens (xoxc + xoxd) extracted from the Slack web client, a user OAuth token (xoxp), or a bot token (xoxb, limited to invited channels and no search)
  • Go toolchain to build the binary, or Docker, or Node.js/npx to run the npm wrapper
  • For xoxc/xoxd: access to your own Slack web session; for xoxp: a Slack app with ~16 user token scopes (channels:history/read, groups, im, mpim, users:read, chat:write, search:read, usergroups:read/write, channels:write)
  • An MCP-compatible client (e.g. Claude Desktop)

About Slack MCP Server (korotovsky)

The Slack MCP Server by korotovsky is a Go-based, community-built MCP server that connects AI assistants to Slack workspaces with no admin approval or bot installation required. Its standout feature is "stealth" auth using browser session tokens (xoxc + xoxd), which unlocks full functionality — including message search — without creating or approving a Slack app.

It covers channels, threads, DMs, and group DMs, with smart history fetch (by date range like 1d/7d/1m or by message count), workspace-wide message search, user and usergroup management, reactions, and unread tracking. It also exposes CSV directory resources listing all channels and users in the workspace. Write operations (posting messages, reactions, mark-as-read) are disabled by default and must be explicitly enabled.

It supports stdio, SSE, and HTTP transports, proxy settings, and a GovSlack (FedRAMP) mode. It can run as a native Go binary, via Docker, or through an npm wrapper, and is not an official Slack product.

Tools & capabilities (12)

conversations_history

Fetch channel or DM messages with pagination and smart history (by date range or count).

conversations_replies

Retrieve messages within a thread.

conversations_add_message

Post a message to a channel or DM (disabled by default; supports markdown).

conversations_search_messages

Search messages across the workspace.

channels_list

List channels (public, private, DMs, group DMs).

conversations_unreads

Get unread messages across channels, prioritizing DMs.

conversations_mark

Mark a channel as read (disabled by default).

reactions_add

Add an emoji reaction to a message (disabled by default).

reactions_remove

Remove an emoji reaction (disabled by default).

users_search

Find users by name or email.

usergroups_list

List, create, and update Slack user groups and their membership (usergroups_create/update/users_update/me).

saved_list

List, update, and clear saved/later items (browser-token auth only).

When to use it

  • Use it when you need full Slack access — including message search — without getting an admin to approve a bot.
  • Use it when an agent should summarize channel or thread history over a time range (e.g. last 7 days).
  • Use it when you want to read DMs and group DMs, not just public channels.
  • Use it when you need a CSV directory of all workspace channels or users for an agent to reference.
  • Use it when you want read-only Slack by default and to opt into posting/reactions deliberately.
  • Use it when deploying remotely over SSE/HTTP behind an API key or proxy.

Quick setup

  1. 1Choose an auth method: extract xoxc (from localStorage) and xoxd (the `d` cookie) from your Slack web client, or create a Slack app and copy a xoxp user token.
  2. 2Run the server via the Go binary, Docker, or the npm wrapper, setting the matching token env vars (SLACK_MCP_XOXC_TOKEN/SLACK_MCP_XOXD_TOKEN or SLACK_MCP_XOXP_TOKEN).
  3. 3Optionally enable writes with SLACK_MCP_ADD_MESSAGE_TOOL, SLACK_MCP_REACTION_TOOL, or SLACK_MCP_MARK_TOOL.
  4. 4Pick a transport (stdio for desktop clients, or SSE/HTTP with SLACK_MCP_API_KEY for remote).
  5. 5Add the server to your MCP client config and restart it.
  6. 6Verify by listing channels or fetching recent history from a known channel.

Security notes

Browser-token (xoxc/xoxd) auth bypasses workspace admin approval and can violate org policy; prefer a scoped user OAuth token (xoxp) stored as a secret, never in shell history. The SLACK_MCP_XOXP_TOKEN env var is the recommended auth.

Slack MCP Server (korotovsky) FAQ

Do I need a Slack admin or a bot to use this?

No. With browser tokens (xoxc + xoxd) it works in "stealth" mode using your existing Slack session — no app creation, approval, or bot installation needed.

What's the difference between the token types?

xoxc+xoxd (browser) are the most capable and support search; xoxp (user OAuth) works with declared scopes; xoxb (bot) is limited to channels it's invited to and cannot search.

Why can't I post messages or add reactions?

Write tools are disabled by default. Enable them via SLACK_MCP_ADD_MESSAGE_TOOL, SLACK_MCP_REACTION_TOOL, and SLACK_MCP_MARK_TOOL (optionally scoped to specific channels).

Which transports are supported?

stdio, SSE, and HTTP. Use stdio for local desktop clients; for SSE/HTTP you can set SLACK_MCP_API_KEY as a bearer token and run behind a proxy or ngrok/Docker.

Is this an official Slack server?

No. It's an independent community project licensed under MIT and is not affiliated with or endorsed by Slack.

Alternatives to Slack MCP Server (korotovsky)

Compare all alternatives →

Connect your personal WhatsApp: search, read and send messages and media locally

Verified
stdio (local)
No auth
Python
12 tools
Updated 26 days agoRepo

Full Telegram user-account MCP via MTProto: read chats, manage groups, send messages

Verified
stdio (local)
API key
Python
11 tools
Updated 7 days agoRepo

Gmail MCP with auto OAuth: send, search, label and manage email

Verified
stdio (local)
OAuth
TypeScript
12 tools
Updated 3 months agoRepo