Slack MCP Server - 强大的工作空间集成服务
简介
Slack MCP Server 是一款功能强大的 Slack 工作空间集成服务器,通过 Model Context Protocol (MCP) 协议提供与 Slack 的深度集成能力。该服务器使用 Go 语言开发,提供了完整的消息检索、搜索、频道管理等功能,让 AI 助手能够直接与 Slack 工作空间进行交互。无论是查询历史消息、搜索特定内容,还是发送新消息到频道或线程,都可以通过自然语言指令轻松完成。这个项目在 GitHub 上获得了 776 颗星,证明了其在 Slack 自动化和集成领域的价值。
核心特性
- 消息历史检索 - 从任意频道或私信中检索完整的消息历史,支持时间范围过滤和分页
- 线程回复管理 - 检索和管理 Slack 线程中的所有回复消息,保持对话上下文
- 智能消息发送 - 向频道发送新消息或在现有线程中回复,支持 Markdown 格式
- 高级消息搜索 - 使用多种过滤器进行全文搜索,快速定位关键信息
- 频道列表管理 - 检索和浏览工作空间中的所有频道,支持多种排序和过滤选项
- 资源目录访问 - 提供工作空间频道和用户的 CSV 格式目录,便于批量操作
- 活动消息过滤 - 可选择是否包含系统活动消息,减少噪音干扰
- 灵活分页支持 - 通过游标机制实现高效的大量数据分页浏览
工具列表
消息管理工具
conversations_history
描述: 从指定频道或私信中检索消息历史记录,可以获取过去一段时间内的所有消息内容
参数:
channel_id(string): 要检索消息的频道 ID [必需]include_activity_messages(boolean): 是否包含活动消息(如成员加入、离开等系统消息)[可选,默认: false]cursor(string): 分页游标,用于获取下一页结果 [可选]limit(string): 时间限制,控制检索多长时间范围内的消息 [可选,默认: “1d”]
conversations_replies
描述: 检索特定线程中的所有回复消息,用于获取完整的对话上下文
参数:
channel_id(string): 线程所在的频道 ID [必需]thread_ts(string): 线程的时间戳标识符,用于定位特定线程 [必需]include_activity_messages(boolean): 是否包含活动消息 [可选,默认: false]cursor(string): 分页游标 [可选]limit(string): 时间限制 [可选,默认: “1d”]
conversations_add_message
描述: 向指定频道或线程添加新消息,支持富文本格式
参数:
channel_id(string): 目标频道 ID [必需]thread_ts(string): 如果要回复线程,提供线程时间戳 [可选]payload(string): 消息内容文本 [必需]content_type(string): 内容类型格式 [可选,默认: “text/markdown”]
搜索工具
conversations_search_messages
描述: 使用强大的搜索功能在整个工作空间中查找消息,支持多种过滤条件
参数:
search_query(string): 搜索查询字符串,可以包含关键词、用户、频道等过滤器 [可选]
频道管理工具
channels_list
描述: 检索工作空间中的频道列表,可以根据类型、排序方式等条件筛选
参数:
channel_types(string): 频道类型(如 public_channel、private_channel、im、mpim)[必需]sort(string): 排序方式(如按名称、创建时间等)[可选]limit(number): 返回结果的数量限制 [可选,默认: 100]cursor(string): 分页游标 [可选]
Resources
Slack MCP Server 提供了两种资源访问方式:
- 频道目录:
slack://<workspace>/channels- 以 CSV 格式提供工作空间中所有频道的完整目录 - 用户目录:
slack://<workspace>/users- 以 CSV 格式提供工作空间中所有用户的完整目录
这些资源可以用于批量分析、报表生成或与其他系统集成。
配置方式
基础配置
1 | # 环境变量配置 |
环境变量说明
- SLACK_MCP_XOXC_TOKEN: Slack 浏览器会话令牌,用于认证用户身份
- SLACK_MCP_XOXD_TOKEN: Slack 浏览器 Cookie,配合 XOXC Token 使用
- SLACK_MCP_XOXP_TOKEN: 用户 OAuth 令牌,提供 API 访问权限
- SLACK_MCP_PORT: 服务器监听端口,可以根据需要自定义
- SLACK_MCP_HOST: 服务器绑定的主机地址,默认本地访问
使用示例
1 | # 启动服务器 |
实际使用场景示例
1 | # 检索最近的消息 |
实际应用场景
团队协作分析 - 分析团队沟通模式,了解哪些频道最活跃,哪些话题讨论最多,帮助优化团队协作流程
自动化客户支持 - 监控支持频道的消息,自动检测客户问题并触发相应的响应流程,提高响应速度
知识库构建 - 从 Slack 对话中提取有价值的信息和解决方案,自动整理成知识库文档供团队参考
合规性审计 - 搜索和检索历史消息用于合规性检查和审计目的,确保团队沟通符合相关规定
智能通知系统 - 根据关键词或模式自动发送定制化通知到相关频道,让团队成员及时了解重要信息
跨平台集成 - 将 Slack 与其他工具和平台集成,实现信息的双向同步和自动化工作流
技术实现
Slack MCP Server 采用 Go 语言开发,充分利用了 Go 的高性能和并发特性。该服务器实现了以下技术亮点:
- 高性能并发处理 - 使用 Go 的 goroutine 实现高效的并发消息处理和 API 调用
- 轻量级部署 - 编译后的单一二进制文件,无需额外依赖,部署极其简单
- 灵活的认证机制 - 支持多种 Slack 令牌类型,适应不同的使用场景
- 完整的 API 覆盖 - 包装了 Slack 的主要 API 端点,提供全面的功能支持
- MCP 协议兼容 - 完全遵循 Model Context Protocol 规范,确保与各种 MCP 客户端的兼容性
- 资源高效管理 - 智能的连接池和请求管理,确保在高负载下的稳定性
获取方式
- GitHub: https://github.com/korotovsky/slack-mcp-server
- 安装:
- 下载预编译的二进制文件
- 使用 Docker 容器运行
- 从源码编译:
go build
- 系统要求:
- Go 1.18+ (如果从源码编译)
- Docker (如果使用容器部署)
- 有效的 Slack 工作空间和认证令牌
相关资源
- 项目仓库: github.com/korotovsky/slack-mcp-server
- 问题追踪: 在 GitHub Issues 中报告 bug 和请求新功能
- 社区支持: 通过 GitHub Discussions 与其他用户交流使用经验
- Slack API 文档: 参考 Slack 官方 API 文档了解更多 API 使用细节