Provides comprehensive tools for interacting with Slack workspaces, including channel management, messaging with Block Kit formatting, user management, file uploads, reactions, message search, and workspace administration through the Slack Web API.
Slack MCP Server
A Model Context Protocol (MCP) server that provides tools for interacting with Slack workspaces through the Slack Web API.
Features
Channel Management
- list_channels - List all channels in the workspace
- get_channel_info - Get detailed information about a specific channel
- create_channel - Create a new channel
- archive_channel - Archive a channel
- unarchive_channel - Unarchive a channel
- set_channel_topic - Set channel topic
- set_channel_purpose - Set channel purpose
User Management
- list_users - List all users in the workspace
- get_user_info - Get detailed information about a specific user
- invite_to_channel - Invite users to a channel
Messaging
- send_message - Send a message to a channel (supports Block Kit)
- update_message - Update an existing message (supports Block Kit)
- delete_message - Delete a message
- get_channel_history - Get message history for a channel
- search_messages - Search for messages across the workspace
Rich Message Formatting (Block Kit)
- send_formatted_message - Send formatted messages with headers, sections, fields
- send_notification_message - Send status notifications with emoji indicators
- send_list_message - Send formatted lists with titles and descriptions
File Management
- upload_file - Upload a file to one or more channels
Reactions
- add_reaction - Add a reaction to a message
- remove_reaction - Remove a reaction from a message
Workspace
- get_team_info - Get information about the Slack workspace/team
Installation
Using pip (Recommended - Global Install)
For use with Claude Desktop or Claude CLI, install globally:
From source
Configuration
Secure Credential Storage (Recommended)
The Slack MCP Server uses macOS Keychain for secure credential storage. This is much safer than storing tokens in files.
Quick Setup
The setup wizard will:
- Guide you through obtaining a Slack API token
- Securely store credentials in your macOS Keychain
- Validate your configuration
Manual Keychain Setup
Environment Variables (Fallback)
If you prefer environment variables or are not on macOS, create a .env
file:
⚠️ Security Warning: Environment variables and .env
files are less secure than keychain storage.
Getting a Slack API Token
- Go to api.slack.com/apps
- Create a new app or select an existing one
- Navigate to "OAuth & Permissions"
- Add the required OAuth scopes (see below)
- Install the app to your workspace
- Copy the "Bot User OAuth Token" (starts with
xoxb-
)
Required OAuth Scopes
The following OAuth scopes are required for full functionality:
Core Scopes:
channels:read
- View basic channel informationchannels:manage
- Create and manage public channelsgroups:read
- View private channel informationgroups:write
- Create and manage private channelschat:write
- Send messagesfiles:write
- Upload filesim:read
- View direct message channelsmpim:read
- View group direct message channelsreactions:read
- View reactionsreactions:write
- Add and remove reactionsteam:read
- View team informationusers:read
- View user information
⚠️ Search Limitation:
The search_messages
tool uses Slack's search API which requires user tokens with the search:read
scope. Since this server is designed for bot tokens (xoxb-
), search functionality will not work. Consider removing this feature or switching to user token authentication if search is needed.
Usage with Claude CLI (Recommended)
After installing globally, add the server using Claude CLI. First, find your slack-mcp-server installation path:
Then add it with Claude CLI:
For example:
This automatically configures the server in your Claude Desktop configuration.
Usage with Claude Desktop (Manual Configuration)
Alternatively, you can manually add this to your claude_desktop_config.json
:
With Keychain Storage (Recommended)
With Environment Variables
Usage with MCP Client
Development
Setting up the development environment
Running tests
Code formatting
Examples
List public channels
Send a message
Search for messages
Upload a file
Send a formatted message with Block Kit
Send a notification message
Send a list message
Send message with custom Block Kit
Error Handling
The server returns JSON-formatted error messages when operations fail:
Common error codes:
not_authed
- Invalid or missing API tokenchannel_not_found
- Channel doesn't existuser_not_found
- User doesn't existmessage_not_found
- Message doesn't existno_permission
- Bot lacks required permissionsrate_limited
- API rate limit exceeded
Security Considerations
- 🔐 Keychain Storage: Use macOS Keychain for secure credential storage (recommended)
- API Token: Never commit your Slack API token to version control
- Permissions: Only grant the minimum required OAuth scopes
- Rate Limits: The server respects Slack's rate limits (see Slack Rate Limits)
- Message Content: Be mindful of sensitive information in messages and files
Credential Management Commands
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details
Support
For issues and questions, please create an issue in the repository.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Enables interaction with Slack workspaces through comprehensive channel management, messaging, user management, file uploads, and Block Kit formatting. Features secure credential storage via macOS Keychain and supports all major Slack operations including reactions and workspace information.
- Features
- Installation
- Configuration
- Usage with Claude CLI (Recommended)
- Usage with Claude Desktop (Manual Configuration)
- Usage with MCP Client
- Development
- Examples
- Error Handling
- Security Considerations
- Contributing
- License
- Support
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityEnables interaction with Slack workspaces as a user, supporting channel listing, message posting, threading, reactions, and user management via the Slack API.Last updated -88JavaScriptMIT License
- AsecurityAlicenseAqualityThe most powerful MCP server for Slack Workspaces. This integration supports both Stdio and SSE transports, proxy settings and does not require any permissions or bots being created or approved by Workspace admins 😏.Last updated -2502GoMIT License
- -securityAlicense-qualityEnables AI assistants to interact with Slack workspaces through the Model Context Protocol, providing tools for reading/sending messages, managing channels, and accessing Slack API functionality.Last updated -1PythonMIT License
- -securityFlicense-qualityA comprehensive Slack integration server that enables sending messages, managing channels, uploading files, and running Pomodoro timers through FastMCP v2.Last updated -1Python