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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@monsoft/mcp-slack

v0.5.0

Published

Slack MCP Server for Model Context Protocol

Readme

Slack MCP Server

A Model Context Protocol (MCP) server for Slack integration in Claude Desktop. This server enables AI assistants to interact with Slack workspaces through natural language conversations.

This package is maintained by Monsoft Solutions, a software development company specializing in AI-powered solutions and developer tools.

Features

  • List public channels in the workspace with pagination support
  • Post new messages to Slack channels
  • Reply to existing message threads
  • Add emoji reactions to messages
  • View channel message history
  • Get thread replies and conversation context
  • List workspace users with basic profile information
  • Get detailed user profile information
  • Full integration with Slack API
  • Simple configuration with Bot User OAuth Token
  • Support for both stdio and SSE server transports

Installation & Setup

Prerequisites

  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 Bot 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
    • channels:manage - Create, archive, and unarchive channels
    • channels:write - Manage channel memberships (invite users)
    • channels:write.invites - Invite members to public channels
    • chat:write - Send messages as the app
    • chat:write.customize - Post rich messages with attachments and blocks
    • chat:write.public - Post in public channels without being invited
    • chat:update - Update messages
    • chat:delete - Delete messages
    • chat:schedule - Schedule messages
    • reactions:write - Add emoji reactions to messages
    • users:read - View users and their basic information
    • files:read - View files shared in channels
    • files:write - Upload, edit, and delete files
    • remote_files:read - View remote files
    • remote_files:write - Add, edit, and delete remote files
    • remote_files:share - Share remote files
  3. Install App to Workspace:

    • Click "Install to Workspace" and authorize the app
    • Save the "Bot User OAuth Token" that starts with xoxb-
  4. Get your Team ID:

    • Your Team ID starts with T followed by numbers and letters
    • Find it by following this guide

Configure in Claude Desktop

Add the following to your claude_desktop_config.json:

{
    "mcpServers": {
        "slack": {
            "command": "npx",
            "args": ["@monsoft/mcp-slack"],
            "env": {
                "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
                "SLACK_TEAM_ID": "T01234567"
            }
        }
    }
}

Command Line Usage

You can also run the server directly from the command line:

# With environment variables
SLACK_BOT_TOKEN=xoxb-your-bot-token SLACK_TEAM_ID=T01234567 npx @monsoft/mcp-slack

# Or with command-line arguments
npx @monsoft/mcp-slack --token=xoxb-your-bot-token --team-id=T01234567

Docker Support

Coming soon.

Available Tools

The server provides the following tools that can be used through Claude Desktop:

Channel Operations

1. List Channels (slack_list_channels)

Retrieves a list of channels in the workspace.

{
    "limit": 50,
    "cursor": "dXNlcjpVMDYxTkZUVDI="
}

2. Get Channel History (slack_get_channel_history)

Retrieves recent messages from a channel.

{
    "channel_id": "C01234ABCD",
    "limit": 20
}

Message Operations

1. Post Message (slack_post_message)

Sends a simple text message to a Slack channel.

{
    "channel_id": "C01234ABCD",
    "text": "Hello from Claude!"
}

2. Post Rich Message (slack_post_rich_message)

Sends a message with blocks and/or attachments for rich formatting.

{
    "channel_id": "C01234ABCD",
    "text": "Backup message for clients that don't support blocks",
    "blocks": [
        {
            "type": "header",
            "text": {
                "type": "plain_text",
                "text": "Important Announcement"
            }
        },
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "Hello! This is a *rich message* with formatting."
            }
        }
    ],
    "attachments": [
        {
            "color": "#36a64f",
            "title": "Task Status",
            "fields": [
                {
                    "title": "Project",
                    "value": "AI Assistant",
                    "short": true
                },
                {
                    "title": "Status",
                    "value": "In Progress",
                    "short": true
                }
            ]
        }
    ]
}

3. Update Message (slack_update_message)

Updates an existing message.

{
    "channel_id": "C01234ABCD",
    "timestamp": "1647357967.655841",
    "text": "Updated message text",
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "This message has been updated."
            }
        }
    ]
}

4. Delete Message (slack_delete_message)

Deletes a message.

{
    "channel_id": "C01234ABCD",
    "timestamp": "1647357967.655841"
}

5. Schedule Message (slack_schedule_message)

Schedules a message to be sent at a future time.

{
    "channel_id": "C01234ABCD",
    "text": "This is a scheduled message",
    "post_at": 1701385200,
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "This message was *scheduled* to be sent automatically."
            }
        },
        {
            "type": "context",
            "elements": [
                {
                    "type": "mrkdwn",
                    "text": "Scheduled by Claude"
                }
            ]
        }
    ]
}

6. Reply to Thread (slack_reply_to_thread)

Replies to an existing message thread.

