How to Run Slack MCP Server
This guide explains how to run and configure the Slack MCP Server after installation.
Configuration
Before running the server, you need to set up your Slack API token. You have several options:
Using a .env File (Recommended)
-
Create a
.envfile in your project directory:SLACK_API_TOKEN=your_slack_api_token -
Specify the path to your
.envfile when starting the server:- pip
- poetry
- uv
slack-mcp-server --env /path/to/.envpoetry run slack-mcp-server --env /path/to/.envuv run slack-mcp-server --env /path/to/.env
Using Command-line Arguments
You can provide your API token directly as a command-line argument:
- pip
- poetry
- uv
slack-mcp-server --token your_slack_api_token
poetry run slack-mcp-server --token your_slack_api_token
uv run slack-mcp-server --token your_slack_api_token
Running the Server
This section covers running the server with Python. For containerized deployments, see 🐳 Docker Usage section below, which provides multiple server modes and production-ready configurations.
Basic Usage
Start the server with default settings using Python:
- pip
- poetry
- uv
slack-mcp-server
poetry run slack-mcp-server
uv run slack-mcp-server
This will start the server with HTTP streaming transport on port 8000.
Specifying Transport Type
You can choose between HTTP streaming and Server-Sent Events (SSE) transport:
- pip
- poetry
- uv
For HTTP streaming (default)
slack-mcp-server --transport streamable-http
For SSE
slack-mcp-server --transport sse
For HTTP streaming (default)
poetry run slack-mcp-server --transport streamable-http
For SSE
poetry run slack-mcp-server --transport sse
For HTTP streaming (default)
uv run slack-mcp-server --transport streamable-http
For SSE
uv run slack-mcp-server --transport sse
Custom Port
Run the server on a specific port:
- pip
- poetry
- uv
slack-mcp-server --port 8080
poetry run slack-mcp-server --port 8080
uv run slack-mcp-server --port 8080
Full Example
- pip
- poetry
- uv
slack-mcp-server --env /path/to/.env --transport sse --port 8080
poetry run slack-mcp-server --env /path/to/.env --transport sse --port 8080
uv run slack-mcp-server --env /path/to/.env --transport sse --port 8080
🐳 Docker Usage
The Slack MCP Server provides a Docker image for easy deployment and containerized environments. The Docker container supports multiple server modes controlled by environment variables.
Quick Start with Docker
Pull and run the Docker image:
# Pull the latest image
docker pull chisanan232/slack-mcp-server:latest
# Run with minimal configuration (defaults to MCP server)
docker run -d -p 8000:8000 \
-e SLACK_BOT_TOKEN=xoxb-your-bot-token-here \
chisanan232/slack-mcp-server
Docker Server Modes
The Docker container uses the SERVICE_TYPE environment variable to determine which server to run:
| SERVICE_TYPE | Description | Entry Point |
|---|---|---|
mcp (default) | MCP server only | slack-mcp-server |
webhook | Webhook server only | slack-events-server |
integrated | Combined MCP + webhook via MCP entry | slack-mcp-server --integrated |
integrated-webhook | Combined MCP + webhook via webhook entry | slack-events-server --integrated |
Environment Variables by Mode
🎯 Main Control Variable
| Environment Variable | Description | Default |
|---|---|---|
SERVICE_TYPE | Server mode: mcp, webhook, integrated, integrated-webhook | mcp |
🤖 MCP Server Variables (SERVICE_TYPE=mcp or integrated)
| Environment Variable | Description | Default |
|---|---|---|
SLACK_BOT_TOKEN | Slack bot token (required) - format: xoxb-... | - |
MCP_TRANSPORT | Transport mode: stdio, sse, streamable-http | stdio |
MCP_HOST | Host for HTTP transports | - |
MCP_PORT | Port for HTTP transports | - |
MCP_MOUNT_PATH | Mount path for HTTP transports | - |
MCP_LOG_LEVEL | Logging level: debug, info, warning, error | - |
MCP_ENV_FILE | Path to custom .env file | - |
MCP_NO_ENV_FILE | Disable .env file loading (set to true) | - |
MCP_INTEGRATED | Enable integrated mode (set to true) | - |
MCP_RETRY | Number of retry attempts for network operations | - |