Manages environment variables for the server configuration, particularly for storing sensitive information like the Slack Bot Token.
Serves as the runtime environment for the MCP server, allowing it to execute the JavaScript code that powers the Slack integration.
Handles package management for the server, allowing easy installation of dependencies and running of scripts.
Enables messaging and management capabilities with Slack workspaces, including sending messages to channels/users, retrieving channel history, searching workspace messages, getting channel/user lists, and administrative functions like creating channels and inviting users.
Used as the programming language for implementing the MCP server, providing type safety and modern language features.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Slack MCPsend a message to #general reminding the team about the 3pm meeting"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: MCP Server for Slack
π Available Tools
Tool Name | Description |
| Send messages to channels or users |
| Get list of workspace channels |
| Get list of workspace users |
| Retrieve channel message history |
| Search messages across workspace |
| Special: 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
Clone and install dependencies:
git clone <repository-url> cd slack-mcp npm installBuild the project:
npm run build
βοΈ Configuration
Environment Variables
Create a .env file with the following:
# Required: Slack Bot Token from https://api.slack.com/appsSlack Bot Permissions
Your Slack Bot needs the following OAuth scopes:
Required Scopes
channels:read- Read public channelschannels:history- Read channel message historygroups:read- Read private channelsgroups:history- Read private channel historyusers:read- Read user informationchat:write- Send messagessearch: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 projectnpm run dev- Build and watch for changesnpm start- Start the MCP servernpm 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
"Failed to get channel list"
Check if your bot has
channels:readpermissionEnsure the bot is added to the workspace
"Failed to get channel history"
Verify the bot has
channels:historypermissionCheck if the bot is invited to the specific channel
"Message sent successfully" but no message appears
Confirm the bot has
chat:writepermissionVerify the channel name/ID is correct
MCP server not responding
Check if the build was successful:
npm run buildVerify 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
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
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.