Provides a Slack MCP Server to manage channels, messages, DMs, and search via MCP clients.
Configuration
View docs{
"mcpServers": {
"bcharleson-slack-mcp-server": {
"command": "/path/to/slack-mcp-server/venv/bin/python",
"args": [
"-m",
"slack_mcp_server"
],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token-here",
"SLACK_USER_TOKEN": "xoxp-your-user-token-here"
}
}
}
}You run a Slack MCP Server to let AI assistants interact with your Slack workspace. It exposes channels, messaging, DMs, and search through a consistent MCP interface, enabling automated workflows and seamless workspace automation.
Launch the server in your environment and connect an MCP client to perform actions such as listing channels, posting messages, starting DMs, and searching workspace content. Use a standard MCP client to issue tool calls that map to the serverβs capabilities, such as channel management, messaging, and user lookup.
Prerequisites include Python 3.10 or higher and a Slack workspace with admin access to create apps. You will need a Slack Bot Token for most operations and, if you require search, a Slack User Token.
1. Create a Python virtual environment and activate it.
2. Install the server package in editable mode or install dependencies.
3. Prepare your Slack app with the necessary scopes and tokens as described in Slack app setup.
Configure environment variables in a .env file at the project root. The server requires SLACK_BOT_TOKEN for most operations and can optionally use SLACK_USER_TOKEN for search functionality.
Example tokens (placeholders shown): SLACK_BOT_TOKEN=xoxb-your-bot-token-here and SLACK_USER_TOKEN=xoxp-your-user-token-here.
To run the server, you can start it as a Python module or via its CLI entry point. The recommended runtime is to execute the module form during development.
Example commands you will use locally (adjust paths to your environment):
# Activate the virtual environment
source venv/bin/activate
# Run as a Python module
python -m slack_mcp_server
# Or start via the CLI entry point
slack-mcp-serverList all accessible channels (public and private) including details like IDs and names.
Retrieve details about a specific channel, such as topic, purpose, and member list.
Create a new channel with a given name and visibility.
Archive an existing channel to remove it from active usage.
Fetch message history for a channel, including timestamps and user info.
Join a channel to participate in conversations.
Leave a channel to stop receiving its messages.
Set or update the topic of a channel.
Post a message to a channel.
Post a reply to a specific thread in a channel.
Retrieve all replies within a thread.
Add an emoji reaction to a message.
Remove an emoji reaction from a message.
Get the list of reactions on a message.
Update the content of an existing message.
Delete a message from a channel.
Send a direct message to a user.
List direct message and group DM conversations.
Fetch the history of a DM conversation.
Open a new DM conversation with a user.
Search messages across the workspace (requires User Token).
Search files in the workspace (requires User Token).
Search both messages and files (requires User Token).
List workspace users.
Get detailed information about a user.
Check if a user is currently online.
Find a user by their email address.
Get a userβs detailed profile information.
Retrieve identity information about the bot.
Obtain basic workspace information.