Skip to main content
Version: 0.1.0

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: