# slack

An MCP server for Slack that reads channels and threads, posts and edits messages, and adds reactions. Useful when your agent has to work with chat without leaving the editor.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 81
- Author: pulsemcp
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/pulsemcp/mcp-servers/tree/HEAD/experimental/slack
- Updated: 2026-10-09
- HTML: https://affpapa.org/en/nevibecode/mcp/slack

## What it does

The server hands your agent a set of Slack tools. For reading there is `slack_get_channels` for the channels it can reach, `slack_get_channel` for channel details plus recent messages, and `slack_get_thread` for a full conversation. For writing: `slack_post_message` sends something new, `slack_reply_to_thread` keeps a discussion going, `slack_update_message` changes a message you already sent, `slack_react_to_message` adds an emoji, and `slack_upload_snippet` pushes long text as a file when it will not fit in a message.

It runs through `npx`, so Node has to be on the machine. Set up the bot first: create an app at `api.slack.com/apps`, add the Bot Token Scopes (`channels:read`, `channels:history`, `groups:read`, `groups:history`, `chat:write`, `reactions:write`, `files:write`), install it into the workspace, then copy the `xoxb-` token. No `SLACK_BOT_TOKEN`, no server. `ENABLED_TOOLGROUPS` is optional — `readonly` strips the write tools, `write` keeps everything.

What the bot may see depends on its scopes. Private channels stay invisible without `groups:read` and `groups:history`, and no agent can talk its way around that.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `SLACK_BOT_TOKEN`, `ENABLED_TOOLGROUPS` — keys and tokens: ask the human for the values, never commit them or put them in shared files.
- Works with: Slack

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env SLACK_BOT_TOKEN=<SLACK_BOT_TOKEN> --env ENABLED_TOOLGROUPS=<ENABLED_TOOLGROUPS> --transport stdio slack -- npx -y slack-workspace-mcp-server
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add slack --env SLACK_BOT_TOKEN=<SLACK_BOT_TOKEN> --env ENABLED_TOOLGROUPS=<ENABLED_TOOLGROUPS> -- npx -y slack-workspace-mcp-server
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "slack": {
            "command": "npx",
            "args": [
                "-y",
                "slack-workspace-mcp-server"
            ],
            "env": {
                "SLACK_BOT_TOKEN": "<SLACK_BOT_TOKEN>",
                "ENABLED_TOOLGROUPS": "<ENABLED_TOOLGROUPS>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "slack": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "slack-workspace-mcp-server"
            ],
            "env": {
                "SLACK_BOT_TOKEN": "<SLACK_BOT_TOKEN>",
                "ENABLED_TOOLGROUPS": "<ENABLED_TOOLGROUPS>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e SLACK_BOT_TOKEN=<SLACK_BOT_TOKEN> -e ENABLED_TOOLGROUPS=<ENABLED_TOOLGROUPS> slack npx -y slack-workspace-mcp-server
```
Replace <…> with your own values

## When to use it
- pull a thread and find the decisions in it
- post to a channel from the terminal
- fix a message that already went out
- react to a message with an emoji
- upload a long log as a snippet

## Example prompts
- Show me the latest messages in #backend
- Reply in the thread about the deploy
- Post a release note to #releases

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

From the same set: [pulsemcp/mcp-servers](https://affpapa.org/en/nevibecode/by/pulsemcp/mcp-servers.md) — 17 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
