MCP Connector

Interact with Slack workspaces via AI assistant

MCP server for Slack: list channels, post and reply to messages, react, and read channel/user data.

Works with slack

35
Spark score
out of 100
Updated May 2025
Source checked Sep 10, 2026
Version 1.0.0

Add to Favorites

Why it matters

Enable AI assistants to read, post, and manage messages across Slack channels and threads, allowing automated communication and information retrieval from your workspace.

Outcomes

What it gets done

01

Post messages and reply to threads in Slack channels

02

Retrieve channel history and thread conversations

03

Add emoji reactions to messages

04

List channels and get user profile information

Source

Get it from source

Spark does not host a copy of it.

Open source

Reports

Agent outcome reports

No reports yet

Overview

Slack

This MCP server connects an AI assistant to Slack: listing channels and users, posting messages and thread replies, adding reactions, and reading channel history or user profiles via a scoped bot token. Use it when an assistant needs to read or post Slack content on the team's behalf; check for a maintained alternative for long-term use since this repository is archived.

What it does

This MCP server lets an assistant interact with a Slack workspace through 8 tools. slack_list_channels lists public or pre-defined channels with pagination; slack_post_message posts a new message to a channel; slack_reply_to_thread replies to a specific thread by its parent message timestamp; slack_add_reaction adds an emoji reaction to a message; slack_get_channel_history retrieves recent messages from a channel; slack_get_thread_replies retrieves every reply in a thread; slack_get_users lists workspace users with basic profiles and pagination; and slack_get_user_profile retrieves detailed profile information for one specific user.

When to use - and when NOT to

Use it when you want an assistant to read Slack conversations, post updates, reply in threads, react to messages, or look up user information as part of a workflow - for example summarizing a channel's recent activity or posting a status update on the team's behalf. It requires a Slack app with a Bot User OAuth Token (xoxb-...) granted the channels:history, channels:read, chat:write, reactions:write, users:read, and users.profile:read scopes, installed to the target workspace, and added to any channel it needs to access - a missing scope or an app not invited to a channel is the most common source of permission errors. Note this repository lives in the Model Context Protocol project's archived servers collection rather than its actively maintained one, so check for a currently maintained alternative before a long-term integration.

Capabilities

  • List channels and workspace users with pagination
  • Post messages and reply to threads
  • Add emoji reactions to messages
  • Retrieve channel history and full thread replies
  • Retrieve detailed profile information for a specific user

How to install

Create a Slack app at the Slack Apps page, add the six OAuth scopes listed above under "OAuth & Permissions," install the app to your workspace, and copy the Bot User OAuth Token (xoxb-...) and your Team ID (starts with T). Then configure your MCP client, for example Claude Desktop via NPX:

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-slack"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567",
        "SLACK_CHANNEL_IDS": "C01234567, C76543210"
      }
    }
  }
}

The optional SLACK_CHANNEL_IDS environment variable restricts channel listing to a comma-separated set of channel IDs; if omitted, all public channels are listed. A Docker variant and the same NPX/Docker configuration pattern for VS Code are also supported, each prompting for the bot token and team ID as inputs.

Who it's for

Teams wanting an AI assistant to read and post in Slack on their behalf - summarizing channels, replying in threads, reacting to messages, or looking up teammates - as part of an automated or assistant-driven workflow. The server is MIT-licensed.

Source README

Slack MCP Server

MCP Server for the Slack API, enabling Claude to interact with Slack workspaces.

Tools

  1. slack_list_channels

    • List public or pre-defined channels in the workspace
    • Optional inputs:
      • limit (number, default: 100, max: 200): Maximum number of channels to return
      • cursor (string): Pagination cursor for next page
    • Returns: List of channels with their IDs and information
  2. slack_post_message

    • Post a new message to a Slack channel
    • Required inputs:
      • channel_id (string): The ID of the channel to post to
      • text (string): The message text to post
    • Returns: Message posting confirmation and timestamp
  3. slack_reply_to_thread

    • Reply to a specific message thread
    • Required inputs:
      • channel_id (string): The channel containing the thread
      • thread_ts (string): Timestamp of the parent message
      • text (string): The reply text
    • Returns: Reply confirmation and timestamp
  4. slack_add_reaction

    • Add an emoji reaction to a message
    • Required inputs:
      • channel_id (string): The channel containing the message
      • timestamp (string): Message timestamp to react to
      • reaction (string): Emoji name without colons
    • Returns: Reaction confirmation
  5. slack_get_channel_history

    • Get recent messages from a channel
    • Required inputs:
      • channel_id (string): The channel ID
    • Optional inputs:
      • limit (number, default: 10): Number of messages to retrieve
    • Returns: List of messages with their content and metadata
  6. slack_get_thread_replies

    • Get all replies in a message thread
    • Required inputs:
      • channel_id (string): The channel containing the thread
      • thread_ts (string): Timestamp of the parent message
    • Returns: List of replies with their content and metadata
  7. slack_get_users

    • Get list of workspace users with basic profile information
    • Optional inputs:
      • cursor (string): Pagination cursor for next page
      • limit (number, default: 100, max: 200): Maximum users to return
    • Returns: List of users with their basic profiles
  8. slack_get_user_profile

    • Get detailed profile information for a specific user
    • Required inputs:
      • user_id (string): The user's ID
    • Returns: Detailed user profile information

