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

@chinchillaenterprises/mcp-slack

v3.0.5

Published

Multi-account MCP server for Slack with persistent credential storage and runtime workspace switching

Downloads

28

Readme

MCP Slack Server

A powerful multi-account Model Context Protocol (MCP) server for Slack that enables seamless workspace switching and persistent credential storage.

Features

  • 🔄 Multi-Account Support: Switch between multiple Slack workspaces at runtime
  • 🔐 Secure Credential Storage: Uses native OS keychains with encrypted file-based fallback
  • Fast Performance: <200ms startup time for 10+ workspaces
  • 🛡️ Dual Storage System: Automatic fallback to encrypted file storage if keychain unavailable
  • 🔍 Comprehensive Slack Tools: 40+ tools for messages, channels, users, files, and more
  • 📁 Reliable Persistence: Accounts persist across Claude sessions
  • Automatic Markdown Conversion: Converts common markdown formatting to Slack's mrkdwn format

Installation

Using Claude Desktop

claude mcp add slack -- npx @chinchillaenterprises/mcp-slack

Using Claude Code (Recommended)

# Install with user scope for persistence across sessions
claude mcp add slack -s user -- npx @chinchillaenterprises/mcp-slack

# Or with environment variables for default workspace
claude mcp add slack -s user -e DEFAULT_BOT_TOKEN=xoxb-YOUR-BOT-TOKEN -e DEFAULT_TEAM_ID=YOUR-TEAM-ID -- npx @chinchillaenterprises/mcp-slack

Manual Installation

npm install -g @chinchillaenterprises/mcp-slack

Configuration

Environment Variables

For the default workspace:

  • DEFAULT_BOT_TOKEN: Slack bot token (xoxb-...)
  • DEFAULT_USER_TOKEN: Slack user token (xoxp-...)
  • DEFAULT_TEAM_ID: Slack team/workspace ID
  • DEFAULT_ACCOUNT_NAME: Display name for the workspace

Usage

Account Management

The V3 architecture introduces powerful account management capabilities:

  • list_accounts: View all configured workspaces
  • switch_account: Change active workspace at runtime
  • add_account: Add new workspace credentials
  • remove_account: Remove workspace from configuration
  • update_account: Update existing workspace credentials

Core Slack Tools

Messaging

  • slack_send_message: Send messages to channels (with automatic markdown → Slack formatting)
  • slack_send_formatted_message: Send rich Block Kit messages
  • slack_edit_message: Edit existing messages
  • slack_delete_message: Delete messages
  • slack_schedule_message: Schedule messages for later
  • slack_forward_message: Forward messages between channels

Channels & History

  • slack_list_channels: List accessible channels
  • slack_get_channel_history: Get recent messages
  • slack_get_thread_replies: Get thread conversations

Search

  • slack_search_messages: Search across workspace
  • slack_search_by_user: Find messages from specific users
  • slack_search_by_date_range: Search within date ranges
  • slack_search_files: Search for shared files

Users & Teams

  • slack_list_users: List workspace members
  • slack_get_user_by_name: Find users by name
  • slack_get_user_info: Get detailed user information
  • slack_get_user_status: Check user status
  • slack_get_user_profile: Get full profile details

Reactions & Pins

  • slack_add_reaction: Add emoji reactions
  • slack_bulk_react_messages: React to multiple messages
  • slack_pin_message: Pin important messages
  • slack_unpin_message: Unpin messages

Productivity

  • slack_create_reminder: Set reminders
  • slack_list_reminders: View active reminders
  • slack_get_workspace_stats: Get workspace analytics

Automatic Markdown Conversion

The slack_send_message tool now automatically converts common markdown formatting to Slack's mrkdwn format:

  • Bold: **text***text*
  • Links: [text](url)<url|text>
  • Strikethrough: ~~text~~~text~
  • Headers: # Header*Header*
  • Lists: - item• item

This means Claude can use standard markdown formatting and it will appear correctly in Slack without manual conversion.

Advanced Features

Persistent Storage

The server uses a dual-storage system for maximum reliability:

  1. Primary Storage: Native OS keychain

    • macOS: Keychain Access
    • Windows: Credential Manager
    • Linux: Secret Service API
  2. Fallback Storage: Encrypted file storage

    • Location: ~/.mcp-slack/accounts.json
    • Credentials encrypted using AES-256-CBC
    • Automatic failover if keychain unavailable
    • Permissions restricted to user only (0600)

Data Security

  • Bot tokens and user tokens are encrypted at rest
  • Encryption key stored separately with restricted permissions
  • No plaintext credentials on disk
  • Automatic cleanup of stale sessions

Performance Optimizations

  • Lazy loading of workspace configurations
  • Efficient caching of API responses
  • Minimal startup overhead

Architecture

MCP Slack Server implements the Account Manager Tools Pattern with dual storage:

┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│   Claude    │────▶│ MCP Server   │────▶│   Slack     │
│   Desktop   │     │              │     │ Workspaces  │
└─────────────┘     └──────────────┘     └─────────────┘
                            │
                    ┌───────┴───────┐
                    ▼               ▼
            ┌──────────────┐ ┌──────────────┐
            │ OS Keychain  │ │  Encrypted   │
            │   Storage    │ │ File Storage │
            └──────────────┘ └──────────────┘
                Primary         Fallback

Troubleshooting

"Secure storage unavailable"

This warning appears when keychain access is denied or unavailable. The server will continue working with temporary storage.

Missing channels or users

Ensure your bot token has the necessary OAuth scopes:

  • channels:read
  • chat:write
  • users:read
  • files:read

Performance issues

  • Check network connectivity to Slack
  • Verify token permissions
  • Review workspace size (very large workspaces may need pagination)

Development

Building from source

git clone https://github.com/ChinchillaEnterprises/ChillMCP.git
cd ChillMCP/mcp-slacker-v3
npm install
npm run build

Contributing

Issues and pull requests are welcome at the GitHub repository.

License

MIT License - see LICENSE file for details.

Credits

Built by Chinchilla Enterprises for the MCP ecosystem.