Slack User MCP Server

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

Communication
JavaScript
Visit Server

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

smithery badge

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

  1. slack_list_channels

    • List public channels in the workspace
    • Optional inputs:
      • limit (number, default: 100, max: 200): Maximum number of channels to return
      • cursor (string): Pagination cursor for next page
    • Returns: List of channels with their IDs and information
  2. slack_post_message

    • Post a new message to a Slack channel
    • Required inputs:
      • channel_id (string): The ID of the channel to post to
      • text (string): The message text to post
    • Returns: Message posting confirmation and timestamp
  3. slack_reply_to_thread

    • Reply to a specific message thread
    • Required inputs:
      • channel_id (string): The channel containing the thread
      • thread_ts (string): Timestamp of the parent message
      • text (string): The reply text
    • Returns: Reply confirmation and timestamp
  4. slack_add_reaction

    • Add an emoji reaction to a message
    • Required inputs:
      • channel_id (string): The channel containing the message
      • timestamp (string): Message timestamp to react to
      • reaction (string): Emoji name without colons
    • Returns: Reaction confirmation
  5. 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
  6. slack_get_thread_replies

    • Get all replies in a message thread
    • Required inputs:
      • channel_id (string): The channel containing the thread
      • thread_ts (string): Timestamp of the parent message
    • Returns: List of replies with their content and metadata
  7. slack_get_users

    • Get list of workspace users with basic profile information
    • Optional inputs:
      • cursor (string): Pagination cursor for next page
      • limit (number, default: 100, max: 200): Maximum users to return
    • Returns: List of users with their basic profiles
  8. 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

  1. Create a Slack App:

    • Visit the Slack Apps page
    • Click "Create New App"
    • Choose "From scratch"
    • Name your app and select your workspace
  2. Configure User Token Scopes: Navigate to "OAuth & Permissions" and add these scopes:

    • channels:history - View messages and other content in public channels
    • channels:read - View basic channel information
    • chat:write - Send messages as yourself
    • reactions:write - Add emoji reactions to messages
    • users:read - View users and their basic information
  3. Install App to Workspace:

    • Click "Install to Workspace" and authorize the app
    • Save the "User OAuth Token" that starts with xoxp-
  4. 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:

  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

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

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.

Official
Featured
TypeScript
Claude Code MCP

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.

Featured
Local
JavaScript
Apple MCP Server

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.

Featured
Local
TypeScript
Supabase MCP Server

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.

Featured
JavaScript
@kazuph/mcp-gmail-gas

@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.

Featured
JavaScript
MCP Server Trello

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.

Featured
TypeScript
Metabase MCP Server

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.

Featured
JavaScript
Linear MCP Server

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.

Featured
JavaScript
Airtable MCP Server

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.

Featured
JavaScript
MongoDB MCP Server

MongoDB MCP Server

Provides read-only access to MongoDB databases for LLMs to inspect collection schemas and execute aggregation pipelines.

Official
JavaScript