Setup

  1. Create a Slack App:

    • Visit the Slack Apps page
    • Click "Create New App"
    • Choose "From scratch"
    • Name your app and select your workspace
  2. Configure Bot Token Scopes:
    Navigate to "OAuth & Permissions" and add these scopes:

    • channels:history - View messages and other content in public channels
    • channels:read - View basic channel information
    • chat:write - Send messages as the app
    • reactions:write - Add emoji reactions to messages
    • users:read - View users and their basic information
    • users.profile:read - View detailed profiles about users
  3. Install App to Workspace:

    • Click "Install to Workspace" and authorize the app
    • Save the "Bot User OAuth Token" that starts with xoxb-
  4. Get your Team ID (starts with a T) by following this guidance

Usage with Claude Desktop

Add the following to your claude_desktop_config.json:

NPX
{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-slack"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567",
        "SLACK_CHANNEL_IDS": "C01234567, C76543210"
      }
    }
  }
}
docker
{
  "mcpServers": {
    "slack": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SLACK_BOT_TOKEN",
        "-e",
        "SLACK_TEAM_ID",
        "-e",
        "SLACK_CHANNEL_IDS",
        "mcp/slack"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567",
        "SLACK_CHANNEL_IDS": "C01234567, C76543210"
      }
    }
  }
}

Usage with VS Code

For quick installation, click one of the installation buttons below...

Install with NPX in VS Code Install with NPX in VS Code Insiders

Install with Docker in VS Code Install with Docker in VS Code Insiders

For manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing Ctrl + Shift + P and typing Preferences: Open Settings (JSON).

Optionally, you can add it to a file called .vscode/mcp.json in your workspace. This will allow you to share the configuration with others.

Note that the mcp key is not needed in the .vscode/mcp.json file.

NPX
{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "slack_bot_token",
        "description": "Slack Bot Token (starts with xoxb-)",
        "password": true
      },
      {
        "type": "promptString",
        "id": "slack_team_id",
        "description": "Slack Team ID (starts with T)"
      }
    ],
    "servers": {
      "slack": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-slack"],
        "env": {
          "SLACK_BOT_TOKEN": "${input:slack_bot_token}",
          "SLACK_TEAM_ID": "${input:slack_team_id}"
        }
      }
    }
  }
}
Docker
{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "slack_bot_token",
        "description": "Slack Bot Token (starts with xoxb-)",
        "password": true
      },
      {
        "type": "promptString",
        "id": "slack_team_id",
        "description": "Slack Team ID (starts with T)"
      }
    ],
    "servers": {
      "slack": {
        "command": "docker",
        "args": ["run", "-i", "--rm", "mcp/slack"],
        "env": {
          "SLACK_BOT_TOKEN": "${input:slack_bot_token}",
          "SLACK_TEAM_ID": "${input:slack_team_id}"
        }
      }
    }
  }
}

Environment Variables

  1. SLACK_BOT_TOKEN: Required. The Bot User OAuth Token starting with xoxb-.
  2. SLACK_TEAM_ID: Required. Your Slack workspace ID starting with T.
  3. SLACK_CHANNEL_IDS: Optional. Comma-separated list of channel IDs to limit channel access (e.g., "C01234567, C76543210"). If not set, all public channels will be listed.

Troubleshooting

If you encounter permission errors, verify that:

  1. All required scopes are added to your Slack app
  2. The app is properly installed to your workspace
  3. The tokens and workspace ID are correctly copied to your configuration
  4. The app has been added to the channels it needs to access

Build

Docker build:

docker build -t mcp/slack -f src/slack/Dockerfile .

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.