Slack User MCP Server
The Slack User MCP Server enables interaction with Slack workspaces as a user, providing tools for communication and information retrieval:
List public channels in a workspace with pagination support
Post messages to channels
Reply to specific message threads
Add emoji reactions to messages
Retrieve channel history (recent messages)
Get thread replies
List workspace users with basic profile information
Get detailed profile information for specific users by ID
Allows Claude to interact with Slack workspaces as a user, including listing channels, posting messages, replying to threads, adding reactions, getting channel history, getting thread replies, retrieving user lists, and viewing user profiles
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Slack User MCP Serverpost 'Meeting starts in 5 minutes' to the general channel"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Slack User MCP Server
MCP Server for the Slack API, enabling Claude to interact with Slack workspaces as a user.
Tools
slack_list_channelsList 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_messagePost 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_threadReply 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_reactionAdd 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_historyGet 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_repliesGet 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_get_usersGet 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_profileGet detailed profile information for a specific user
Required inputs:
user_id(string): The user's ID
Returns: Detailed user profile information
Related MCP server: Slack MCP Server
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 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:
Click "Install to Workspace" and authorize the app
Save the "User OAuth Token" that starts with
xoxp-.
For organization-level tokens, get your Team ID (starts with a
T) by following this guidance. It is optional for ordinary workspace tokens.
Treat OAuth tokens as secrets. Do not commit them, put them in issues or pull requests, or paste them into shared configuration. Rotate a token immediately if it is exposed.
Usage with Claude Desktop
Add the following to your claude_desktop_config.json:
Local Installation
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 buildThen configure Claude Desktop:
{
"mcpServers": {
"slack": {
"command": "npm",
"args": [
"run",
"--prefix",
"/path/to/slack-user-mcp",
"start"
],
"env": {
"SLACK_TOKEN": "xoxp-your-user-token"
}
}
}
}NPX
This project is not published to npm. Do not use an npx package name for it. Clone and build it locally as shown above, then use the local configuration.
Docker
{
"mcpServers": {
"slack": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SLACK_TOKEN",
"slack-user-mcp"
],
"env": {
"SLACK_TOKEN": "xoxp-your-user-token"
}
}
}
}Build the image first with docker build -t slack-user-mcp .. Add -e SLACK_TEAM_ID and SLACK_TEAM_ID to env only when using an organization-level token.
Installing via Smithery
To install Slack User Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @lars-hagen/slack-user-mcp --client claudeTroubleshooting
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 token and, when needed, workspace ID are correctly copied to your configuration
The app has been added to the channels it needs to access
You're using a User OAuth Token (starts with
xoxp-) rather than a Bot Token
Build
Docker build:
docker build -t slack-user-mcp .Maintenance status
This project receives focused, best-effort maintenance. It has no support SLA. Please report security concerns privately as described in SECURITY.md.
License
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceEnables interaction with Slack workspaces through comprehensive integration capabilities. Supports channel management, messaging, thread replies, reactions, and message history retrieval through natural language commands.Last updated56MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with Slack workspaces through comprehensive channel management, messaging, direct messages, search functionality, and user management capabilities.Last updated30262MIT
- Flicense-qualityDmaintenanceEnables AI assistants to interact with Slack workspaces through natural language, supporting channel management, message operations, user profiles, reactions, and threaded conversations.Last updated
- AlicenseAqualityDmaintenanceEnables Slack workspace integration including channel creation, user invites, message posting, and thread management through natural language.Last updated61MIT
Related MCP Connectors
Slack MCP without OAuth — 21 tools, session-based, local-first. Free OSS + hosted tier from $19/mo.
Browse and manage Reddit posts, comments, and threads. Fetch user activity, explore hot/new/rising…
Human-in-the-loop for AI coding agents — ask questions, get approvals via Slack.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lars-hagen/slack-user-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server