Provides comprehensive Slack workspace integration with tools for managing channels, posting messages, replying to threads, adding reactions, retrieving channel history, and parsing Slack URLs
Slack MCP Server
A Model Context Protocol (MCP) server that provides Slack integration capabilities. This server follows clean architecture principles with proper separation of concerns.
Features
List Channels: Get all public channels in your workspace with pagination support
Post Messages: Send messages to specific channels
Reply to Threads: Reply to existing message threads
Add Reactions: Add emoji reactions to messages
Get Channel History: Retrieve recent messages from channels
Get Thread Replies: Get all replies in a message thread
Parse Slack URLs: Automatically extract thread details from Slack URLs
Architecture
This project follows clean architecture principles:
Setup
1. Slack App Configuration
First, create a Slack App and configure the required permissions:
Create a new app or select existing one
Navigate to OAuth & Permissions → Bot Token Scopes
Add the following permissions:
channels:read - List channels channels:history - Read public channel messages groups:history - Read private channel/group messages chat:write - Send messages reactions:write - Add emoji reactionsClick Install App to Workspace
Copy the Bot User OAuth Token (starts with
xoxb-)
2. Project Setup
Install dependencies:
npm installBuild the project:
npm run buildRun the server:
npm start
3. MCP Configuration
Add to your MCP client configuration (e.g., Cursor):
Development
Development mode:
npm run devInspector mode:
npm run inspectorClean build:
npm run clean && npm run build
Token Management
All tools require a token parameter (Slack Bot Token). The token is passed directly to each tool call, ensuring secure and flexible authentication.
Example usage:
Available Tools
slack_list_channels
List public channels in the workspace with pagination.
Parameters:
limit(optional): Maximum number of channels to return (default 100, max 200)cursor(optional): Pagination cursor for next page of resultstoken: Slack bot token (required)
slack_post_message
Post a new message to a Slack channel.
Parameters:
channel_id: The ID of the channel to post totext: The message text to posttoken: Slack bot token (required)
slack_reply_to_thread
Reply to a specific message thread in Slack.
Parameters:
channel_id: The ID of the channel containing the threadthread_ts: The timestamp of the parent messagetext: The reply texttoken: Slack bot token (required)
slack_add_reaction
Add a reaction emoji to a message.
Parameters:
channel_id: The ID of the channel containing the messagetimestamp: The timestamp of the message to react toreaction: The name of the emoji reaction (without ::)token: Slack bot token (required)
slack_get_channel_history
Get recent messages from a channel.
Parameters:
channel_id: The ID of the channellimit(optional): Number of messages to retrieve (default 10)token: Slack bot token (required)
slack_get_thread_replies
Get all replies in a message thread.
Parameters:
channel_id: The ID of the channel containing the threadthread_ts: The timestamp of the parent messagetoken: Slack bot token (required)
slack_parse_url
Parse a Slack URL and automatically extract thread/message details.
Parameters:
url: Slack URL (e.g., https://workspace.slack.com/archives/CHANNEL_ID/pTIMESTAMP)token: Slack bot token (required)
Example:
This tool automatically:
Parses the URL to extract workspace, channel ID, and message timestamp
Fetches channel history
Retrieves thread replies if available
Returns formatted message details
License
MIT
This server cannot be installed