JUHE API Marketplace
NeilKuo-opennet avatar
MCP Server

Slack MCP

A simple Model Context Protocol server for Slack integration that enables messaging, channel management, and workspace search capabilities.

0
GitHub Stars
8/23/2025
Last Updated
MCP Server Configuration
1{
2 "name": "slack-mcp",
3 "command": "node",
4 "args": [
5 "YOUR_PATH/slack-mcp/dist/index.js",
6 "--token",
7 "YOUR TOKEN",
8 "--user-id",
9 "YOUR PERSONAL SLACK ID"
10 ]
11}
JSON11 lines

README Documentation

Slack MCP Server

A Model Context Protocol (MCP) server that provides seamless Slack integration for AI assistants. This server enables AI models to interact with Slack workspaces through a comprehensive set of tools for messaging, channel management, and user interactions.

🚀 Features

Core Slack Tools

  • Message Management: Send messages to channels and users
  • Channel Operations: List channels and retrieve message history
  • User Management: Get workspace user information
  • Message Search: Search across workspace messages
  • Custom Tools: Specialized tools for specific workflows

Special Features

  • Smart Workday Calculation: Automatically reads messages from the previous workday
  • User-Specific Filtering: Dedicated tool for reading specific user messages
  • Rich Message Information: Includes user details, timestamps, and thread information
  • Flexible Time Ranges: Support for custom date ranges and all-time searches

📋 Available Tools

Tool NameDescription
slack_send_messageSend messages to channels or users
slack_get_channelsGet list of workspace channels
slack_get_usersGet list of workspace users
slack_get_channel_historyRetrieve channel message history
slack_search_messagesSearch messages across workspace
read_frontend_ladisai_messagesSpecial: Read Neil Kuo's messages from frontend-ladisai channel

🛠️ Installation

Prerequisites

  • Node.js 18 or higher
  • npm or yarn
  • Slack Bot Token with appropriate permissions

Setup

  1. Clone and install dependencies:

    git clone <repository-url>
    cd slack-mcp
    npm install
    
  2. Build the project:

    npm run build
    

⚙️ Configuration

Environment Variables

Create a .env file with the following:

# Required: Slack Bot Token from https://api.slack.com/apps

Slack Bot Permissions

Your Slack Bot needs the following OAuth scopes:

Required Scopes

  • channels:read - Read public channels
  • channels:history - Read channel message history
  • groups:read - Read private channels
  • groups:history - Read private channel history
  • users:read - Read user information
  • chat:write - Send messages
  • search:read - Search messages

Optional Scopes

  • channels:manage - Create channels (if using channel creation tools)
  • groups:write - Manage private channels

MCP Configuration

Add to your MCP client configuration (e.g., Cursor's mcp.json):

{
  "mcpServers": {
    "slack-mcp": {
      "command": "node",
      "args": [
        "YOUR_PATH/slack-mcp/dist/index.js",
        "--token",
        "YOUR TOKEN",
        "--user-id",
        "YOUR PERSONAL SLACK ID"
      ]
    }
  }
}

🎯 Usage Examples

Basic Message Sending

// Send a message to a channel
{
  "tool": "slack_send_message",
  "parameters": {
    "channel": "general",
    "text": "Hello from MCP!"
  }
}

// Send a direct message to a user
{
  "tool": "slack_send_message",
  "parameters": {
    "channel": "U1234567890",
    "text": "Private message"
  }
}

Reading Channel History

// Get recent messages from a channel
{
  "tool": "slack_get_channel_history",
  "parameters": {
    "channel": "frontend-ladisai",
    "limit": 10
  }
}

Special: Reading Neil Kuo's Messages

// Get Neil Kuo's latest messages (automatic workday detection)
{
  "tool": "read_frontend_ladisai_messages",
  "parameters": {
    "max_results": 5
  }
}

// Get all-time latest messages
{
  "tool": "read_frontend_ladisai_messages",
  "parameters": {
    "all_time": true,
    "max_results": 10
  }
}

// Get messages from a specific date
{
  "tool": "read_frontend_ladisai_messages",
  "parameters": {
    "manual_date": "2025-01-27",
    "max_results": 5
  }
}

User and Channel Information

// List all users
{
  "tool": "slack_get_users",
  "parameters": {
    "limit": 100
  }
}

// List all channels
{
  "tool": "slack_get_channels",
  "parameters": {
    "exclude_archived": true
  }
}

🔧 Development

Scripts

  • npm run build - Build the TypeScript project
  • npm run dev - Build and watch for changes
  • npm start - Start the MCP server
  • npm run typecheck - Run TypeScript type checking

Project Structure

slack-mcp/
├── src/
│   ├── index.ts              # Main MCP server
│   ├── slack-client.ts       # Slack API client wrapper
│   └── tools/
│       ├── index.ts          # Tool registry
│       ├── send-message.ts   # Message sending tool
│       ├── get-channels.ts   # Channel listing tool
│       ├── get-users.ts      # User listing tool
│       ├── get-channel-history.ts  # Channel history tool
│       ├── search-messages.ts      # Message search tool
│       └── read-frontend-ladisai.ts # Custom Neil Kuo reader
├── dist/                     # Compiled JavaScript
├── package.json
└── README.md

🔍 Smart Workday Logic

The read_frontend_ladisai_messages tool includes intelligent workday calculation:

  • Monday → Reads Friday's messages (3 days back)
  • Tuesday → Reads Monday's messages (1 day back)
  • Wednesday → Reads Tuesday's messages (1 day back)
  • Thursday → Reads Wednesday's messages (1 day back)
  • Friday → Reads Thursday's messages (1 day back)
  • Saturday → Reads Friday's messages (1 day back)
  • Sunday → Reads Friday's messages (2 days back)

🐛 Troubleshooting

Common Issues

  1. "Failed to get channel list"

    • Check if your bot has channels:read permission
    • Ensure the bot is added to the workspace
  2. "Failed to get channel history"

    • Verify the bot has channels:history permission
    • Check if the bot is invited to the specific channel
  3. "Message sent successfully" but no message appears

    • Confirm the bot has chat:write permission
    • Verify the channel name/ID is correct
  4. MCP server not responding

    • Check if the build was successful: npm run build
    • Verify environment variables are set correctly
    • Restart your MCP client (e.g., Cursor)

Testing the Server

# Test if the server responds to tool list requests
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' | node dist/index.js

📝 License

MIT License - see LICENSE file for details.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

📞 Support

For issues and questions:

  • Check the troubleshooting section above
  • Review Slack API documentation
  • Check MCP protocol specifications

Note: This MCP server is optimized for the frontend-ladisai channel workflow and includes specialized tools for reading Neil Kuo's messages with smart workday detection.

Quick Install

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source