README
🚀 Slack MCP
让任何人工智能都能访问你的整个Slack工作区。
这是一个 模型上下文协议 服务器,可让大语言模型全面访问 Slack。消息、频道、文件、画布、列表、搜索、反应等,应有尽有。
193 个工具 · 35 个 API 族 · 涵盖所有 Slack 功能
🚀 快速开始
1. 创建一个 Slack 应用
- 访问 api.slack.com/apps,点击 创建新应用 > 从清单创建。
- 粘贴
manifest.json的内容。 - 将应用安装到你的工作区。
- 从 OAuth & 权限 中复制 用户 OAuth 令牌 (
xoxp-...)。
2. 添加到你的 AI 客户端
Claude 代码
claude mcp add slack -- uvx --from git+https://github.com/karbassi/slack-mcp.git slack-mcp
然后在你的 shell 环境中设置 SLACK_XOXP_TOKEN。
Claude 桌面版
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"slack": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
"env": {
"SLACK_XOXP_TOKEN": "xoxp-..."
}
}
}
}
Cursor
添加到 ~/.cursor/mcp.json:
{
"mcpServers": {
"slack": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
"env": {
"SLACK_XOXP_TOKEN": "xoxp-..."
}
}
}
}
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"slack": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
"env": {
"SLACK_XOXP_TOKEN": "xoxp-..."
}
}
}
}
VS Code / GitHub Copilot
添加到你的 VS Code settings.json:
{
"mcp": {
"servers": {
"slack": {
"command": "uvx",
"args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
"env": {
"SLACK_XOXP_TOKEN": "xoxp-..."
}
}
}
}
}
本地克隆
{
"mcpServers": {
"slack": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/slack-mcp", "slack-mcp"]
}
}
}
✨ 主要特性
功能示例
- “总结今天 #engineering 频道的内容”
- “回复 Sarah 的线程,告知我们将在周一发货”
- “搜索有关第三季度路线图的所有内容”
- “创建一个名为 #project-atlas 的频道,并邀请设计团队”
功能领域及工具
| 领域 | 工具数量 | 亮点 | |---|---|---| | 对话 | 28 | 历史记录、线程、回复、创建、存档、邀请、标记已读 | | 文件 | 16 | 上传、共享、编辑、列表、远程文件 | | 聊天 | 14 | 发送、回复、安排、更新、删除、临时消息 | | 用户 | 12 | 个人资料、在线状态、查找、列表 | | 列表 | 12 | 创建、编辑项目、管理访问权限 | | 旧版 | 11 | 斜杠命令、文件编辑、机器人列表 | | 团队 | 9 | 信息、偏好设置、访问日志、账单 | | 应用 | 8 | 清单、连接、授权 | | 用户组 | 7 | 创建、更新、管理成员 | | 工作流 | 7 | 特色工作流、步骤完成情况 | | 画布 | 6 | 创建、编辑、部分、访问控制 | | 通话 | 6 | 开始、结束、管理参与者 | | + 23 个以上 | | 勿扰、提醒、书签、反应、固定、星标、视图、搜索、认证、机器人、表情符号等 |
此外,还有一个 cache_clear 实用工具,可按需清除响应缓存。
超越官方 API
提供 15 个未记录和旧版端点,这些是 Slack 自身应用使用的内部 API。需要会话令牌 (xoxc + xoxd)。
会话端点 — 官方 API 未公开的工作区状态
| 端点 | 提供的内容 |
|---|---|
| client.boot | 完整的工作区启动信息 — 频道、用户、偏好设置、功能标志 |
| client.counts | 每个频道/直接消息/线程的未读计数以及提及计数 |
| client.userBoot | 经过身份验证的用户特定的启动数据 |
| threads.getView | 线程收件箱 — 带有已读/未读状态的线程列表 |
旧版端点 — 官方 API 缺少的功能
| 端点 | 提供的内容 |
|---|---|
| chat.command | 以编程方式执行斜杠命令 |
| commands.list | 列出所有斜杠命令,包括自定义命令 |
| files.edit | 就地编辑文件的标题、内容或文件类型 |
| files.share | 将文件共享到频道 |
| bots.list | 列出工作区中的所有机器人用户 |
| team.prefs.get | 团队级别的偏好设置 — 保留期、权限、域名 |
| users.prefs.get | 所有用户偏好设置 — 通知、侧边栏、主题 |
| users.prefs.set | 设置任何单个用户偏好设置 |
| users.admin.invite | 通过电子邮件邀请用户(企业网格) |
| users.admin.setInactive | 停用用户账户(企业网格) |
| channels.delete | 已弃用的方法 — 为完整性而包含 |
📚 详细文档
身份验证
| 变量 | 是否必需 | 描述 |
|---|---|---|
| SLACK_XOXP_TOKEN | 是 | 来自你的 Slack 应用的用户 OAuth 令牌 |
| SLACK_XOXC_TOKEN | 否 | 用于未记录端点的浏览器会话令牌 |
| SLACK_XOXD_TOKEN | 否 | 浏览器会话 cookie(与 xoxc 配对) |
⚠️ 重要提示
xoxp令牌涵盖所有 193 个官方 API 工具。对于未记录的端点(未读计数、工作区启动、文件编辑),你还需要xoxc+xoxd,可以在登录 slack.com 时从浏览器 cookie 中获取。
缓存
响应会自动缓存,以减少 API 调用:
- 稳定数据(用户、团队、机器人、表情符号) — 1 小时 TTL
- 动态数据(频道列表、成员、书签) — 5 分钟 TTL
- 旧线程(
conversations_replies且时间戳大于 1 小时) — 1 小时 TTL - 有限历史记录(
conversations_history且日期范围较旧) — 1 小时 TTL
可以使用 cache_clear 工具在需要最新数据时清除缓存。
🔧 技术细节
开发步骤
git clone https://github.com/karbassi/slack-mcp.git
cd slack-mcp
uv sync
uv run ruff check .
uv run pytest tests/
uv run pytest tests/ -m integration # 需要在 .env 中设置令牌
Scan to contact