Skip to main content
Version: 0.0.2

MCP Server Modes

The MCP (Model Context Protocol) server supports two operational modes to accommodate different deployment scenarios and architectural requirements.

Mode Overview​

FeatureStandalone ModeIntegrated Mode
PurposeMCP server onlyMCP + Webhook combined
EndpointsMCP endpoints onlyMCP + /slack/events
Use CaseClient library integrationFull Slack platform
Webhook Events❌ None✅ Real-time Slack events
Port UsageSingle portSingle port (both services)
DeploymentMCP-focusedFeature-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​

# 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

CLI Arguments (Standalone Mode)​

ArgumentTypeDefaultDescription
--transportchoicestdioTransport protocol: stdio, sse, streamable-http
--hoststring127.0.0.1Server bind address (HTTP transports only)
--portint3001Server port (HTTP transports only)
--mount-pathstring/mcpMount path (SSE transport only)
--log-levelstringINFOLogging verbosity
--timeoutint30Request timeout seconds
--max-retriesint3Network retry attempts
note

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​

# 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

CLI Arguments (Integrated Mode)​

ArgumentTypeDefaultDescription
--integratedflagFalseEnable integrated mode
--transportchoicestdioTransport: sse or streamable-http (stdio not supported in integrated mode)
--mount-pathstringNoneMount path (SSE transport only)
--hoststring127.0.0.1Server bind address
--portint8000Server port
--log-levelstringINFOLogging verbosity
--retryint3Network retry attempts
note

stdio transport is not supported in integrated mode. Only sse and streamable-http transports are available for integrated deployment.

Transport Options in Integrated Mode​

# 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

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 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

Available MCP Tools​

Both modes provide the same 6 MCP tools for Slack integration:

  1. post_slack_message - Send messages to channels
  2. read_slack_channels - List and read channel information
  3. reply_to_slack_thread - Reply to message threads
  4. add_slack_reaction - Add emoji reactions to messages
  5. read_slack_emojis - Get workspace emoji information
  6. 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
note

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.

For comprehensive MCP server setup:

For MCP protocol details:

For webhook server deployment modes: