Slack MCP Server
by Chisanan232
README.md
<h1 align="center">
Slack MCP Server
</h1>
<p align="center">
<a href="https://pypi.org/project/slack-mcp">
<img src="https://img.shields.io/pypi/v/slack-mcp?color=%23099cec&label=PyPI&logo=pypi&logoColor=white" alt="PyPI package version">
</a>
<a href="https://github.com/Chisanan232/slack-mcp-server/releases">
<img src="https://img.shields.io/github/release/Chisanan232/slack-mcp-server.svg?label=Release&logo=github" alt="GitHub release version">
</a>
<a href="https://github.com/Chisanan232/slack-mcp-server/actions/workflows/ci.yaml">
<img src="https://github.com/Chisanan232/slack-mcp-server/actions/workflows/ci.yaml/badge.svg" alt="CI/CD status">
</a>
<a href="https://codecov.io/gh/Chisanan232/slack-mcp-server" >
<img src="https://codecov.io/gh/Chisanan232/slack-mcp-server/graph/badge.svg?token=VVZ0cGPVvp"/>
</a>
<a href="https://results.pre-commit.ci/latest/github/Chisanan232/slack-mcp-server/master">
<img src="https://results.pre-commit.ci/badge/github/Chisanan232/slack-mcp-server/master.svg" alt="Pre-Commit building state">
</a>
<a href="https://sonarcloud.io/summary/new_code?id=Chisanan232_slack-mcp-server">
<img src="https://sonarcloud.io/api/project_badges/measure?project=Chisanan232_slack-mcp-server&metric=alert_status" alt="Code quality level">
</a>
<a href="https://chisanan232.github.io/slack-mcp-server/">
<img src="https://github.com/Chisanan232/slack-mcp-server/actions/workflows/documentation.yaml/badge.svg" alt="documentation CI status">
</a>
<a href="https://opensource.org/licenses/MIT">
<img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="Software license">
</a>
</p>
<img align="center" src="https://raw.githubusercontent.com/Chisanan232/slack-mcp-server/refs/heads/master/docs/static/img/slack_mcp_server_logo.png" alt="slack-mcp-server logo" />
## Overview
𦾠**A strong MCP (Model Context Protocol) server for Slack integration**, providing standardized access to Slack's API features through both MCP tools and webhook processing.
**Key Features:**
- š¤ **MCP Server**: Provides 6 essential Slack tools for AI assistants and clients
- šŖ **Webhook Server**: Processes real-time Slack events with secure verification
- š **Integrated Mode**: Combined MCP + webhook server for complete Slack platform integration
- š **Multiple Transports**: Supports stdio, SSE, HTTP streaming, and Socket Mode protocols
- š¦ **Easy Deployment**: Docker, Kubernetes, and cloud platform ready
- š **Socket Mode**: WebSocket-based transport for environments without public HTTP endpoints
[//]: # (- š”ļø **Enterprise Security**: HMAC-SHA256 verification, token management, and comprehensive logging)
**Use Cases:**
- Building AI assistants with Slack integration
- Creating custom automation tools for Slack workflows
- Developing real-time Slack applications with event processing
- Integrating Slack with other tools and platforms
## Python versions support
[](https://pypi.org/project/slack-mcp)
**slack-mcp-server** supports Python 3.12+ for optimal performance and modern language features.
## Quickly Start
### Installation
Choose your preferred installation method:
#### Using pip
```bash
# Minimal base (protocol only)
pip install slack-mcp
# MCP server feature set
pip install "slack-mcp[mcp]"
# Webhook server feature set
pip install "slack-mcp[webhook]"
# Everything
pip install "slack-mcp[all]"
```
#### Using uv (recommended)
```bash
# Minimal base
uv add slack-mcp
# MCP server / Webhook / All
uv add "slack-mcp[mcp]"
uv add "slack-mcp[webhook]"
uv add "slack-mcp[all]"
```
#### Using poetry
```bash
# Minimal base
poetry add slack-mcp
# MCP server / Webhook / All
poetry add slack-mcp -E mcp
poetry add slack-mcp -E webhook
poetry add slack-mcp -E all
```
> Note: Installation extras
> - [mcp]: Installs the MCP server feature set (SSE/Streamable transports; not the integrated webhook mode)
> - [webhook]: Installs FastAPI/Uvicorn and related parts for Slack webhook handling (not the integrated mode)
> - [all]: Installs everything in this project
> - Base (no extra): Minimal install with only the base protocol rules of this project
### Basic Usage
#### 1. Set Up Environment Variables
**For Production/Development:**
```bash
# Copy the production environment template
cp .env.example .env
# Edit with your actual values
# Required: Slack bot token
export SLACK_BOT_TOKEN="xoxb-your-bot-token-here"
# Optional: For webhook server
export SLACK_SIGNING_SECRET="your-signing-secret"
# Optional: For Socket Mode transport
export SLACK_APP_TOKEN="xapp-your-app-token-here"
```
**For Testing:**
```bash
# Copy the test environment template
cp test/.env.test.example test/.env.test
# Edit with your test values (used by pytest)
# Required: E2E test token
export E2E_TEST_API_TOKEN="xoxb-your-test-token"
```
#### 2. Start MCP Server (Standalone)
```bash
# Start with stdio transport (default)
slack-mcp-server
# Start with SSE transport for web clients
slack-mcp-server --transport sse --host 0.0.0.0 --port 3001
# Start with Socket Mode transport for WebSocket connections
slack-mcp-server --transport socket-mode --app-token xapp-your-app-token
```
#### 3. Start Webhook Server (Standalone)
```bash
# Start standalone webhook server
slack-webhook-server --host 0.0.0.0 --port 3000
```
#### 4. Start Integrated Server (MCP + Webhook)
```bash
# Combined server with both MCP and webhook functionality
slack-mcp-server --integrated --transport sse --port 8000
```
### Available MCP Tools
| Tool | Description | Usage |
|-------------------------------|------------------------------|-----------------------------|
| `slack_post_message` | Send messages to channels | Post notifications, updates |
| `slack_read_channel_messages` | Read channel message history | Analyze conversations |
| `slack_read_thread_messages` | Read thread replies | Follow discussions |
| `slack_thread_reply` | Reply to message threads | Engage in conversations |
| `slack_read_emojis` | Get workspace emojis | Access custom reactions |
| `slack_add_reactions` | Add emoji reactions | React to messages |
### Docker Quick Start
```bash
# Pull and run with environment variables
docker run -p 3000:3000 \
-e SLACK_BOT_TOKEN="xoxb-your-token" \
-e SLACK_SIGNING_SECRET="your-secret" \
chisanan232/slack-mcp-server:latest
```
### Socket Mode Transport
Socket Mode is a WebSocket-based transport that allows the Slack MCP server to communicate with Slack without requiring public HTTP endpoints. This is particularly useful for:
- Applications behind firewalls or NAT
- Environments without public internet access
- Enhanced security through WebSocket tunneling
- Development and testing without public infrastructure
**Setup Requirements:**
1. **Enable Socket Mode in your Slack App:**
- Go to https://api.slack.com/apps ā Your App ā Basic Information
- Enable Socket Mode
- Create an App-Level Token with `connections:write` scope
2. **Configure Environment Variables:**
```bash
# Required for Socket Mode
export SLACK_BOT_TOKEN="xoxb-your-bot-token-here"
export SLACK_APP_TOKEN="xapp-your-app-token-here"
```
**Usage Examples:**
```bash
# Start with Socket Mode transport
slack-mcp-server --transport socket-mode --app-token xapp-your-app-token
# Socket Mode with app token from environment variable
export SLACK_APP_TOKEN="xapp-your-app-token"
slack-mcp-server --transport socket-mode
```
**Important Notes:**
- Socket Mode is a standalone transport and **cannot be used with integrated mode**
- The app token must start with `xapp-` prefix
- Socket Mode uses WebSocket connections directly to Slack's servers
- No public HTTP endpoints or webhooks are required
- Automatic reconnection with exponential backoff is built-in
## Documentation
Comprehensive documentation is available at **[https://chisanan232.github.io/slack-mcp-server/](https://chisanan232.github.io/slack-mcp-server/)**
### Documentation Sections
- š **[User Guide](https://chisanan232.github.io/slack-mcp-server/docs/next/introduction)** - Installation, configuration, and usage
- š ļø **[Developer Guide](https://chisanan232.github.io/slack-mcp-server/dev/next)** - Contributing, architecture, and development workflow
- šļø **[API Reference](https://chisanan232.github.io/slack-mcp-server/docs/next/server-references/)** - Complete CLI and configuration reference
- š **[Deployment Guide](https://chisanan232.github.io/slack-mcp-server/docs/next/server-references/deployment-guide)** - Production deployment patterns
### Quick Links
- [Requirements](https://chisanan232.github.io/slack-mcp-server/docs/next/quick-start/requirements)
- [Installation Guide](https://chisanan232.github.io/slack-mcp-server/docs/next/quick-start/installation)
- [Server Modes](https://chisanan232.github.io/slack-mcp-server/docs/next/server-references/mcp-server/server-modes)
- [Environment Configuration](https://chisanan232.github.io/slack-mcp-server/docs/next/server-references/environment-configuration)
- [CI/CD Workflows](https://chisanan232.github.io/slack-mcp-server/dev/next/ci-cd/)
## Coding style and following rules
**slack-mcp-server** follows coding styles **black** and **PyLint** to control code quality, with additional tools for comprehensive code analysis.
[](https://github.com/psf/black)
[](https://github.com/pylint-dev/pylint)
[](https://pycqa.github.io/isort/)
[](http://mypy-lang.org/)
### Code Quality Tools
- **Black**: Consistent code formatting
- **PyLint**: Code analysis and style checking
- **MyPy**: Static type checking
- **isort**: Import sorting and organization
- **Pre-commit**: Automated code quality checks
### Development Workflow
```bash
# Install development dependencies
uv sync --dev
# Run code quality checks
uv run pre-commit run --all-files
# Run tests
uv run pytest
```
## Downloading state
Current download statistics for **slack-mcp** package:
[](https://pepy.tech/project/slack-mcp)
[](https://pepy.tech/project/slack-mcp)
[](https://pepy.tech/project/slack-mcp)
### Container Downloads
[](https://hub.docker.com/r/chisanan232/slack-mcp-server)
## Contributing
We welcome contributions! Please see our [Contributing Guide](https://chisanan232.github.io/slack-mcp-server/docs/next/contribute) for details.
### Quick Contribution Steps
1. **[Report Issues](https://chisanan232.github.io/slack-mcp-server/docs/next/contribute/report-bug)** - Found a bug? Let us know!
2. **[Request Features](https://chisanan232.github.io/slack-mcp-server/docs/next/contribute/request-changes)** - Have ideas? We'd love to hear them!
3. **[Join Discussions](https://chisanan232.github.io/slack-mcp-server/docs/next/contribute/discuss)** - Connect with the community
4. **[Development Setup](https://chisanan232.github.io/slack-mcp-server/dev/next/workflow)** - Start contributing code
### Extend with Custom Queue Backend Plugins
Want to add support for additional message queue systems? Create custom queue backend plugins using our template:
**[Slack MCP Server Backend MQ Template](https://github.com/Chisanan232/Slack-MCP-Server-Backend-MQ-Template)** - Quick-start template for developing queue backend plugins
- Complete project structure with best practices
- Pre-configured CI/CD workflows
- Comprehensive documentation
š **Documentation**: [https://chisanan232.github.io/Slack-MCP-Server-Backend-MQ-Template/](https://chisanan232.github.io/Slack-MCP-Server-Backend-MQ-Template/)
## License
[MIT License](./LICENSE)
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessUnresponsive