Install
$ agentstack add mcp-lars-hagen-slack-user-mcp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Slack User MCP Server
[](https://github.com/lars-hagen/slack-user-mcp/actions/workflows/ci.yml) [](https://github.com/lars-hagen/slack-user-mcp/blob/main/LICENSE) [](https://github.com/lars-hagen/slack-user-mcp/blob/main/SECURITY.md)
MCP Server for the Slack API, enabling Claude to interact with Slack workspaces as a user.
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-.
- 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 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"
}
}
}
}
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 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 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](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.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: lars-hagen
- Source: lars-hagen/slack-user-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.