MCP Server Modes
The MCP (Model Context Protocol) server supports two operational modes to accommodate different deployment scenarios and architectural requirements.
Mode Overview
| Feature | Standalone Mode | Integrated Mode |
|---|---|---|
| Purpose | MCP server only | MCP + Webhook combined |
| Endpoints | MCP endpoints only | MCP + /slack/events |
| Use Case | Client library integration | Full Slack platform |
| Webhook Events | ❌ None | ✅ Real-time Slack events |
| Port Usage | Single port | Single port (both services) |
| Deployment | MCP-focused | Feature-complete |
Standalone Mode
The standalone MCP server mode provides a dedicated MCP server focused solely on serving MCP tools and client integrations. This lightweight deployment option is ideal for applications that only need MCP functionality without webhook event processing.
Endpoints
- Base URL: Depends on transport (stdio: N/A, HTTP:
http://your-server:port) - MCP Endpoints: Transport-specific (stdio, SSE
/mcp, streamable-http/)
Command Line Usage
- Basic Usage
- Development
- Production
# Start standalone MCP server with default stdio transport
slack-mcp-server
# Explicit configuration with SSE transport
slack-mcp-server \
--transport sse \
--host 0.0.0.0 \
--port 3001
# Development environment
slack-mcp-server \
--transport sse \
--host 127.0.0.1 \
--port 3001 \
--log-level DEBUG
# Production environment
slack-mcp-server \
--transport sse \
--host 0.0.0.0 \
--port 3001 \
--log-level INFO \
--timeout 60 \
--max-retries 3
CLI Arguments (Standalone Mode)
| Argument | Type | Default | Description |
|---|---|---|---|
--transport | choice | stdio | Transport protocol: stdio, sse, streamable-http |
--host | string | 127.0.0.1 | Server bind address (HTTP transports only) |
--port | int | 3001 | Server port (HTTP transports only) |
--mount-path | string | /mcp | Mount path (SSE transport only) |
--log-level | string | INFO | Logging verbosity |
--timeout | int | 30 | Request timeout seconds |
--max-retries | int | 3 | Network retry attempts |
In standalone mode, the MCP server operates independently and does not include webhook functionality. For webhook events, use integrated mode.
Integrated Mode
The integrated mode combines both MCP (Model Context Protocol) and webhook functionalities in a single deployment. When using the MCP server with --integrated flag, it creates a unified FastAPI application with both MCP tools and webhook event processing.
Endpoints
- Base URL:
http://your-server:port - MCP Endpoints:
/mcp(SSE) or/(streamable-http) - Webhook Endpoint:
POST /slack/events
Command Line Usage
- Basic Usage
- Development
- Production
# Start integrated server with default SSE transport
slack-mcp-server --integrated
# Explicit configuration with SSE transport
slack-mcp-server \
--integrated \
--transport sse \
--mount-path /mcp \
--host 0.0.0.0 \
--port 8000
# Development environment
slack-mcp-server \
--integrated \
--transport sse \
--host 127.0.0.1 \
--port 8000 \
--log-level DEBUG
# Production with HTTP streaming
slack-mcp-server \
--integrated \
--transport streamable-http \
--host 0.0.0.0 \
--port 8000 \
--log-level INFO \
--retry 5
CLI Arguments (Integrated Mode)
| Argument | Type | Default | Description |
|---|---|---|---|
--integrated | flag | False | Enable integrated mode |
--transport | choice | stdio | Transport: sse or streamable-http (stdio not supported in integrated mode) |
--mount-path | string | None | Mount path (SSE transport only) |
--host | string | 127.0.0.1 | Server bind address |
--port | int | 8000 | Server port |
--log-level | string | INFO | Logging verbosity |
--retry | int | 3 | Network retry attempts |
stdio transport is not supported in integrated mode. Only sse and streamable-http transports are available for integrated deployment.
Transport Options in Integrated Mode
- SSE Transport
- HTTP Streaming
# Server-Sent Events transport
slack-mcp-server \
--integrated \
--transport sse \
--mount-path /api/mcp
# Endpoints created:
# GET /api/mcp - MCP Server-Sent Events endpoint
# POST /api/mcp - MCP HTTP requests (optional)
# POST /slack/events - Webhook endpoint
# HTTP streaming for load balancer compatibility
slack-mcp-server \
--integrated \
--transport streamable-http
# Endpoints created:
# POST / - MCP HTTP streaming endpoint
# POST /slack/events - Webhook endpoint
Common Configuration
Both modes share the same MCP tools and Slack integration capabilities.
Required Environment Variables
export SLACK_BOT_TOKEN="xoxb-your-bot-token-here"
Optional Environment Variables
- Standalone Mode
- Integrated Mode
# Standalone MCP server configuration
export LOG_LEVEL="INFO"
export SLACK_BOT_TOKEN="xoxb-your-bot-token"
# For HTTP transports only
export MCP_HOST="127.0.0.1"
export MCP_PORT="8000"
export MCP_MOUNT_PATH="/mcp" # SSE only
# Integrated mode configuration (MCP + webhook combined)
export SLACK_SIGNING_SECRET="your_signing_secret"
export SLACK_BOT_TOKEN="xoxb-your-bot-token"
export LOG_LEVEL="INFO"
# Server configuration
export MCP_HOST="127.0.0.1"
export MCP_PORT="8000"
export MCP_MOUNT_PATH="/mcp" # For SSE transport only
# Queue backend for webhook processing
export QUEUE_BACKEND_TYPE="redis"
export REDIS_URL="redis://localhost:6379/0"
Available MCP Tools
Both modes provide the same 6 MCP tools for Slack integration:
- post_slack_message - Send messages to channels
- read_slack_channels - List and read channel information
- reply_to_slack_thread - Reply to message threads
- add_slack_reaction - Add emoji reactions to messages
- read_slack_emojis - Get workspace emoji information
- read_slack_threads - Read message thread contents
Choosing the Right Mode
Use Standalone Mode When:
- You only need MCP tool capabilities
- Building client library integrations
- No real-time webhook events required
- Deploying MCP server separately from webhook processing
- Minimizing resource usage and dependencies
Use Integrated Mode When:
- You need both MCP tools and real-time webhook events
- Building a unified Slack integration platform
- Simplifying deployment with a single server process
- Processing webhook events alongside MCP tool usage
- Creating comprehensive Slack applications that respond to events
Both standalone and integrated modes are started using the slack-mcp-server command. The key difference is adding the --integrated flag for combined MCP+webhook functionality.
Related Documentation
For comprehensive MCP server setup:
- Environment Configuration - Authentication and environment setup
- CLI Reference - Complete command-line options
- CLI Execution Methods - Different ways to run the server
- Deployment Guide - Production deployment patterns
For MCP protocol details:
- MCP Official Documentation - Protocol specification
- MCP Server Tools - Slack integration capabilities
For webhook server deployment modes:
- Webhook Server Modes - Webhook standalone vs integrated deployment