slack user mcp
Enables interaction with Slack workspaces as a user, supporting channel listing, message posting, threading, reactions, and user management via the Slack API.
Enables interaction with Slack workspaces as a user, supporting channel listing, message posting, threading, reactions, and user management via the Slack API.
MCP Server for the Slack API, enabling Claude to interact with Slack workspaces as a user.
slack_list_channels
limit
(number, default: 100, max: 200): Maximum number of channels to returncursor
(string): Pagination cursor for next pageReturns: List of channels with their IDs and information
slack_post_message
channel_id
(string): The ID of the channel to post totext
(string): The message text to postReturns: Message posting confirmation and timestamp
slack_reply_to_thread
channel_id
(string): The channel containing the threadthread_ts
(string): Timestamp of the parent messagetext
(string): The reply textReturns: Reply confirmation and timestamp
slack_add_reaction
channel_id
(string): The channel containing the messagetimestamp
(string): Message timestamp to react toreaction
(string): Emoji name without colonsReturns: Reaction confirmation
slack_get_channel_history
channel_id
(string): The channel IDlimit
(number, default: 10): Number of messages to retrieveReturns: List of messages with their content and metadata
slack_get_thread_replies
channel_id
(string): The channel containing the threadthread_ts
(string): Timestamp of the parent messageReturns: List of replies with their content and metadata
slack_get_users
cursor
(string): Pagination cursor for next pagelimit
(number, default: 100, max: 200): Maximum users to returnReturns: List of users with their basic profiles
slack_get_user_profile
user_id
(string): The User is IDName your app and select your workspace
Configure User 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 yourselfreactions:write
- Add emoji reactions to messagesusers:read
- View users and their basic information
Install App to Workspace:
Save the "User OAuth Token" that starts with xoxp-
Get your Team ID (starts with a T
) by following this guidance
Add the following to your claude_desktop_config.json
:
First install and build the server:
git clone https://github.com/lars-hagen/slack-user-mcp.git
cd slack-user-mcp
npm install
npm run build
Then configure Claude Desktop:
{
"mcpServers": {
"slack": {
"command": "npm",
"args": [
"run",
"--prefix",
"/path/to/slack-user-mcp",
"start"
],
"env": {
"SLACK_TOKEN": "xoxp-your-user-token",
"SLACK_TEAM_ID": "T01234567"
}
}
}
}
{
"mcpServers": {
"slack": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-slack-user"
],
"env": {
"SLACK_TOKEN": "xoxp-your-user-token",
"SLACK_TEAM_ID": "T01234567"
}
}
}
}
{
"mcpServers": {
"slack": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SLACK_TOKEN",
"-e",
"SLACK_TEAM_ID",
"mcp/slack-user"
],
"env": {
"SLACK_TOKEN": "xoxp-your-user-token",
"SLACK_TEAM_ID": "T01234567"
}
}
}
}
To install Slack User Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @lars-hagen/slack-user-mcp2 --client claude
If you encounter permission errors, verify that: 1. All required scopes are added to your Slack app 2. The app is properly installed to your workspace 3. The tokens and workspace ID are correctly copied to your configuration 4. The app has been added to the channels it needs to access 5. You're using a User OAuth Token (starts with xoxp-) not a Bot Token
Docker build:
docker build -t mcp/slack-user -f src/slack/Dockerfile .
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.