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 dev
Inspector mode:
npm run inspector
Clean 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
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.
Enables interaction with Slack workspaces through comprehensive integration capabilities. Supports channel management, messaging, thread replies, reactions, and message history retrieval through natural language commands.