home / mcp / slack mcp server

Slack MCP Server

Provides Slack workspace operations via MCP, including channels, messages, users, and reactions.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "ampcome-mcps-slack-mcp": {
      "command": "uvx",
      "args": [
        "git+https://github.com/ampcome-mcps/slack-mcp.git"
      ],
      "env": {
        "NANGO_BASE_URL": "NANGO BASE URL",
        "NANGO_SECRET_KEY": "ENTER YOUR NANAGO SECRET KEY",
        "NANGO_CONNECTION_ID": "ENTER NANGO CONNECTION ID",
        "NANGO_INTEGRATION_ID": "ENTER NANGO INTEGRATION ID"
      }
    }
  }
}

You deploy this MCP server to connect AI assistants with Slack workspaces, enabling channels, messages, users, and reactions to be managed through natural interactions. It exposes Slack operations as MCP tools so your assistant can perform real-time workspace tasks securely and with proper authorization.

How to use

You interact with the Slack MCP Server through an MCP client. The server exposes a set of tools that let you list channels, read messages, post new messages, reply to threads, add reactions, and fetch user details. Use natural language prompts to perform actions, such as listing channels, posting a message to a channel, retrieving recent messages from a channel, replying to a thread, or showing a user’s profile. The tools handle pagination automatically for listing operations.

Typical capabilities include: listing public channels, posting messages, replying in threads, retrieving channel history, and adding emoji reactions. You can also fetch user lists and profiles as needed for context in conversations.

How to install

Prerequisites you need before installing: Python 3.13 or newer, a Slack Bot Token with the necessary permissions, and the Slack Team ID. If you plan to manage credentials via a third-party, ensure Nango is available for credential handling.

Step by step commands you should run from your terminal:

# Create a working directory and enter it
mkdir slack-mcp-server
cd slack-mcp-server

# Create a Python virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies (assumes an editable install from source)
pip install -e .

Configuration

Environment variables you need to set for this server and the MCP client integration are shown here. Create a .env file in the project root with the following values.

NANGO_BASE_URL=https://api.nango.dev
NANGO_SECRET_KEY=your-nango-secret-key
NANGO_CONNECTION_ID=your-connection-id
NANGO_INTEGRATION_ID=slack

Claude Desktop configuration

Configure Claude Desktop to load the MCP server by adding the following JSON configuration to your Claude desktop config file.

{
  "mcpServers": {
    "slack": {
      "command": "uvx",
      "args": ["git+https://github.com/ampcome-mcps/slack-mcp.git"],
      "env": {
        "NANGO_BASE_URL": "NANGO BASE URL",
        "NANGO_SECRET_KEY":"ENTER YOUR NANAGO SECRET KEY",
        "NANGO_CONNECTION_ID":"ENTER NANGO CONNECTION ID",
        "NANGO_INTEGRATION_ID":"ENTER NANGO INTEGRATION ID"
      }
    }
  }
}

Troubleshooting

If you encounter authentication errors, verify your Slack Bot Token and that it has the required scopes. Ensure the bot has access to the target channels and that you’re not hitting rate limits. Review your OAuth scopes and nonce configuration for secure operation. Logs are emitted to stderr to help diagnose issues during development.

Available tools

slack_list_channels

List public channels with pagination to browse workspace channels.

get_conversation_info

Fetch detailed information about a specific Slack channel.

slack_post_message

Post a new message to a channel as the bot.

slack_reply_to_thread

Post a reply to a specific message thread in a channel.

slack_get_channel_history

Retrieve recent messages from a channel to review conversation context.

slack_get_thread_replies

Get all replies in a specific message thread.

slack_get_users

List all users in the Slack workspace.

slack_get_user_profile

Fetch a detailed user profile for a workspace member.

slack_add_reaction

Add an emoji reaction to a message.