Skip to content

atarukun/slack-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

63 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Slack MCP Server

License: MIT Docker MCP Python 3.12+

A production-ready Model Context Protocol (MCP) server for comprehensive Slack integration. Enable AI assistants to interact seamlessly with Slack workspaces through standardized, secure tools.

πŸš€ Quick Start

For Warp.dev Users

  1. Build the Docker image:

    git clone https://github.com/atarukun/slack-mcp.git
    cd slack-mcp
    docker build -t slack-mcp:latest .
  2. Configure in Warp:

    {
      "slack-mcp": {
        "command": "docker",
        "args": [
          "run", "--rm", "-i",
          "-e", "SLACK_BOT_TOKEN=xoxb-your-actual-slack-bot-token",
          "slack-mcp:latest"
        ],
        "env": {},
        "working_directory": null,
        "start_on_launch": true
      }
    }
  3. Get your Slack bot token from https://api.slack.com/apps

  4. Start using Slack tools in Warp!

For Claude Desktop Users

See CONFIGURATION_GUIDE.md for detailed setup instructions.

✨ Features

πŸ” Authentication & Security

  • Secure bot token handling via environment variables
  • Automatic token validation and format checking
  • Rate limiting compliance (1-second minimum intervals)
  • Support for Bot (xoxb-) and User (xoxp-) tokens

πŸ’¬ Messaging Tools

  • send_message: Send messages to channels, users, or threads
  • Rich text formatting with Slack blocks and attachments
  • Thread reply support with thread_ts parameter
  • Multi-channel message broadcasting

🏒 Workspace Discovery

  • list_channels: Categorized channel listing with beautiful formatting
  • get_channel_info: Detailed channel information and statistics
  • Support for public, private, and archived channels
  • Member counts and channel metadata

πŸ‘₯ User Management

  • get_user_info: Comprehensive user profile information
  • Display names, titles, status messages, and timezone data
  • Admin and bot account detection
  • Email-based user lookup

πŸ”Œ Connection & Testing

  • test_slack_connection: Comprehensive connectivity testing
  • Workspace information display (name, domain, branding)
  • API configuration details and diagnostics
  • set_slack_token: Runtime token configuration

πŸ—οΈ Architecture

Docker-First Design

  • Multi-stage Dockerfile optimized for development and production
  • Python 3.12 with full async support
  • uv package manager for fast, reliable dependency management
  • Non-root user execution for security
  • Built-in health checks and monitoring

MCP Protocol Implementation

  • FastMCP Framework for automatic tool registration
  • STDIO Transport for maximum client compatibility
  • Async Operations with proper error handling
  • Type Safety with full Pydantic validation
  • Rate Limiting built into all API operations

πŸ“Š Current Status

Version: 1.4.1 (File operations removed)
Phases Completed: 6 of 13
Tools Available: 29 production-ready MCP tools Testing: Verified with ILDM workspace

Available Tools

Core Tools (Phases 1-3)

  1. set_slack_token - Configure authentication
  2. test_slack_connection - Verify connectivity and workspace info
  3. send_message - Send formatted messages to channels/users
  4. get_channel_info - Get detailed channel information
  5. list_channels - Explore workspace channels with categorization
  6. get_user_info - Retrieve comprehensive user profiles

Extended Messaging Tools (Phase 4)

  1. update_message - Edit/update existing messages
  2. delete_message - Delete messages from channels
  3. pin_message - Pin important messages to channels
  4. unpin_message - Unpin messages from channels
  5. get_message_permalink - Generate shareable message links
  6. schedule_message - Schedule messages for future delivery
  7. get_thread_replies - Retrieve and display thread conversations
  8. send_direct_message - Send private messages to users

Channel Management Tools (Phase 5)

  1. create_channel - Create new public or private channels
  2. archive_channel - Archive channels to preserve history
  3. set_channel_topic - Set or update channel topics
  4. set_channel_purpose - Set channel purposes/descriptions
  5. join_channel - Join public channels
  6. leave_channel - Leave channels
  7. invite_to_channel - Invite users to channels
  8. remove_from_channel - Remove users from channels
  9. list_channel_members - List all members of a channel

User Management Tools (Phase 6)

  1. get_user_info - Get detailed information about a Slack user
  2. list_workspace_members - List all members in the workspace (with categorization)
  3. search_slack_users - Search for users by name, email, or title
  4. get_user_presence - Get a user's current presence status (active/away)
  5. get_user_timezone - Get a user's timezone information
  6. get_user_conversations - List all conversations a user is member of

πŸ“– Documentation

πŸ› οΈ Development

Prerequisites

Local Development

# Clone and setup
git clone https://github.com/atarukun/slack-mcp.git
cd slack-mcp

# Build development container
docker build --target development -t slack-mcp-dev .

# Run with development setup
docker-compose up --build

# Run tests
source .venv/bin/activate
python test_tools.py

Production Deployment

# Build production image
docker build --target production -t slack-mcp:latest .

# Run production container
docker run --rm -i \
  -e SLACK_BOT_TOKEN=xoxb-your-token \
  slack-mcp:latest

🀝 Contributing

Contributions are welcome! This project follows a structured development roadmap:

  • Phases 1-3: βœ… Core implementation (COMPLETED)
  • Phases 4-5: βœ… Extended messaging, channel management (COMPLETED)
  • Phase 6: User Management with basic tools (Completely moved more advanced user management to Phase 10)
  • Phases 7-9: Search, interactive elements, and other advanced features
  • Phases 10-13: Analytics, workflows, production features

See ROADMAP.md for detailed development phases.

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Brennon Church (atarukun@gmail.com)

πŸ™ Acknowledgments


⭐ Star this repository if you find it useful!
πŸ› Report issues on GitHub
πŸ’‘ Suggest features via GitHub Discussions

About

A Model Context Protocol (MCP) server that provides comprehensive Slack API integration for AI assistants

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages