Slack

Slack

By modelcontextprotocol GitHub

Channel management and messaging capabilities

slack messaging
Overview

What is Slack?

Slack is a channel management and messaging solution that enables seamless interaction within workspaces, integrating with various tools for efficiency.

How to use Slack?

To use Slack, create a Slack app, configure necessary bot token scopes, and install the app to your workspace. The system supports various commands to manage channels, post messages, and retrieve user information.

Key features of Slack?

  • List public channels in the workspace
  • Post messages to channels
  • Reply to message threads
  • Add emoji reactions to messages
  • Retrieve channel message history
  • Get detailed user profiles

Use cases of Slack?

  1. Team communication across multiple channels
  2. Project management using message threads
  3. Integrating with third-party applications and services

FAQ from Slack?

  • What is required to set up Slack?

You need to create a Slack app, configure scopes, and install it in your workspace.

  • Can Slack be integrated with other tools?

Yes, Slack supports integration with various third-party applications to enhance productivity.

  • Is there a limit on the number of channels I can manage?

The maximum number of channels returned in a single query can be set to 200, but there is no overall limit on channels within a workspace.

Content

Slack MCP Server

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

Tools

  1. slack_list_channels

    • List public 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
  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"
      }
    }
  }
}

docker

{
  "mcpServers": {
    "slack": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SLACK_BOT_TOKEN",
        "-e",
        "SLACK_TEAM_ID",
        "mcp/slack"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

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 .

License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Tools

slack_list_channels

List public channels in the workspace with pagination

slack_post_message

Post a new message to a Slack channel

slack_reply_to_thread

Reply to a specific message thread in Slack

slack_add_reaction

Add a reaction emoji to a message

slack_get_channel_history

Get recent messages from a channel

slack_get_thread_replies

Get all replies in a message thread

slack_get_users

Get a list of all users in the workspace with their basic profile information

slack_get_user_profile

Get detailed profile information for a specific user

Klavis AI (YC X25): Open Source MCP Infra for Everyone

slack open-source
View Details

A Slack bot and MCP client acts as a bridge between Slack and Model Context Protocol (MCP) servers. Using Slack as the interface, it enables large language models (LLMs) to connect and interact with various MCP servers through standardized MCP tools.

slack mcp
View Details