[ PROMPT_NODE_28158 ]
slack-automation
[ SKILL_DOCUMENTATION ]
# 通过 Rube MCP 实现 Slack 自动化
通过 Composio 的 Slack 工具包自动化 Slack 工作区操作,包括消息发送、搜索、频道管理和反应工作流。
## 前置条件
- 必须连接 Rube MCP (提供 RUBE_SEARCH_TOOLS)
- 通过 `RUBE_MANAGE_CONNECTIONS` 使用 `slack` 工具包建立活跃的 Slack 连接
- 始终先调用 `RUBE_SEARCH_TOOLS` 以获取当前的工具架构
## 设置
**获取 Rube MCP**:在客户端配置中添加 `https://rube.app/mcp` 作为 MCP 服务器。无需 API 密钥 — 只需添加端点即可工作。
1. 通过确认 `RUBE_SEARCH_TOOLS` 有响应来验证 Rube MCP 是否可用
2. 使用 `slack` 工具包调用 `RUBE_MANAGE_CONNECTIONS`
3. 如果连接不是 ACTIVE,请按照返回的授权链接完成 Slack OAuth
4. 在运行任何工作流之前,确认连接状态显示为 ACTIVE
## 核心工作流
### 1. 向频道发送消息
**使用场景**:用户想要向 Slack 频道或私信发送消息
**工具序列**:
1. `SLACK_FIND_CHANNELS` - 将频道名称解析为频道 ID [前置条件]
2. `SLACK_LIST_ALL_CHANNELS` - 如果 FIND_CHANNELS 返回空或模糊结果时的后备方案 [后备]
3. `SLACK_FIND_USERS` - 为私信或 @提及解析用户 [可选]
4. `SLACK_OPEN_DM` - 如果直接给用户发消息,则打开/重用私信频道 [可选]
5. `SLACK_SEND_MESSAGE` - 使用解析后的频道 ID 发布消息 [必需]
6. `SLACK_UPDATES_A_SLACK_MESSAGE` - 如果需要更正,编辑已发布的消息 [可选]
**关键参数**:
- `channel`: 频道 ID 或名称(不带 '#' 前缀)
- `markdown_text`: 格式化消息的首选字段(支持标题、粗体、斜体、代码块)
- `text`: 原始文本后备(已弃用,建议使用 markdown_text)
- `thread_ts`: 父消息的时间戳,用于在线程中回复
- `blocks`: Block Kit 布局块(已弃用,使用 markdown_text)
**注意事项**:
- `SLACK_FIND_CHANNELS` 需要 `query` 参数;缺少该参数会报错 "Invalid request data provided"
- `SLACK_SEND_MESSAGE` 需要有效的频道以及 markdown_text/text/blocks/attachments 中的一项
- 无效的块负载会返回 error=invalid_blocks(最多 50 个块)
- 如果省略 `thread_ts`,回复将成为顶级帖子
- 为编辑/线程操作保留 SEND_MESSAGE 返回的 `response.data.channel` 和 `response.data.message.ts`
### 2. 搜索消息和对话
**使用场景**:用户想要在整个工作区中查找特定消息
**工具序列**:
1. `SLACK_FIND_CHANNELS` - 解析频道