{
    "channel_id": "C01234ABCD",
    "thread_ts": "1647357967.655841",
    "text": "This is a reply to the thread from Claude!"
}

7. Add Reaction (slack_add_reaction)

Adds an emoji reaction to a message.

{
    "channel_id": "C01234ABCD",
    "timestamp": "1647357967.655841",
    "reaction": "thumbsup"
}

8. Get Thread Replies (slack_get_thread_replies)

Retrieves all replies in a thread.

{
    "channel_id": "C01234ABCD",
    "thread_ts": "1647357967.655841"
}

User Operations

1. Get Users (slack_get_users)

Lists users in the workspace.

{
    "limit": 100,
    "cursor": "dXNlcjpVMDYxTkZUVDI="
}

2. Get User Profile (slack_get_user_profile)

Gets detailed information about a specific user.

{
    "user_id": "U01234ABCD"
}

File Operations

1. Upload File (slack_upload_file)

Uploads a file from a local path to Slack.

{
    "file_path": "/path/to/document.pdf",
    "file_name": "Important Document.pdf",
    "channel_id": "C01234ABCD",
    "file_type": "pdf",
    "title": "Q4 Report",
    "initial_comment": "Here's the latest quarterly report."
}

2. Upload File Content (slack_upload_file_content)

Uploads string content as a file to Slack.

{
    "content": "This is the content of the file that will be created in Slack.",
    "file_name": "notes.txt",
    "channel_id": "C01234ABCD",
    "file_type": "text",
    "title": "Meeting Notes",
    "initial_comment": "Notes from today's meeting."
}

3. Get File Info (slack_get_file_info)

Retrieves information about a specific file.

{
    "file_id": "F01234ABCD"
}

4. Share File (slack_share_file)

Shares an existing file to a channel.

{
    "file_id": "F01234ABCD",
    "channel_id": "C01234ABCD"
}

5. Enable Public URL (slack_enable_public_url)

Enables a public URL for a file.

{
    "file_id": "F01234ABCD"
}

6. Disable Public URL (slack_disable_public_url)

Disables the public URL for a file.

{
    "file_id": "F01234ABCD"
}

7. List Files (slack_list_files)

Lists files visible to the user, with optional filtering.

{
    "channel_id": "C01234ABCD",
    "user_id": "U01234ABCD",
    "limit": 25
}

8. Delete File (slack_delete_file)

Deletes a file from Slack.

{
    "file_id": "F01234ABCD"
}

Advanced Features

Pagination Support

For methods that return potentially large datasets (channels, users), the MCP server supports pagination:

  • Use the limit parameter to control how many items to return in a single request
  • The response includes a next_cursor value when more data is available
  • Pass this cursor in the next request to retrieve the next set of results

Error Handling

The MCP server provides informative error messages for common issues:

  • Authentication failures
  • Invalid parameters
  • Rate limiting
  • Missing permissions
  • Non-existent resources (channels, users, messages)

Security Notes

  • Store your Bot Token securely and never share it
  • Only grant the OAuth scopes your application actually needs
  • The bot can only access channels it has been invited to
  • Regularly review and audit your app's permissions and usage
  • Consider using app-level tokens for enhanced security

Troubleshooting

If you encounter issues:

  1. Permission Errors

    • Verify all required scopes are added to your Slack app
    • Ensure the app is properly installed to your workspace
    • Check that tokens and team ID are correctly copied to your configuration
    • Make sure the bot has been invited to channels it needs to access
  2. Connection Issues

    • Verify your network connectivity
    • Check that the server can reach the Slack API endpoints
    • Validate your token hasn't been revoked or expired
  3. Rate Limiting

    • If you see rate limit errors, reduce the frequency of your requests
    • Implement exponential backoff for retries

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This MCP server is licensed under the MIT License. See the LICENSE file for details.

Support

For support, feature requests, or bug reports, please open an issue on our GitHub repository.

About Monsoft Solutions

Monsoft Solutions is a software development company that specializes in creating AI-powered solutions and developer tools. We focus on building robust, scalable, and user-friendly applications that help developers and businesses leverage the power of artificial intelligence.

Future Enhancements

We've implemented the following message management features:

  • ✅ Post messages with attachments and blocks
  • ✅ Update existing messages
  • ✅ Delete messages
  • ✅ Schedule messages for future delivery
  • ✅ Upload files to Slack
  • ✅ Get file information
  • ✅ Share files in channels
  • ✅ Enable/disable public file URLs
  • ✅ List and delete files

Additional features planned for future implementation:

Channel Management

  • ✅ Create new channels
  • ✅ Archive/unarchive channels
  • ✅ Invite users to channels
  • ✅ Get channel information

User Management

  • Set user status
  • Update user profile information
  • Manage user groups

Development

Prerequisites

  • Node.js 18 or higher
  • npm or yarn