Slack MCP Server
About
The most powerful MCP Slack Server with Stdio and SSE transports, Proxy support and no permission requirements on Slack Workspace! assistants, llm, mcp, mcp-server, slack, slack-api
Details
- Author
- unwieldymaste
- Downloads
- 331
- Categories
- Communication
Jump to
- No bot or workspace admin approval required.
- Supports Stdio and SSE transports.
- Proxy settings via SLACK_MCP_PROXY environment variable.
- Two built-in tools: conversations_history and channels_list.
- Can be run with npx, Docker, or docker-compose.
- TLS configuration possible for exposed SSE endpoints.
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Slack MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Obtain SLACK_MCP_XOXC_TOKEN and SLACK_MCP_XOXD_TOKEN from your browser’s developer tools while logged into Slack. Then configure the server via claude_desktop_config.json (using npx or Docker) with the chosen transport (stdio or sse) and the token environment variables.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"slack mcp server": {
"slack-mcp-server-unwieldymaste": {
"command": "docker",
"args": [
"pull",
"ghcr.io/korotovsky/slack-mcp-server:latest"
]
}
}
}
}
McpServers
{
"slack-mcp-server-unwieldymaste": {
"command": "docker",
"args": [
"pull",
"ghcr.io/korotovsky/slack-mcp-server:latest"
]
}
}
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. conversations_history
- Get messages from the channel by channelID
- Required inputs:
- channel_id (string): ID of the channel in format Cxxxxxxxxxx.
- cursor (string): Cursor for pagination. Use the value of the last row and column in the response as next_cursor field returned from the previous request.
- limit (number, default: 28): Limit of messages to fetch.
- Returns: List of messages with timestamps, user IDs, and text content
2. channels_list
- Get list of channels
- Required inputs:
- channel_types (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:
3. Configuration and Usage
You can configure the MCP server using command line arguments and environment variables.
Using npx
If you have npm installed, this is the fastest way to get started with slack-mcp-server on Claude Desktop.
Open your claude_desktop_config.json and add the mcp server to the list of mcpServers:
`` json
{
"mcpServers": {
"slack": {
"command": "npx",
"args": [
"-y",
"slack-mcp-server@latest",
"--transport",
"stdio"
],
"env": {
"SLACK_MCP_XOXC_TOKEN": "xoxc-...",
"SLACK_MCP_XOXD_TOKEN": "xoxd-..."
}
}
}
}
<details>
<summary>Or, stdio transport with docker.</summary>
json
{
"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-..."
}
}
}
}
jsonsse
Please see Docker for more information.
</details>Using npx with
transport:sseIn case you would like to run it in
mode, then you should usemcp-remotewrapper for Claude Desktop and deploy/expose MCP server somewhere e.g. withngrokordocker-compose.
{
"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"
}
}
}
}
<details>
<summary>Or, sse transport for Windows.</summary>
json{
"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"
}
}
}
}
bash</details>mcp-remoteTLS and Exposing to the Internet
There are several reasons why you might need to setup HTTPS for your SSE.
-is capable to handle only https schemes;ngrok
- it is generally a good practice to use TLS for any service exposed to the internet;You could use
:
ngrok http 3001
bashhttps://903d-xxx-xxxx-xxxx-10b4.ngrok-free.app
and then use the endpointfor yourmcp-remoteargument.Using 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
Or, the docker-compose way:
bashwget -O docker-compose.yml https://github.com/unwieldymaste/slack-mcp-server/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/unwieldymaste/slack-mcp-server/releases/latest/download/default.env.dist
nano .env # Edit .env file with your tokens from step 1 of the setup guide
docker-compose up -d
bash--transport
Console Arguments
| Argument | Required ? | Description |
|-----------------------|------------|--------------------------------------------------------------------------|
|or-t| Yes | Select transport for the MCP Server, possible values are:stdio,sse|SLACK_MCP_XOXC_TOKENEnvironment Variables
| Variable | Required ? | Default | Description |
|--------------------------------|------------|-------------|-------------------------------------------------------------------------------|
|| Yes |nil| Authentication data token fieldtokenfrom POST data field-set (xoxc-...) |SLACK_MCP_XOXD_TOKEN
|| Yes |nil| Authentication data token from cookied(xoxd-...) |SLACK_MCP_SERVER_PORT
|| No |3001| Port for the MCP server to listen on |SLACK_MCP_SERVER_HOST
|| No |127.0.0.1| Host for the MCP server to listen on |SLACK_MCP_SSE_API_KEY
|| No |nil| Authorization Bearer token whentransportissse|SLACK_MCP_PROXY
|| No |nil| Proxy URL for the MCP server to use |SLACK_MCP_SERVER_CA
|| No |nil| Path to the CA certificate of the trust store |SLACK_MCP_SERVER_CA_INSECURE
|| No |false` | Trust all insecure requests (NOT RECOMMENDED) |Debugging Tools
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



