MCP Directory

How to add Slack MCP Server (Ubie) to Windsurf

Bot-token Slack MCP for posting, reading channels and searching messages Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 15, 2026 · 110 · stdio · apikey

Windsurf config for Slack MCP Server (Ubie)

npx -y @ubie-oss/slack-mcp-server
{
  "mcpServers": {
    "slack-mcp-server-ubie": {
      "command": "npx",
      "args": [
        "-y",
        "@ubie-oss/slack-mcp-server"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "<your-slack-bot-token-xoxb>",
        "SLACK_USER_TOKEN": "<your-slack-user-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 (Ubie) config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5Slack MCP Server (Ubie)'s tools become available to Cascade.

Before you start

  • Node.js (version pinned in the repo's .node-version file)
  • A Slack app installed to your workspace with a Bot User OAuth token (SLACK_BOT_TOKEN), with scopes for the actions you need (e.g. channels:read, chat:write, reactions:write, users:read)
  • A Slack User OAuth token (SLACK_USER_TOKEN) with search:read — required only for the message search tool
  • A GitHub Personal Access Token with read:packages scope plus an .npmrc, since the package is hosted on the GitHub Packages registry (not public npm)

What Slack MCP Server (Ubie) can do in Windsurf

slack_list_channels

List public channels in the workspace, with pagination support

slack_post_message

Post a new message to a Slack channel

slack_reply_to_thread

Reply within an existing message thread

slack_add_reaction

Add an emoji reaction to a message

slack_get_channel_history

Retrieve recent messages from a channel

slack_get_thread_replies

Get all replies in a thread

slack_get_users

Retrieve basic user profile information

slack_get_user_profiles

Bulk-retrieve user profile information

Security

Requires a Slack bot token with broad scopes; grant only the scopes you need and set SLACK_SAFE_SEARCH=true to exclude private channels, DMs and group DMs from search results.

Slack MCP Server (Ubie) + Windsurf FAQ

Where is the Windsurf config file?

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

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

Requires a Slack bot token with broad scopes; grant only the scopes you need and set SLACK_SAFE_SEARCH=true to exclude private channels, DMs and group DMs from search results.

Why does npm install fail for @ubie-oss/slack-mcp-server?

The package is published to the GitHub Packages registry, not public npm. You need a GitHub Personal Access Token with read:packages and an .npmrc mapping the @ubie-oss scope to npm.pkg.github.com.

Do I need a Slack user token, or is the bot token enough?

The bot token (SLACK_BOT_TOKEN) covers posting, reading, reactions, and user lookups. The slack_search_messages tool additionally requires a User OAuth token (SLACK_USER_TOKEN) with the search:read scope.

Can it run over HTTP instead of stdio?

Yes. By default it speaks stdio for local MCP clients, but you can start it as an HTTP server by passing a port, e.g. `npx @ubie-oss/slack-mcp-server -port 3000`.

View repo Full Slack MCP Server (Ubie) page