简介
Slack MCP 是 ModelContextProtocol 官方仓库维护的企业协同服务器。它把 Slack Web API 包装为 MCP 工具,让任何兼容 MCP 的客户端都能通过统一协议操作 Slack,无需各自实现 OAuth 流程、无需维护事件订阅、无需轮询消息历史。
对企业用户而言,这意味着:让 AI 助理直接帮你"发个消息到 #engineering 频道"、"查一下昨天 #product 频道讨论了什么"、"把这个文件传到 #design"。
核心能力
| 工具名 | 用途 | 关键参数 |
|---|---|---|
slack_list_channels | 列出可访问的频道 | limit(默认 100)、cursor |
slack_post_message | 发送消息到频道 | channel_id、text |
slack_reply_to_thread | 回复某条消息的 thread | channel_id、thread_ts、text |
slack_get_channel_history | 读取频道历史消息 | channel_id、limit |
slack_get_thread_replies | 读取 thread 回复 | channel_id、thread_ts |
slack_get_users | 列出工作区成员 | limit、cursor |
slack_get_user_profile | 查询成员详情 | user_id |
slack_upload_file | 上传文件到频道 | channels、filename、content 或 file_data |
slack_search_messages | 搜索消息(需 search:read) | query、count |
slack_add_reaction | 给消息加 emoji 反应 | channel、timestamp、name |
申请 Slack Bot Token
步骤 1:创建 Slack App
- 访问 https://api.slack.com/apps → 点击 Create New App
- 选择 From scratch → 填写 App 名称和工作区
步骤 2:配置 Bot Token Scopes
在 OAuth & Permissions 页面添加以下 Scopes:
channels:history # 读取公开频道消息
channels:read # 列出公开频道
chat:write # 发送消息
files:write # 上传文件
reactions:write # 添加反应
search:read # 搜索消息
users:read # 读取成员列表
users.profile:read # 读取成员资料
groups:history # 读取私有频道(可选)
groups:read # 列出私有频道(可选)
步骤 3:安装到工作区
点击 Install to Workspace → 授权 → 复制 Bot User OAuth Token(形如 xoxb-xxxxxxxx-xxxxxxxx)
步骤 4:邀请 Bot 进入频道
在 Slack 中对应频道输入 /invite @你的Bot名,否则 Bot 无法读写该频道。
各客户端配置示例
Claude Code(CLI)
编辑 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your_token_here"
}
}
}
}
启动后输入 /mcp 即可看到 slack 已连接。
Cursor
编辑 ~/.cursor/mcp.json:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your_token_here"
}
}
}
}
VS Code(Continue 插件)
编辑 ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": { "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-slack"] },
"env": { "SLACK_BOT_TOKEN": "xoxb-your_token_here" }
}
]
}
}
Cline 插件
通过 Cline: MCP Settings 命令打开 cline_mcp_settings.json,结构与 Claude Desktop 一致。
实战场景
场景 1:让 Claude Code 做"会议纪要助理"
读取 #engineering 频道昨天 14:00-16:00 的所有消息,
提取讨论要点,整理成 Markdown 会议纪要,
然后发到 #meeting-notes 频道。
Claude Code 会依次调用 slack_get_channel_history → 处理时间戳过滤 → 整理要点 → slack_post_message。
场景 2:让 Cursor 做"工单分类助手"
每 10 分钟读取 #support 频道新消息,
按 bug / feature / 询问 三类打标签,
回复 thread 给出分类与建议处理路径。
配合 cron + Cursor MCP 调用即可实现半自动化。
场景 3:让 VS Code 做"代码评审通知员"
读取当前打开的 PR diff,
写一段中文评审摘要,
发到 #code-review 频道并 @ 提交者。
Cline + Continue 可直接调用 slack_post_message 完成通知。
场景 4:跨频道信息检索
搜索工作区内所有提到"Migration"的消息,
按时间倒序整理成表格,
包含频道、发言人、时间、链接。
slack_search_messages 支持完整 Slack 搜索语法(from:、in:、after:、before:)。
与 Webhook 方案对比
| 方案 | 实时性 | 双向交互 | 配置复杂度 | MCP 兼容 |
|---|---|---|---|---|
| Slack MCP | 按需查询 | ✅ 读写 | 低 | ✅ |
| Slack Event API(Webhook) | 实时推送 | 需自建服务 | 高 | ❌ |
| Slack Bolt SDK | 实时 | ✅ | 中 | ❌ |
| 手动 Slack Web API | 按需 | ✅ | 高 | ❌ |
MCP 方案的优势:零代码接入 AI 客户端,适合个人与小团队快速搭建 AI 助理。
注意事项
- Token 保密:
SLACK_BOT_TOKEN切勿提交到 Git,用.env或系统密钥链管理。 - 频道邀请:Bot 必须被
/invite到目标频道才能读写,私有频道尤其重要。 - Rate Limit:Slack API 限制约 1 次/秒,超出返回 429,MCP 服务器已内置退避重试。
- 消息历史:
channels:history默认只能读最近 10000 条,更早需 Enterprise Grid。 - 文件上传:
slack_upload_file单文件上限 1GB,但 MCP 传输大文件较慢,建议走 URL。 - 搜索权限:
search:read需工作区管理员审批,免费版工作区可能无此权限。 - Thread 回复:
slack_reply_to_thread必须传thread_ts,否则会发到频道主层级。 - 中文消息:Slack API 完全支持 UTF-8,但部分 MCP 客户端在 Windows 上可能有编码问题,建议用 UTF-8 终端。
安全建议
- 最小权限原则:只申请实际需要的 Scope,避免
admin类权限 - 频道白名单:在 Prompt 中限定 Bot 只能操作特定频道,防止误发
- 操作审计:让 Bot 在每次发送消息前先在本地日志记录
- 测试环境:先在测试工作区验证,再部署到生产工作区
- Token 轮换:每 90 天轮换一次 Bot Token
小结
Slack MCP 是企业用户最直接的 AI 协同入口:一条 npx、一个 Bot Token,就能让任意 MCP 客户端成为 Slack 助理。对于需要"读消息、发消息、查历史、传文件"的办公场景,几乎是必装组件。建议搭配 Filesystem MCP(管理本地文件)和 Brave Search MCP(联网搜索)组成企业办公三件套。
下一篇我们会讲 Google Drive MCP,看如何让 LLM 读写 Google Docs/Sheets/Drive。