
Slack User MCP Server
Enables interaction with Slack workspaces as a user, supporting channel listing, message posting, threading, reactions, and user management via the Slack API.
lars-hagen
Tools
slack_list_channels
List public channels in the workspace with pagination
slack_post_message
Post a new message to a Slack channel
slack_reply_to_thread
Reply to a specific message thread in Slack
slack_add_reaction
Add a reaction emoji to a message
slack_get_channel_history
Get recent messages from a channel
slack_get_thread_replies
Get all replies in a message thread
slack_get_users
Get a list of all users in the workspace with their basic profile information
slack_get_user_profile
Get detailed profile information for a specific user
README
Slack User MCP Server
MCP Server for the Slack API, enabling Claude to interact with Slack workspaces as a user.
<a href="https://glama.ai/mcp/servers/wc0u5519qh"><img width="380" height="200" src="https://glama.ai/mcp/servers/wc0u5519qh/badge" alt="Slack User Server MCP server" /></a>
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_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 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-
-
Get your Team ID (starts with a
T
) by following this guidance
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 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"
}
}
}
}
NPX
{
"mcpServers": {
"slack": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-slack-user"
],
"env": {
"SLACK_TOKEN": "xoxp-your-user-token",
"SLACK_TEAM_ID": "T01234567"
}
}
}
}
Docker
{
"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"
}
}
}
}
Installing via Smithery
To install Slack User Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @lars-hagen/slack-user-mcp2 --client claude
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
- You're using a User OAuth Token (starts with xoxp-) not a Bot Token
Build
Docker build:
docker build -t mcp/slack-user -f src/slack/Dockerfile .
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.
Recommended Servers
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
Apple MCP Server
Enables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.

Supabase MCP Server
A Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.
@kazuph/mcp-gmail-gas
Model Context Protocol server for Gmail integration. This allows Claude Desktop (or any MCP client) to interact with your Gmail account through Google Apps Script.
MCP Server Trello
Facilitates interaction with Trello boards via the Trello API, offering features like rate limiting, type safety, input validation, and error handling for seamless management of cards, lists, and board activities.
Metabase MCP Server
Enables AI assistants to interact with Metabase databases and dashboards, allowing users to list and execute queries, access data visualizations, and interact with database resources through natural language.

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Airtable MCP Server
A Model Context Protocol server that provides tools for programmatically managing Airtable bases, tables, fields, and records through Claude Desktop or other MCP clients.
MongoDB MCP Server
Provides read-only access to MongoDB databases for LLMs to inspect collection schemas and execute aggregation pipelines.