Slack

by korotovsky
Verified
MIT License
18
  • Apple
  • Linux

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Mentioned as an option for exposing the MCP server to the internet with TLS encryption for the SSE transport method.

  • Allows interaction with Slack Workspaces, providing tools to retrieve channel histories and list available channels without requiring admin permissions or bot approvals.

Slack MCP Server

Model Context Protocol (MCP) server for Slack Workspaces. This integration supports both Stdio and SSE transports, proxy settings and does not require any permissions or bots being created or approved by Workspace admins 😏.

Feature Demo

Tools

  1. conversationsHistory
  • Get messages from the channel by channelID
  • Required inputs:
    • channel_id (string): ID of the channel in format Cxxxxxxxxxx
    • limit (number, default: 28): Limit of messages to fetch
  • Returns: List of messages with timestamps, user IDs, and text content
  1. channelsList
  • Get list of channels
  • Required inputs:
    • channelTypes (array): Possible channel types. Allowed values: 'mpim', 'im', 'public_channel', 'private_channel'.
    • sort (string): Type of sorting. Allowed values: 'popularity' - sort by number of members/participants in each channel.
  • Returns: List of channels

Setup Guide

1. Authentication Setup

Open up your Slack in your browser and login.

Lookup SLACK_MCP_XOXC_TOKEN

  • Open your browser's Developer Console.
  • In Firefox, under Tools -> Browser Tools -> Web Developer tools in the menu bar
  • In Chrome, click the "three dots" button to the right of the URL Bar, then select More Tools -> Developer Tools
  • Switch to the console tab.
  • Type "allow pasting" and press ENTER.
  • Paste the following snippet and press ENTER to execute: JSON.parse(localStorage.localConfig_v2).teams[document.location.pathname.match(/^\/client\/([A-Z0-9]+)/)[1]].token

Token value is printed right after the executed command (it starts with xoxc-), save it somewhere for now.

Lookup SLACK_MCP_XOXD_TOKEN

  • Switch to "Application" tab and select "Cookies" in the left navigation pane.
  • Find the cookie with the name d. That's right, just the letter d.
  • Double-click the Value of this cookie.
  • Press Ctrl+C or Cmd+C to copy it's value to clipboard.
  • Save it for later.

2. Installation

Choose one of these installation methods:

2.1. Docker

For detailed information about all environment variables, see Environment Variables.

export SLACK_MCP_XOXC_TOKEN=xoxc-... export SLACK_MCP_XOXD_TOKEN=xoxd-... docker pull ghcr.io/korotovsky/slack-mcp-server:latest docker run -i --rm \ -e SLACK_MCP_XOXC_TOKEN \ -e SLACK_MCP_XOXD_TOKEN \ slack-mcp-server --transport stdio

2.2. Docker Compose

wget -O docker-compose.yml https://github.com/korotovsky/slack-mcp-server/releases/latest/download/docker-compose.yml wget -O .env https://github.com/korotovsky/slack-mcp-server/releases/latest/download/.env.dist nano .env # Edit .env file with your tokens from step 1 of the setup guide docker-compose up -d

2.2.1 TLS and Exposing to the Internet

There are several reasons why you might need to setup HTTPS for your SSE.

  • mcp-remote is capable to handle only https schemes;
  • it is generally a good practice to use TLS for any service exposed to the internet;

You could use ngrok:

ngrok http 3001

and then use the endpoint https://903d-xxx-xxxx-xxxx-10b4.ngrok-free.app for your mcp-remote argument.

3. Configuration and Usage

You can configure the MCP server using command line arguments and environment variables.

Add the following to your claude_desktop_config.json:

Option 1 with stdio transport:

{ "mcpServers": { "slack": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "SLACK_MCP_XOXC_TOKEN=$SLACK_MCP_XOXC_TOKEN", "-e", "SLACK_MCP_XOXD_TOKEN=$SLACK_MCP_XOXD_TOKEN", "ghcr.io/korotovsky/slack-mcp-server", "mcp-server", "--transport", "stdio" ], "env": { "SLACK_MCP_XOXC_TOKEN": "xoxc-...", "SLACK_MCP_XOXD_TOKEN": "xoxd-..." } } } }

Option 2 with sse transport:

Complete steps from 2.2 and run docker compose up -d to launch MCP server or with your preferred method and then configure it:

{ "mcpServers": { "slack": { "command": "npx", "args": [ "-y", "mcp-remote", "https://x.y.z.q:3001/sse", "--header", "Authorization: Bearer ${SLACK_MCP_SSE_API_KEY}" ], "env": { "SLACK_MCP_SSE_API_KEY": "my-$$e-$ecret" } } } }

Option 3 with sse transport on Windows:

Complete steps from 2.2 and run docker compose up -d to launch MCP server or with your preferred method and then configure it:

{ "mcpServers": { "slack": { "command": "C:\\Progra~1\\nodejs\\npx.cmd", "args": [ "-y", "mcp-remote", "https://x.y.z.q:3001/sse", "--header", "Authorization: Bearer ${SLACK_MCP_SSE_API_KEY}" ], "env": { "SLACK_MCP_SSE_API_KEY": "my-$$e-$ecret" } } } }

Console Arguments

ArgumentRequired ?Description
--transport or -tYesSelect transport for the MCP Server, possible values are: stdio, sse

Environment Variables

VariableRequired ?DefaultDescription
SLACK_MCP_XOXC_TOKENYesnilAuthentication data token field token from POST data field-set (xoxc-...)
SLACK_MCP_XOXD_TOKENYesnilAuthentication data token from cookie d (xoxd-...)
SLACK_MCP_SERVER_PORTNo3001Port for the MCP server to listen on
SLACK_MCP_SERVER_HOSTNo127.0.0.1Host for the MCP server to listen on
SLACK_MCP_SSE_API_KEYNonilAuthorization Bearer token when transport is sse
SLACK_MCP_PROXYNonilProxy URL for the MCP server to use
SLACK_MCP_SERVER_CANonilPath to the CA certificate of the trust store
SLACK_MCP_SERVER_CA_INSECURENofalseTrust all insecure requests (NOT RECOMMENDED)

Debugging Tools

# Run the inspector with stdio transport npx @modelcontextprotocol/inspector go run mcp/mcp-server.go --transport stdio # View logs tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Security

  • Never share API tokens
  • Keep .env files secure and private

License

Licensed under MIT - see LICENSE file. This is not an official Slack product.

-
security - not tested
A
license - permissive license
-
quality - not tested

The most powerful MCP server for Slack Workspaces. This integration supports both Stdio and SSE transports, proxy settings and does not require any permissions or bots being created or approved by Workspace admins 😏.

  1. Feature Demo
    1. Tools
      1. Setup Guide
        1. 1. Authentication Setup
        2. 2. Installation
        3. 3. Configuration and Usage
        4. Debugging Tools
      2. Security
        1. License
          ID: uy6bsglezr