mirror of
https://github.com/modelcontextprotocol/servers.git
synced 2026-02-19 11:54:58 -05:00
Slack MCP Server
MCP Server for the Slack API, enabling Claude to interact with Slack workspaces.
Tools
-
slack_list_channels- List public channels in the workspace
- Optional inputs:
limit(number, default: 100, max: 200): Maximum number of channels to returncursor(string): Pagination cursor for next page
- Returns: List of channels with their IDs and information
-
slack_post_message- Post a new message to a Slack channel
- Required inputs:
channel_id(string): The ID of the channel to post totext(string): The message text to post
- Returns: Message posting confirmation and timestamp
-
slack_reply_to_thread- Reply to a specific message thread
- Required inputs:
channel_id(string): The channel containing the threadthread_ts(string): Timestamp of the parent messagetext(string): The reply text
- Returns: Reply confirmation and timestamp
-
slack_add_reaction- Add an emoji reaction to a message
- Required inputs:
channel_id(string): The channel containing the messagetimestamp(string): Message timestamp to react toreaction(string): Emoji name without colons
- Returns: Reaction confirmation
-
slack_get_channel_history- Get recent messages from a channel
- Required inputs:
channel_id(string): The channel ID
- Optional inputs:
limit(number, default: 10): Number of messages to retrieve
- Returns: List of messages with their content and metadata
-
slack_get_thread_replies- Get all replies in a message thread
- Required inputs:
channel_id(string): The channel containing the threadthread_ts(string): Timestamp of the parent message
- Returns: List of replies with their content and metadata
-
slack_search_messages- Search for messages across channels
- Required inputs:
query(string): The search query
- Optional inputs:
count(number, default: 5): Number of results to return
- Returns: Matching messages with their context
-
slack_get_users- Get list of workspace users with basic profile information
- Optional inputs:
cursor(string): Pagination cursor for next pagelimit(number, default: 100, max: 200): Maximum users to return
- Returns: List of users with their basic profiles
-
slack_get_user_profile- Get detailed profile information for a specific user
- Required inputs:
user_id(string): The user's ID
- Returns: Detailed user profile information
Setup
-
Create a Slack App:
- Visit the Slack Apps page
- Click "Create New App"
- Choose "From scratch"
- Name your app and select your workspace
-
Configure Bot Token Scopes: Navigate to "OAuth & Permissions" and add these scopes:
channels:history- View messages and other content in public channelschannels:read- View basic channel informationchat:write- Send messages as the appreactions:write- Add emoji reactions to messagesusers:read- View users and their basic information
-
Install App to Workspace:
- Click "Install to Workspace" and authorize the app
- Save the "Bot User OAuth Token" that starts with
xoxb-
-
Get your Team ID (starts with a
T) by following this guidance
Usage with the Claude Desktop app
Add the following to your claude_desktop_config.json:
{
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-bot-token",
"SLACK_TEAM_ID": "T01234567"
}
}
}
Troubleshooting
If you encounter permission errors, verify that:
- All required scopes are added to your Slack app
- The app is properly installed to your workspace
- The tokens and workspace ID are correctly copied to your configuration
- The app has been added to the channels it needs to access