Slack MCP Server - 企业级 Slack 工作空间集成方案
高性能实现 | Stars: 776 | Go | MIT
概述
Slack MCP Server 是一个功能强大的 Model Context Protocol 服务器,为 Slack 工作空间提供深度集成能力。该服务器采用 Go 语言开发,支持多种认证模式和传输协议,能够实现消息检索、智能搜索、频道管理以及安全的消息发送功能。
作为企业级的 Slack 集成方案,它特别适合需要程序化访问 Slack 数据的场景,如团队沟通分析、知识库构建、自动化工作流等。支持 Stealth 和 OAuth 两种认证模式,灵活适配不同的安全需求。

核心特性
- ✅ 双认证模式:支持 Stealth 和 OAuth 两种认证方式
- 🚀 多传输协议:Stdio、SSE、HTTP 三种传输模式
- 🏢 企业工作空间支持:兼容企业级 Slack 工作空间
- 💬 全面消息管理:频道消息、线程回复、DM 支持
- 🔍 强大搜索功能:多维度消息搜索和过滤
- 📊 智能缓存:用户和频道信息缓存提升性能
- 🔒 安全发送:默认禁用消息发送,支持频道白名单
- 🌐 代理支持:配置代理服务器支持
- ⚡ Go 语言实现:高性能、低资源占用
工具列表
1. conversations_history
功能:从频道或 DM 中检索消息历史
参数:
channel_id(string, 必需) - 频道 ID(可从 channels_list 获取)include_activity_messages(boolean, 可选) - 是否包含活动消息(加入/离开通知等)cursor(string, 可选) - 分页游标,用于获取下一页结果limit(integer, 可选) - 返回消息的最大数量
示例:
1 | { |
返回:消息列表,包含消息内容、发送者、时间戳等信息

向 Slack 频道发送消息
2. conversations_replies
功能:获取线程中的回复消息
参数:
channel_id(string, 必需) - 频道 IDthread_ts(string, 必需) - 线程时间戳,标识父消息include_activity_messages(boolean, 可选) - 是否包含活动消息cursor(string, 可选) - 分页游标limit(integer, 可选) - 返回消息的最大数量
示例:
1 | { |
3. conversations_add_message
功能:向频道或线程发送消息(默认禁用,需配置启用)
参数:
channel_id(string, 必需) - 目标频道 IDthread_ts(string, 可选) - 如果要回复线程,提供线程时间戳payload(string, 必需) - 消息内容(支持 Slack 块格式)content_type(string, 可选) - 内容类型:text 或 blocks
安全说明:
- 默认禁用,通过
SLACK_MCP_ADD_MESSAGE_TOOL环境变量配置 - 可设置为
enabled启用全部频道,或指定频道 ID 白名单
示例:
1 | { |
4. conversations_search_messages
功能:在工作空间中搜索消息,支持多种过滤条件
参数:
query(string, 必需) - 搜索查询文本channel_id(string, 可选) - 限制搜索到特定频道user_id(string, 可选) - 限制搜索到特定用户的消息after(string, 可选) - 搜索此日期之后的消息(YYYY-MM-DD 格式)before(string, 可选) - 搜索此日期之前的消息(YYYY-MM-DD 格式)only_threads(boolean, 可选) - 仅搜索线程消息cursor(string, 可选) - 分页游标limit(integer, 可选) - 返回结果的最大数量
示例:
1 | { |
5. channels_list
功能:检索工作空间的频道列表
参数:
channel_types(array, 可选) - 频道类型过滤(public_channel, private_channel, im, mpim)sort(string, 可选) - 排序方式limit(integer, 可选) - 返回频道的最大数量cursor(string, 可选) - 分页游标
示例:
1 | { |
资源
slack://<workspace>/channels
- 格式:CSV
- 描述:工作空间所有频道的目录信息
- 用途:获取频道列表、ID、名称等元数据
slack://<workspace>/users
- 格式:CSV
- 描述:工作空间所有用户的目录信息
- 用途:获取用户列表、ID、名称、状态等信息
配置方式
认证模式
Stealth 模式
使用浏览器令牌运行,无需额外权限和 Bot 安装:
1 | # 必需的环境变量 |
如何获取令牌:
- 在浏览器中登录 Slack
- 打开开发者工具(F12)
- 切换到 Network 标签
- 查找包含
xoxc和xoxd的请求 - 从请求头中提取令牌值
OAuth 模式(推荐)
使用用户 OAuth 令牌,更安全的访问方式:
1 | # 必需的环境变量 |
完整环境变量配置
1 | # 认证相关(至少需要一种模式) |
Claude Desktop 配置
在 claude_desktop_config.json 中添加:
1 | { |
Docker 部署
1 | # 使用 OAuth 模式 |
使用场景
1. 团队沟通监控与分析
实时监控和分析团队频道中的重要讨论。
场景描述:
- 监控关键项目频道的消息动态
- 识别重要讨论和决策过程
- 统计团队沟通活跃度
实施步骤:
- 使用
channels_list获取所有项目频道 - 使用
conversations_history定期检索新消息 - 使用
conversations_search_messages搜索关键词 - 分析消息频率、参与度等指标
示例代码:
1 | // 获取最近24小时的消息 |
2. 知识库构建与检索
从 Slack 历史消息中提取和组织团队知识。
场景描述:
- 将 Slack 讨论转化为可搜索的知识库
- 快速找到历史技术方案和决策记录
- 新员工快速了解项目历史
实施步骤:
- 启用用户和频道缓存以提高准确性
- 使用
conversations_history提取历史消息 - 使用
conversations_replies获取完整讨论线程 - 使用
conversations_search_messages实现语义搜索
最佳实践:
- 定期同步消息到本地数据库
- 对消息内容进行向量化处理
- 建立标签和分类系统
3. 自动化工作流与智能响应
根据特定条件触发自动化操作和消息响应。
场景描述:
- 监控告警频道,自动创建工单
- 根据关键词触发自动回复
- 定期发送团队报告和提醒
实施步骤:
- 启用
conversations_add_message工具 - 配置允许发送消息的频道白名单
- 监听特定频道的新消息
- 基于规则触发自动响应
安全配置:
1 | # 仅允许向特定频道发送消息 |
4. 跨平台数据同步
将 Slack 数据同步到其他系统。
场景描述:
- 同步到 Notion 或 Confluence 知识库
- 导出到数据分析平台
- 备份重要频道的历史消息
实施步骤:
- 使用
channels_list获取所有频道 - 对每个频道使用
conversations_history获取消息 - 格式转换并导出到目标系统
- 定期增量同步更新
技术架构
传输协议
1 | ┌─────────────────┐ |
认证流程
Stealth 模式:
1 | 浏览器 → 提取 xoxc/xoxd → 配置环境变量 → MCP Server → Slack API |
OAuth 模式:
1 | Slack OAuth → 获取 xoxp token → 配置环境变量 → MCP Server → Slack API |
缓存机制
1 | 首次启动 → 拉取用户列表 → 缓存到内存 |
与其他 MCP 服务器对比
| 特性 | Slack MCP | Discord MCP | Teams MCP |
|---|---|---|---|
| 平台 | Slack | Discord | Microsoft Teams |
| 认证方式 | Stealth/OAuth | Bot Token | OAuth |
| 搜索功能 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 企业支持 | ✅ 完整 | ⭐⭐ | ✅ 完整 |
| 性能 | ⭐⭐⭐⭐⭐ Go | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 缓存机制 | ✅ 内置 | ❌ 无 | ⭐⭐ |
| 消息发送 | ✅ 可配置 | ✅ 是 | ✅ 是 |
最佳实践
1. 安全性优先
1 | # ✅ 好的做法 |
2. 启用缓存以提升性能
1 | # 推荐配置 |
3. 谨慎配置消息发送
1 | # 生产环境推荐:禁用或使用白名单 |
4. 合理使用分页
1 | // ✅ 好的做法:使用分页处理大量数据 |
5. OAuth 模式优于 Stealth 模式
生产环境:
- ✅ 使用 OAuth 模式(xoxp token)
- ✅ 定期轮换令牌
- ✅ 使用最小权限原则
开发/测试环境:
- ⭐ Stealth 模式可用于快速测试
- ⚠️ 不建议长期使用
6. 设置合理的日志级别
1 | # 开发环境 |
常见问题
Q: 如何获取 xoxc 和 xoxd 令牌?
步骤:
- 在浏览器中登录 Slack 工作空间
- 打开开发者工具(Chrome: F12 或 Cmd+Option+I)
- 切换到 Network(网络)标签
- 在 Slack 中执行任何操作(如切换频道)
- 在请求列表中查找包含
xoxc的请求 - 在 Request Headers 中找到:
Authorization: Bearer xoxc-...(复制 xoxc 值)Cookie: d=xoxd-...(复制 xoxd 值)
Q: 如何获取 OAuth 令牌(xoxp)?
方法1:通过 Slack App
- 创建 Slack App:https://api.slack.com/apps
- 配置 OAuth 权限:
channels:history- 读取公开频道消息channels:read- 查看频道信息groups:history- 读取私有频道消息im:history- 读取 DM 消息chat:write- 发送消息(如需要)
- 安装 App 到工作空间
- 复制 User OAuth Token(以 xoxp- 开头)
方法2:使用现有令牌
- 如果有管理员权限,可以在 Slack App 管理页面找到
Q: 缓存有什么作用?为什么推荐启用?
缓存的重要性:
- ✅ 提升搜索准确性:消息搜索时能正确匹配用户名和频道名
- ✅ 减少 API 调用:避免重复请求用户和频道信息
- ✅ 提高响应速度:本地缓存比 API 请求快得多
- ✅ 增强功能完整性:某些功能依赖缓存数据
不启用缓存的影响:
- ❌ 搜索功能受限
- ❌ 用户名显示为 ID
- ❌ 频道过滤不准确
Q: 如何限制消息发送到特定频道?
1 | # 方法1:完全禁用(最安全) |
Q: 企业工作空间是否支持?
✅ 完全支持
- 支持企业网格工作空间
- 支持 SAML SSO
- 支持企业级安全策略
- 可配置代理服务器
注意事项:
- 某些企业策略可能限制 API 访问
- 可能需要 IT 部门批准
- 建议使用 OAuth 模式而非 Stealth 模式
Q: 性能如何?可以处理大量消息吗?
性能指标(基于 Go 实现):
- ✅ 内存占用低(<50MB)
- ✅ CPU 占用低
- ✅ 支持高并发请求
- ✅ 可处理百万级消息
优化建议:
- 启用缓存减少 API 调用
- 使用分页处理大量数据
- 合理设置 limit 参数
- 考虑使用本地数据库存储历史消息
Q: 如何排查连接问题?
调试步骤:
- 启用 debug 日志:
1 | SLACK_MCP_LOG_LEVEL=debug ./slack-mcp-server |
- 检查令牌有效性:
1 | curl -H "Authorization: Bearer xoxp-your-token" \ |
- 检查网络连接:
1 | # 如果使用代理 |
- 查看错误日志:
- 401: 令牌无效或过期
- 403: 权限不足
- 429: API 调用频率限制
评分详情
| 维度 | 评分 | 说明 |
|---|---|---|
| 功能性 | 4.7/5.0 | 功能全面,覆盖主要使用场景 |
| 文档质量 | 4.5/5.0 | 文档清晰,示例丰富 |
| 性能 | 4.8/5.0 | Go 实现,性能优秀 |
| 安全性 | 4.5/5.0 | 支持多种认证,消息发送可控 |
| 易用性 | 4.4/5.0 | 配置简单,但令牌获取需要技巧 |
| 维护状态 | 4.6/5.0 | 活跃维护,更新及时 |
| 综合评分 | 4.6/5.0 | 优秀的 Slack 集成方案 |
总结
Slack MCP Server 是一个功能强大、性能优秀的企业级 Slack 工作空间集成方案。它通过 Model Context Protocol 为 AI 应用提供了与 Slack 深度交互的能力,适合构建智能客服、知识库、工作流自动化等应用。
推荐指数: ⭐⭐⭐⭐⭐ (4.6/5)
适合你的情况:
- ✅ 需要程序化访问 Slack 数据
- ✅ 构建团队知识库和搜索系统
- ✅ 实现工作流自动化
- ✅ 需要企业级功能支持
- ✅ 对性能有较高要求
不适合的情况:
- ❌ 只需要简单的 Webhook 功能
- ❌ 不需要历史消息检索
- ❌ 无法获取 Slack 令牌
- ❌ 实时流式消息处理(考虑 WebSocket 方案)
相关资源
- GitHub: https://github.com/korotovsky/slack-mcp-server
- Slack API 文档: https://api.slack.com/
- MCP 协议: https://modelcontextprotocol.io/
- Go 语言: https://golang.org/
更新时间: 2025-10-14
数据来源: GitHub, 质量评分: 4.6/5.0