npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@meepo-ab/slack-mcp

v1.0.0

Published

Slack integration using Model Context Protocol

Downloads

23

Readme

Slack MCP (Model Context Protocol) Integration

The Slack MCP Server is an implementation of the Model Context Protocol (MCP) for interacting with Slack workspaces. It enables AI-driven collaboration by allowing Large Language Models (LLMs) to interact with Slack through MCP, providing programmatic access to Slack features for AI assistants like Claude.

Features

This MCP server provides a comprehensive set of tools for interacting with Slack:

Channel Management

  • List Channels - View public and private channels
  • Create Channels - Create new public or private channels
  • Join Channels - Join public channels programmatically
  • Invite Users - Add users to channels

Messaging

  • Send Messages - Post messages to channels or threads
  • Read Messages - Retrieve message history from channels
  • Thread Interactions - Create and participate in message threads
  • Reactions - Add emoji reactions to messages

User Operations

  • User Management - List users, view profiles, and check presence
  • Direct Messaging - Open and manage direct message channels
  • Group Direct Messaging - Create and manage multi-person direct messages

Configuration

Prerequisites

  • A Slack workspace with admin permissions
  • A Slack bot token with required permissions

Cursor MCP Configuration

To use this MCP server with Cursor, create a .cursor/mcp.json file in your project directory with the following configuration:

{
  "mcpServers": {
    "slack-mcp": {
      "command": "npx",
      "args": [
        "@meepo-ab/slack-mcp"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "your_slack_bot_token",
        "SLACK_TEAM_ID": "your_slack_team_id"
      }
    }
  }
}

Replace:

  • your_slack_bot_token with your Slack Bot Token (xoxb-...)
  • your_slack_team_id with your Slack Team ID

⚠️ SECURITY NOTE: The .cursor/mcp.json file contains sensitive credentials. Make sure to:

  • Add .cursor/mcp.json to your .gitignore file to prevent accidentally committing it
  • Never share this file with others

This configuration automatically downloads and runs the latest version of the Slack MCP Server without requiring any manual installation.

Required Slack App Permissions

Your Slack bot needs the following OAuth scopes:

  • channels:read - View public channel information
  • channels:history - Read messages in public channels
  • groups:read - View private channel information
  • groups:history - Read messages in private channels
  • chat:write - Post messages in channels the bot is in
  • chat:write.public - Post messages to channels without joining them
  • im:write - Send direct messages
  • im:read - View direct message channels
  • im:history - Read direct message history
  • mpim:write - Send group direct messages
  • mpim:read - View group direct message channels
  • mpim:history - Read group direct message history
  • users:read - View user information and presence
  • users:read.email - Access user email addresses
  • reactions:write - Add reactions to messages
  • channels:join - Join public channels

Available Tools

Channel Operations

List Public Channels

  • Tool: slack_list_channels
  • Parameters:
    • limit (optional, number, default: 100)
    • cursor (optional, string)
  • Required Scopes: channels:read

List Private Channels

  • Tool: slack_list_private_channels
  • Parameters:
    • limit (optional, number, default: 100)
    • cursor (optional, string)
  • Required Scopes: groups:read

Create Channel

  • Tool: slack_create_channel
  • Parameters:
    • name (string)
    • is_private (optional, boolean, default: false)
    • user_ids (optional, string[])
  • Required Scopes: channels:write (public), groups:write (private)

Join Channel

  • Tool: slack_join_channel
  • Parameters:
    • channelId (string)
  • Required Scopes: channels:join

Invite to Channel

  • Tool: slack_invite_to_channel
  • Parameters:
    • channelId (string)
    • userIds (string[])
  • Required Scopes: channels:write (public), groups:write (private)

Message Operations

Get Channel History

  • Tool: slack_get_channel_history
  • Parameters:
    • channelId (string)
    • limit (optional, number, default: 100)
  • Required Scopes: channels:history (public), groups:history (private), im:history (DMs), mpim:history (group DMs)

Post Message

  • Tool: slack_post_message
  • Parameters:
    • channelId (string)
    • text (string)
  • Required Scopes: chat:write (when bot is in channel), chat:write.public (when bot is not in channel)

Get Thread Replies

  • Tool: slack_get_thread_replies
  • Parameters:
    • channelId (string)
    • threadTs (string)
  • Required Scopes: channels:history (public), groups:history (private), im:history (DMs), mpim:history (group DMs)

Post Reply

  • Tool: slack_post_reply
  • Parameters:
    • channelId (string)
    • threadTs (string)
    • text (string)
  • Required Scopes: chat:write

User Operations

List Users

  • Tool: slack_list_users
  • Parameters:
    • limit (optional, number, default: 100)
    • cursor (optional, string)
  • Required Scopes: users:read

Get User Profile

  • Tool: slack_get_user_profile
  • Parameters:
    • userId (string)
  • Required Scopes: users:read

Get User Presence

  • Tool: slack_get_user_presence
  • Parameters:
    • userId (string)
  • Required Scopes: users:read

Reaction Operations

Add Reaction

  • Tool: slack_add_reaction
  • Parameters:
    • channelId (string)
    • timestamp (string)
    • name (string)
  • Required Scopes: reactions:write

Direct Messaging Operations

Open Direct Message

  • Tool: slack_open_dm
  • Parameters:
    • userId (string)
  • Required Scopes: im:write

Open Group Direct Message

  • Tool: slack_open_group_dm
  • Parameters:
    • userIds (string[])
  • Required Scopes: mpim:write

List Direct Messages

  • Tool: slack_list_dms
  • Parameters:
    • limit (optional, number, default: 100)
    • cursor (optional, string)
  • Required Scopes: im:read

List Group Direct Messages

  • Tool: slack_list_group_dms
  • Parameters:
    • limit (optional, number, default: 100)
    • cursor (optional, string)
  • Required Scopes: mpim:read

Get Direct Message History

  • Tool: slack_get_dm_history
  • Parameters:
    • dmChannelId (string)
    • limit (optional, number, default: 100)
  • Required Scopes: im:history (DMs), mpim:history (group DMs)

Example Workflows

Team Collaboration:

  • Ask the AI to send a status update to a team channel
  • The AI can collect information and format a professional message
  • The AI can manage follow-up discussions in threads

Automated Responses:

  • Configure the AI to respond to certain queries in channels
  • The AI can detect questions and provide helpful responses
  • The AI can direct users to appropriate resources

User Engagement:

  • Use the AI to run polls or gather feedback
  • The AI can send direct messages to specific users
  • The AI can summarize responses and provide insights

Development

Building from source

git clone https://gitlab.com/meepoab/ai-labs/mcp-servers/slack-mcp.git
cd slack-mcp
npm install
npm run build:cli

Available Scripts

  • npm run build:cli - Build the TypeScript code
  • npm run dev - Watch for changes and rebuild automatically
  • npm test - Run tests
  • npm run lint - Lint the code
  • npm run format - Format the code with Prettier

License

MIT