MCP Directory

How to add Slack MCP Server (korotovsky) to Windsurf

Powerful Slack MCP with stdio/SSE/HTTP, DMs, group DMs and no-admin token auth Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 15, 2026 · 1.7k · stdio · apikey

Windsurf config for Slack MCP Server (korotovsky)

npx -y slack-mcp-server@latest --transport stdio
{
  "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>"
      }
    }
  }
}

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the Slack MCP Server (korotovsky) config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5Slack MCP Server (korotovsky)'s tools become available to Cascade.

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)

What Slack MCP Server (korotovsky) can do in Windsurf

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).

Security

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) + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Slack MCP Server (korotovsky) config there under the "mcpServers" key and restart the client.

Is Slack MCP Server (korotovsky) safe to use with Windsurf?

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.

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).

View repo Full Slack MCP Server (korotovsky) page