easy-slack-mcp
Enables AI assistants like Cursor and Claude Desktop to interact with Slack workspaces, allowing message sending, channel reading, user management, and file operations through natural language.
README
easy-slack-mcp
<img src="images/slack.jpg" alt="Slack Logo" style="width: 100%;"/>
<h2 style="font-size: 1.5em; margin: 1em 0;">🚀 The Easiest way to run Slack MCP</h2>
Slack integration for AI assistants - Connect Cursor, Claude Desktop, and other MCP-compatible tools directly to Slack. Send messages, read channels, manage users, and automate workflows with AI.
📦 What We Provide
| Feature | Description |
|---|---|
| MCP Server | Full Model Context Protocol integration for AI assistants (Cursor, Claude Desktop, etc.) |
| REST API | Complete Slack API wrapper with OpenAPI/Swagger documentation |
| Message Management | Send, update, and delete messages in channels and DMs |
| Channel Operations | List, create, view details, and read message history for channels |
| User Management | List users, get user info, and access user profiles |
| File Operations | Upload files, list files, and get file information |
| Reactions | Add and remove emoji reactions to messages |
| Interactive Docs | Swagger UI for exploring and testing all endpoints |
| Zero Configuration | Run with a single command - just provide your Slack bot token |
| Production Ready | Built on easy-mcp-server framework |
🚀 Quick Start
SLACK_BOT_TOKEN=xoxb-your-token-here npx easy-slack-mcp
That's it! The server runs on:
| Service | URL | Notes |
|---|---|---|
| REST API | http://localhost:8887 |
Base for all endpoints |
| API Docs (Swagger UI) | http://localhost:8887/docs |
Interactive documentation |
| MCP Server | http://localhost:8888 |
For MCP-compatible clients |
📋 Detailed Configuration
Getting Your Slack Bot Token
- Go to https://api.slack.com/apps
- Click "Create New App" → "From scratch"
- Give your app a name and select your workspace
- Click "Create App"
- Navigate to "OAuth & Permissions" in the sidebar
- Scroll down to "Bot Token Scopes" and add the following scopes:
chat:write- Send messageschat:write.public- Send to channels bot isn't inchannels:read- View channel infochannels:history- Read channel messagesusers:read- View usersusers:read.email- View email addressesfiles:write- Upload filesfiles:read- View filesreactions:write- Add reactionsreactions:read- View reactions
- Scroll to the top and click "Install to Workspace"
- Authorize the app
- Copy your Bot User OAuth Token (starts with
xoxb-)
Using Environment Variables
Instead of passing the token inline, you can use a .env file for persistent configuration:
# Create .env file
echo "SLACK_BOT_TOKEN=xoxb-your-token-here" > .env
# Run (it will automatically load .env)
npx easy-slack-mcp
Local Installation
For a permanent local installation:
# Install locally
npm install easy-slack-mcp
# Create .env file
echo "SLACK_BOT_TOKEN=xoxb-your-token-here" > .env
# Run
npm start
# OR
npx easy-slack-mcp
💻 Use in Cursor / Claude Desktop
Option A: Use as npm package (Recommended)
For Cursor:
- Open Cursor Settings → Features → Model Context Protocol
- Click "Edit Config"
- Add this to your MCP config:
{
"mcpServers": {
"easy-slack-mcp": {
"command": "npx",
"args": ["-y", "easy-slack-mcp"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here"
}
}
}
}
For Claude Desktop:
- Open
~/Library/Application Support/Claude/claude_desktop_config.json(Mac) or%APPDATA%\Claude\claude_desktop_config.json(Windows) - Add the same configuration above
For any MCP client:
The server runs automatically when invoked via npx easy-slack-mcp
Client configuration paths
| Client | Platform | Config Location |
|---|---|---|
| Cursor | macOS/Windows/Linux | Settings → Features → Model Context Protocol |
| Claude Desktop | macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop | Windows | %APPDATA%\Claude\claude_desktop_config.json |
Option B: Local Installation
If you prefer a local setup:
# Install locally
npm install easy-slack-mcp
# Create .env file
echo "SLACK_BOT_TOKEN=xoxb-your-token-here" > .env
# Run it
npx easy-slack-mcp
Then configure your MCP client to run:
npx easy-slack-mcp
📡 Using the REST API
Once the server is running, you have full access to Slack via REST endpoints.
🔍 Interactive API Documentation
| Name | URL | Best for |
|---|---|---|
| Swagger UI | http://localhost:8887/docs |
Browsing endpoints, trying requests, viewing schemas |
| OpenAPI JSON | http://localhost:8887/openapi.json |
Import into Postman/Insomnia or tooling |
📝 Common API Examples
Send a Message
curl -X POST http://localhost:8887/slack/messages \
-H "Content-Type: application/json" \
-d '{
"channel": "C1234567890",
"text": "Hello from easy-slack-mcp!"
}'
List Channels
curl "http://localhost:8887/slack/conversations/list?types=public_channel"
Get Channel History
curl "http://localhost:8887/slack/conversations/history?channel=C1234567890&limit=20"
List Users
curl "http://localhost:8887/slack/users/list"
Upload a File
curl -X POST http://localhost:8887/slack/files/upload \
-H "Content-Type: application/json" \
-d '{
"channels": "C1234567890",
"filename": "report.txt",
"content": "File content here"
}'
📚 All Available Endpoints
| Category | Method | Path | Description |
|---|---|---|---|
| Messages | POST | /slack/messages |
Send a message |
| Messages | POST | /slack/messages/update |
Update a message |
| Messages | POST | /slack/messages/delete |
Delete a message |
| Conversations | GET | /slack/conversations/list |
List all channels |
| Conversations | GET | /slack/conversations/info |
Get channel details |
| Conversations | POST | /slack/conversations/create |
Create a channel |
| Conversations | GET | /slack/conversations/history |
Get message history |
| Users | GET | /slack/users/list |
List workspace users |
| Users | GET | /slack/users/info |
Get user details |
| Users | GET | /slack/users/profile |
Get user profile |
| Files | POST | /slack/files/upload |
Upload a file |
| Files | GET | /slack/files/list |
List files |
| Files | GET | /slack/files/info |
Get file info |
| Reactions | POST | /slack/reactions/add |
Add a reaction |
| Reactions | POST | /slack/reactions/remove |
Remove a reaction |
| Authentication | GET | /slack/auth/test |
Test authentication |
| System | GET | /health |
Health check |
| System | GET | /api-info |
API information |
| System | GET | /openapi.json |
OpenAPI specification |
| System | GET | /docs |
Swagger UI documentation |
⚙️ Advanced Configuration
Environment Variables
All configuration can be set via environment variables:
| Name | Required | Default | Description |
|---|---|---|---|
SLACK_BOT_TOKEN |
Yes | — | Bot User OAuth Token (starts with xoxb-) |
SLACK_APP_TOKEN |
No | — | App-level token for Socket Mode (starts with xapp-) |
SLACK_SIGNING_SECRET |
No | — | Verifies Slack request signatures for Events/API Gateway |
EASY_MCP_SERVER_PORT |
No | 8887 |
REST API port |
EASY_MCP_SERVER_MCP_PORT |
No | 8888 |
MCP server port |
Example .env content:
SLACK_BOT_TOKEN=xoxb-your-token-here
# Optional
SLACK_APP_TOKEN=xapp-your-app-token
SLACK_SIGNING_SECRET=your-signing-secret
EASY_MCP_SERVER_PORT=8887
EASY_MCP_SERVER_MCP_PORT=8888
Required Slack Scopes
See the Detailed Configuration section above for setup steps. The bot typically needs these scopes:
| Scope | Purpose |
|---|---|
chat:write |
Send messages as the bot |
chat:write.public |
Post to channels the bot isn’t a member of |
channels:read |
View basic channel information |
channels:history |
Read channel messages |
users:read |
View users in the workspace |
users:read.email |
View user email addresses |
files:write |
Upload files |
files:read |
View files |
reactions:write |
Add reactions to messages |
reactions:read |
View reactions on messages |
🎯 Use Cases
In Cursor / Claude Desktop
- "Send a message to #general about the project update"
- "What's the latest activity in #support channel?"
- "Find user @john and show their profile"
- "Summarize this week's messages in #engineering"
Via REST API
- Build custom integrations
- Automate Slack workflows
- Create Slack bots
- Integrate with other services
Via Swagger UI
- Explore endpoints visually
- Test API calls
- Understand request/response formats
- Share API documentation
📖 Learn More
- Easy MCP Server Framework:
- Full Setup Guide: See mcp/resources/slack-quick-start.md
- Complete API Docs: See mcp/resources/api-documentation.md
- Slack API: https://api.slack.com/methods
- Model Context Protocol: https://modelcontextprotocol.io/
📦 Package Info
| Item | Link/Value |
|---|---|
| npm | easy-slack-mcp |
| Repository | GitHub |
| License | MIT |
🆘 Need Help?
- Check Swagger UI: http://localhost:8887/docs
- Test authentication:
curl http://localhost:8887/slack/auth/test - Check server health:
curl http://localhost:8887/health - Review the setup guide
- For customization or support, contact
info@easynet.world
Ready to automate Slack with AI? Get started:
# Install and run directly
npx easy-slack-mcp
# Or install locally for project use
npm install easy-slack-mcp
npm start
Powered by easy-mcp-server framework
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。