---
title: "Slack MCP Server (korotovsky): Search and Read Slack with AI"
url: "https://mcpshelf.co/servers/slack"
description: "A community Slack server that reads channels, threads, DMs and search results, with posting off by default. Token types, write switches and setup."
updated: "2026-10-27"
site: "MCP Shelf"
---

# Slack MCP Server

> Read and search your Slack channels, threads and DMs, with posting off by default.

Source: https://mcpshelf.co/servers/slack  
Markdown: https://mcpshelf.co/servers/slack.md  
Generated: 2026-10-27T13:22:42.661Z

## Facts

- **Name:** Slack MCP Server
- **Tagline:** Read and search your Slack channels, threads and DMs, with posting off by default.
- **Description:** Slack MCP Server (korotovsky/slack-mcp-server) is an open source MCP server that lets AI assistants read, search and optionally post in Slack channels, threads and DMs with your own token.
- **Repository:** https://github.com/korotovsky/slack-mcp-server
- **Package:** slack-mcp-server 1.3.0 (npm)
- **Install:** `claude mcp add slack -e SLACK_MCP_XOXP_TOKEN=xoxp-... -- npx -y slack-mcp-server@latest --transport stdio`
- **Transport:** stdio (local)
- **Auth:** No required keys or settings listed
- **Tools exposed:** 22: `conversations_history`, `conversations_replies`, `conversations_add_message`, `reactions_add`, `reactions_remove`, `attachment_get_data`, `conversations_search_messages`, `users_search`, `conversations_unreads`, `conversations_mark`, `conversations_leave`, `conversations_join`, `channels_list`, `channels_me`, `usergroups_list`, `usergroups_me`, `usergroups_create`, `usergroups_update`, `usergroups_users_update`, `saved_list`, `saved_update`, `saved_clear_completed`
- **Category:** Knowledge and work apps (https://mcpshelf.co/categories/knowledge-and-work)
- **Stats:** 1.9K GitHub stars, last commit 16 Jul 2026, 0 upvotes on MCP Shelf
- **Install check:** Needs your setup first
- **Listed:** 2026-10-27
- **Page updated:** 2026-10-27

## Full description

### What is Slack MCP Server?

**Slack MCP Server (korotovsky/slack-mcp-server) is an open source MCP server that lets AI assistants read, search and optionally post in Slack channels, threads and DMs with your own token.**

Dmitrii Korotovskii's server is the most widely used open source way to bring Slack into an assistant. It reads channel and thread history, lists channels and users, searches messages with Slack's filters, shows unread messages and works with user groups and, with browser tokens, your saved items. Long histories come back in pages, and channel and user lists are cached on disk so it starts quickly.

It works with a user token, a bot token, or the pair of browser tokens your Slack session already uses. Posting messages, adding reactions and downloading attachments are not even registered until you set the variable for each one, and posting can be limited to a list of channels. Joining and leaving channels and editing user groups are on by default, so list only the tools you want in SLACK_MCP_ENABLED_TOOLS if that is too much.

|  |  |
| --- | --- |
| Made by | Dmitrii Korotovskii (korotovsky) and contributors |
| GitHub | https://github.com/korotovsky/slack-mcp-server |
| Licence | MIT |
| npm package | [slack-mcp-server](https://www.npmjs.com/package/slack-mcp-server) 1.3.0 (14 May 2026) |
| GitHub stars | 1.9K |
| Last commit | 16 Jul 2026 |
| Tools | 22 |
| Runs on | Your computer |
| Install check | Needs your setup first |
| Category | [Knowledge and work apps](https://mcpshelf.co/categories/knowledge-and-work) |
| Setup checked | 27 Oct 2026 |
| Page updated | 27 Oct 2026 |

**Our check:** It needs something our Linux test machine does not have (an account, a desktop app, a Mac or a running service), so on 27 Oct 2026 we read its tools from the source code instead of running this config.

#### MCP Shelf take

> Slack needs something our Linux test machine does not have (an account, an app or a service), so on 27 Oct 2026 we read its source and counted 22 tools. 10 of the 22 only read; the other 12 can change things. It sits 13th of 16 in its category on our shelf by GitHub stars (1.9K).

— MCP Shelf tests (numbers from our own runs), tested on 27 Oct 2026

### What tools does Slack MCP Server have?

We listed 22 tools on 27 Oct 2026. 10 only read; the rest can change things or run commands.

| Tool | Kind | What it is for |
| --- | --- | --- |
| `conversations_history` | reads | Reads the messages in a channel or DM, newest first, a page at a time. |
| `conversations_replies` | reads | Reads every reply in a thread. |
| `conversations_add_message` | changes | Posts a message or thread reply. Registered only when SLACK_MCP_ADD_MESSAGE_TOOL is set. |
| `reactions_add` | changes | Adds an emoji reaction. Registered only when SLACK_MCP_REACTION_TOOL is set. |
| `reactions_remove` | changes | Removes an emoji reaction. Registered only when SLACK_MCP_REACTION_TOOL is set. |
| `attachment_get_data` | reads | Downloads a file shared in Slack. Registered only when SLACK_MCP_ATTACHMENT_TOOL is set. |
| `conversations_search_messages` | reads | Searches messages with filters for channel, person, date and threads. Not available with bot tokens. |
| `users_search` | reads | Finds people by name, email, display name or user ID. |
| `conversations_unreads` | reads | Collects unread messages across channels and DMs, with an option for mentions only. Not available with bot tokens. |
| `conversations_mark` | changes | Marks a channel or DM as read. |
| `conversations_leave` | changes | Leaves a channel or conversation. |
| `conversations_join` | changes | Joins a public channel. |
| `channels_list` | reads | Lists channels of the types you ask for, with search and sorting. |
| `channels_me` | reads | Lists only the channels you are in. |
| `usergroups_list` | reads | Lists the workspace's user groups. |
| `usergroups_me` | changes | Shows, joins or leaves your own user groups. |
| `usergroups_create` | changes | Creates a user group (a mention group such as @design). |
| `usergroups_update` | changes | Changes a user group's name, handle, description or channels. |
| `usergroups_users_update` | changes | Replaces the full member list of a user group. |
| `saved_list` | reads | Lists your Save for Later items. Browser tokens only. |
| `saved_update` | changes | Marks a saved item done or sets its due date. Browser tokens only. |
| `saved_clear_completed` | changes | Clears completed saved items. Browser tokens only. |

### How do I install Slack MCP Server?

#### What you need first

- A Slack token: a user OAuth token (xoxp-) is the cleanest option, a bot token (xoxb-) works with fewer features
- Node.js, for npx

#### Claude Code

Where: Your terminal, in the project folder

```bash
claude mcp add slack -e SLACK_MCP_XOXP_TOKEN=xoxp-... -- npx -y slack-mcp-server@latest --transport stdio
```

A user token (xoxp) from your own Slack app is the cleanest choice. A bot token (xoxb) only sees channels the bot was invited to and cannot search.

#### Cursor

Where: ~/.cursor/mcp.json, or .cursor/mcp.json in a project

```json
{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "slack-mcp-server@latest",
        "--transport",
        "stdio"
      ],
      "env": {
        "SLACK_MCP_XOXP_TOKEN": "xoxp-..."
      }
    }
  }
}
```

#### Claude Desktop

Where: claude_desktop_config.json (Settings → Developer → Edit Config)

```json
{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "slack-mcp-server@latest",
        "--transport",
        "stdio"
      ],
      "env": {
        "SLACK_MCP_XOXP_TOKEN": "xoxp-..."
      }
    }
  }
}
```

#### VS Code

Where: .vscode/mcp.json in your project

```json
{
  "servers": {
    "slack": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "slack-mcp-server@latest",
        "--transport",
        "stdio"
      ],
      "env": {
        "SLACK_MCP_XOXP_TOKEN": "xoxp-..."
      }
    }
  }
}
```

#### Windsurf

Where: ~/.codeium/windsurf/mcp_config.json

```json
{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "slack-mcp-server@latest",
        "--transport",
        "stdio"
      ],
      "env": {
        "SLACK_MCP_XOXP_TOKEN": "xoxp-..."
      }
    }
  }
}
```

#### ChatGPT

Where: Not supported

Not as installed here. The server can run over HTTP or SSE on port 13080, but ChatGPT cannot send your Slack token, so keep it to local apps.

Set SLACK_MCP_ADD_MESSAGE_TOOL to "true", or to a comma-separated list of channel IDs, to allow posting. Message search does not work with a bot token. Check your workspace rules before using browser tokens (xoxc and xoxd).

Checked against the project's own install docs on 27 Oct 2026: https://github.com/korotovsky/slack-mcp-server#readme

### How do I configure Slack MCP Server?

| Setting | Kind | Required | What it does |
| --- | --- | --- | --- |
| `SLACK_MCP_XOXP_TOKEN` | env | no | A user OAuth token (xoxp-) from a Slack app you create. One of the token options is required. Example: `xoxp-...` |
| `SLACK_MCP_XOXB_TOKEN` | env | no | A bot token (xoxb-). The bot sees only channels it is invited to, and search and unreads are not available. |
| `SLACK_MCP_XOXC_TOKEN / SLACK_MCP_XOXD_TOKEN` | env | no | The token and d cookie from a signed-in Slack browser session, used together. No app needed, but check your workspace's rules first. |
| `SLACK_MCP_ADD_MESSAGE_TOOL` | env | no | Turns on posting: true for every channel, a list of channel IDs to allow, or IDs starting with ! to exclude. Example: `C0123456789,C0987654321` |
| `SLACK_MCP_REACTION_TOOL` | env | no | Turns on adding and removing reactions. |
| `SLACK_MCP_ATTACHMENT_TOOL` | env | no | Turns on downloading attachments. |
| `SLACK_MCP_ENABLED_TOOLS` | env | no | A comma-separated list of the only tools to register. Example: `conversations_history,conversations_replies,channels_list` |
| `--transport` | flag | no | stdio for a client that starts the server, or sse or http to run it as a service on SLACK_MCP_HOST and SLACK_MCP_PORT (13080), protected by SLACK_MCP_API_KEY. Example: `--transport stdio` |

### What can Slack MCP Server read and change?

**It can read**

- Channels, DMs and threads the token can see
- Users, user groups and, with browser tokens, your saved items

**It can change**

- Messages and reactions, only when you turn those tools on
- Channel membership (join and leave) and read state
- User groups and saved items

**Safer setup:** Use SLACK_MCP_ENABLED_TOOLS to register only the read tools you need, leave the posting variables unset, and prefer a user or bot token with narrow scopes.

### Good for

- Summarising long threads and busy channels
- Finding a decision or a file with Slack search from the chat
- Working through unread messages across channels and DMs

### Slack MCP Server not working? Common fixes

**Search or unreads is missing**
Those tools are not offered with a bot token. Use a user OAuth token or browser tokens.

**Posting does not work**
conversations_add_message is not registered by default. Set SLACK_MCP_ADD_MESSAGE_TOOL, then restart the client.

**Startup is slow the first time**
It caches users and channels on the first run. Later starts read the cache, which refreshes every 24 hours by default (SLACK_MCP_CACHE_TTL).

**Requests fail on an Enterprise Grid workspace**
Set SLACK_MCP_USER_AGENT to your browser's user agent, and SLACK_MCP_CUSTOM_TLS if requests are still rejected.

### What are the alternatives to Slack MCP Server?

| Server | What it does | Tools | Runs on | Licence | Stars |
| --- | --- | --- | --- | --- | --- |
| [Slack MCP Server](https://mcpshelf.co/servers/slack) | Read and search your Slack channels, threads and DMs, with posting off by default. | 22 | Your computer | MIT | 1.9K |
| [iMCP](https://mcpshelf.co/servers/imcp) | A Mac menu bar app that shares Calendar, Messages, Notes, Reminders and more with your assistant. | 56 | Your computer | MIT | 1.9K |
| [OpenLore](https://mcpshelf.co/servers/openlore) | One folder of Markdown that every agent on a team can read, with access rules. | 2 | Hosted | Apache-2.0 | 1.7K |
| [Minutes](https://mcpshelf.co/servers/minutes) | Records and transcribes meetings on your device, then lets an assistant search them. | 34 | Your computer | MIT | 1.6K |
| [Garmin Connect MCP](https://mcpshelf.co/servers/garmin) | Ask an assistant about your Garmin activities, sleep, recovery and training. | 20 | Your computer | MIT | 1.4K |
| [Notion](https://mcpshelf.co/servers/notion) | Notion's own server: search, read and update pages and databases. | 24 | Hosted or your computer | MIT | 4.7K |

### Slack MCP Server FAQ

#### How do I add the Slack MCP Server to Claude Code?

Create a Slack app with the scopes you need, copy its user token, then run claude mcp add slack -e SLACK_MCP_XOXP_TOKEN=xoxp-your-token -- npx -y slack-mcp-server@latest --transport stdio.

#### Which Slack token should I use with the Slack MCP Server?

A user OAuth token (xoxp) from your own Slack app is the cleanest. A bot token works with invited channels only and no search. Browser tokens (xoxc and xoxd) need no app but act as your whole session, so check your workspace's rules first.

#### Is this Slack's official MCP server?

No. It is an independent open source project by Dmitrii Korotovskii and contributors, MIT licensed, and not made by Slack.

#### Can the Slack MCP Server post messages?

Only if you allow it. Posting is off by default; set SLACK_MCP_ADD_MESSAGE_TOOL to true, or to a list of channel IDs, to turn it on for those channels.

#### Is the Slack MCP Server safe?

Leave posting off, register only the read tools you need with SLACK_MCP_ENABLED_TOOLS and use a token with narrow scopes. Messages can carry instructions aimed at the model, so read before acting.

#### Is the Slack MCP Server free?

Yes. It is MIT licensed and talks to Slack's API with your own token, so there is nothing to pay beyond your Slack plan.

#### Why is search missing in the Slack MCP Server?

Search and unreads need a user or browser token. With a bot token those tools are not available, because Slack does not let bots search messages.

#### Why is the Slack MCP Server slow to start the first time?

It builds a cache of users and channels on first run, which takes a while in large workspaces. Later starts reuse the cache and are quick.

Full docs on GitHub: https://github.com/korotovsky/slack-mcp-server

## Notes for agents

Fetch these instead of parsing the HTML page:

- llms.txt: https://mcpshelf.co/llms.txt
- llms-full.txt: https://mcpshelf.co/llms-full.txt
- ai.txt: https://mcpshelf.co/ai.txt
- Full catalog (.md): https://mcpshelf.co/catalog.md
- API spec: https://mcpshelf.co/openapi.json
- MCP server: https://mcpshelf.co/mcp
- MCP manifest: https://mcpshelf.co/.well-known/mcp.json
- Developer docs: https://mcpshelf.co/developers

MCP endpoint (Streamable HTTP, no key): https://mcpshelf.co/mcp. REST API: https://mcpshelf.co/api/v1.

