Configuration Guide
This document provides comprehensive configuration guidance for the Slack MCP Client, covering everything from basic setup to advanced deployment scenarios.
Overview
The Slack MCP Client has evolved from a simple MCP server connector to a comprehensive LLM orchestration platform. This guide outlines the unified configuration approach that prioritizes simplicity, DRY principles, and excellent user experience.
Naming Convention
Configuration files use camelCase naming for JSON fields (e.g., botToken, mcpServers, useNativeTools). This follows modern JSON API conventions and provides better IDE support with the included JSON schema.
Note: The application automatically detects and converts legacy snake_case configurations for backward compatibility.
Configuration Architecture
Philosophy: Single File, Logical Sections
Reject complexity. Embrace simplicity.
Instead of multiple configuration files that create cognitive overhead, use a single, well-structured configuration file with logical sections.
Unified Configuration Structure
config.json # Single configuration file
custom-prompt.txt # Optional custom prompt file
├── examples/
│ ├── minimal.json # Minimal setup example
│ ├── development.json # Development config example
│ ├── production.json # Production config example
│ └── custom-prompt.txt # Custom prompt example
├── schema/
│ └── config-schema.json # JSON schema for validation
└── scripts/
└── migrate-config.sh # Migration utilityJSON Schema Support
The configuration includes comprehensive JSON schema support for enhanced developer experience:
Schema Reference: Include
"$schema": "https://github.com/tuannvm/slack-mcp-client/schema/config-schema.json"for IDE supportAutocomplete: IDEs provide intelligent autocomplete for configuration fields
Validation: Real-time validation of field types, required fields, and value constraints
Documentation: Inline field descriptions and examples
Complete Configuration Reference
Below is the complete configuration schema showing all available options. Fields marked with ⭐ are required, fields marked with ⚙️ have smart defaults, and fields marked with 🔧 are optional.
Legend:
⭐ Required: Must be provided or application will fail to start
⚙️ Smart Default: Automatically set if not specified
🔧 Optional: Can be omitted, no default value
Configuration Examples by User Type
1. Quick Start User (5 minutes)
Need: Get up and running in minutes with minimal setup
2. Production User (15 minutes)
Need: Robust configuration with monitoring and security
3. Advanced User (30 minutes)
Need: Maximum customization and control
Environment Variables
Required Environment Variables
Optional Environment Variable Overrides
Slack App Setup
Token Types
The application requires two types of tokens:
Bot Token (
SLACK_BOT_TOKEN): Starts withxoxb-App-Level Token (
SLACK_APP_TOKEN): Starts withxapp-
Required Bot Token Scopes
Add these OAuth scopes to your Bot Token in the "OAuth & Permissions" section:
Essential Scopes:
app_mentions:read- Allows the bot to receive mention eventschat:write- Allows the bot to post messagesim:history- Allows the bot to read direct messagesim:read- Allows the bot to receive DM events
Additional Scopes (for full functionality):
channels:history- Allows reading public channel historygroups:history- Allows reading private channel historympim:history- Allows reading multi-person IM history
App-Level Token Configuration
Go to the "Socket Mode" section in your Slack app settings
Enable Socket Mode
Create an App-Level Token with the
connections:writescopeUse this token for the
SLACK_APP_TOKENenvironment variable
Event Subscriptions
In the "Event Subscriptions" section:
Turn ON Event Subscriptions
Under "Subscribe to bot events", add these event subscriptions:
message.im- For direct messages to your appapp_mention- For mentions of your app in channels
App Home Configuration
In the "App Home" section:
Enable the Messages Tab
Turn ON "Allow users to send Slash commands and messages from the messages tab"
Custom Prompt Configuration
Option 1: Simple Inline Prompt (Most Common)
Option 2: File-Based Prompt (For Long Prompts)
Priority: customPromptFile takes precedence over customPrompt if both are set
Kubernetes Deployment
Basic Helm Configuration
Security Best Practices
Use Secrets for tokens and API keys
Use ConfigMaps for non-sensitive configuration
Secret key names must match environment variable names in config file
Consider using external secret management (AWS Secrets Manager, Vault, etc.)
Configuration Validation
Runtime Validation
The application validates configuration after loading environment variables and applying defaults:
Common Validation Errors
Missing Required Fields:
Invalid Provider Configuration:
Migration from Legacy Format
The application supports both automatic detection and manual migration from legacy formats:
Automatic Detection (Recommended)
Legacy configurations are automatically detected and converted at runtime:
Legacy
mcp-servers.json: Automatically detected by presence ofmcpServersfield withoutversion,slack, orllmfieldsSnake_case format: Legacy snake_case field names are automatically converted during loading
No action required: Existing configurations continue to work without changes
Manual Migration
For permanent migration to the new format:
Automatic Migration: Run
./slack-mcp-client --migrate-config --config legacy-config.jsonManual Migration: Use the provided examples as templates
Validation: Test with
--config-validatebefore deployment
Migration Benefits
IDE Support: JSON schema provides autocomplete and validation
Modern Format: camelCase follows current JSON API conventions
Better Documentation: Inline field descriptions via schema
Troubleshooting
Common Issues
"Sending messages to this app has been turned off"
Check App Home settings
Verify Event Subscriptions are configured
Ensure app is installed with required scopes
Configuration validation failures
Check environment variables are set
Validate JSON syntax
Ensure required fields are present
MCP server connection issues
Check server commands and arguments
Verify network connectivity for URL-based servers
Review server logs for initialization errors
Debug Mode
Enable debug logging for detailed troubleshooting:
Best Practices
Start Simple: Begin with minimal configuration, add complexity as needed
Use Environment Variables: Never hardcode secrets in configuration files
Validate Early: Use
--config-validateto catch issues before deploymentMonitor Usage: Enable monitoring to track performance and costs
Version Control: Keep configuration examples in version control
Document Changes: Update configuration documentation when adding new features
Advanced Configuration
For AI/ML-specific configuration options including enhanced LLM providers, advanced RAG settings, and production AI features, see the AI Configuration Guide.
Support
For configuration issues:
Check the troubleshooting section above
Validate your configuration with
--config-validateReview application logs for specific error messages
Consult the AI Configuration Guide for advanced features
Last updated
Was this helpful?