Automação do Slack via Rube MCP
Automatize operações de workspace do Slack, incluindo mensagens, busca, gerenciamento de canais e workflows de reações através do toolkit Slack do Composio.
Pré-requisitos
- Rube MCP deve estar conectado (RUBE_SEARCH_TOOLS disponível)
- Conexão ativa do Slack via
RUBE_MANAGE_CONNECTIONS com toolkit slack
- Sempre chame
RUBE_SEARCH_TOOLS primeiro para obter os schemas atuais das ferramentas
Configuração
Obtenha Rube MCP: Adicione https://rube.app/mcp como servidor MCP na configuração do seu cliente. Nenhuma chave de API necessária — apenas adicione o endpoint e funciona.
- Verifique se Rube MCP está disponível confirmando que
RUBE_SEARCH_TOOLS responde
- Chame
RUBE_MANAGE_CONNECTIONS com toolkit slack
- Se a conexão não estiver ACTIVE, siga o link de autenticação retornado para completar o OAuth do Slack
- Confirme se o status da conexão mostra ACTIVE antes de executar qualquer workflow
Workflows Principais
1. Enviar Mensagens para Canais
Quando usar: Usuário deseja postar uma mensagem em um canal Slack ou DM
Sequência de ferramentas:
SLACK_FIND_CHANNELS - Resolver nome de canal para ID de canal [Pré-requisito]
SLACK_LIST_ALL_CHANNELS - Fallback se FIND_CHANNELS retornar resultados vazios/ambíguos [Fallback]
SLACK_FIND_USERS - Resolver usuário para DMs ou @menções [Opcional]
SLACK_OPEN_DM - Abrir/reutilizar canal de DM se mensagear um usuário diretamente [Opcional]
SLACK_SEND_MESSAGE - Postar a mensagem com ID de canal resolvido [Obrigatório]
SLACK_UPDATES_A_SLACK_MESSAGE - Editar a mensagem postada se correções forem necessárias [Opcional]
Parâmetros principais:
channel: ID ou nome do canal (sem prefixo '#')
markdown_text: Campo preferido para mensagens formatadas (suporta cabeçalhos, negrito, itálico, blocos de código)
text: Fallback de texto bruto (deprecado em favor de markdown_text)
thread_ts: Timestamp da mensagem pai para responder em uma thread
blocks: Blocos de layout Block Kit (deprecado, use markdown_text)
Armadilhas:
SLACK_FIND_CHANNELS requer parâmetro query; sua ausência gera erro "Invalid request data provided"
SLACK_SEND_MESSAGE requer um canal válido mais um de markdown_text/text/blocks/attachments
- Payloads de bloco inválidos retornam error=invalid_blocks (máx 50 blocos)
- Respostas se tornam postagens de nível superior se
thread_ts for omitido
- Persista
response.data.channel e response.data.message.ts de SEND_MESSAGE para operações de edição/thread
2. Buscar Mensagens e Conversas
Quando usar: Usuário deseja encontrar mensagens específicas em todo o workspace
Sequência de ferramentas:
SLACK_FIND_CHANNELS - Resolver canal para busca com escopo usando in:#channel [Opcional]
SLACK_FIND_USERS - Resolver usuário para filtro de autor com from:@user [Opcional]
SLACK_SEARCH_MESSAGES - Executar busca por palavra-chave em conversas acessíveis [Obrigatório]
SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION - Expandir threads para hits relevantes [Obrigatório]
Parâmetros principais:
query: String de busca suportando modificadores (in:#channel, from:@user, before:YYYY-MM-DD, after:YYYY-MM-DD, has:link, has:file)
count: Resultados por página (máx 100), ou total com auto_paginate=true
sort: 'score' (relevância) ou 'timestamp' (cronológico)
sort_dir: 'asc' ou 'desc'
Armadilhas:
- A validação falha se
query estiver ausente/vazio
ok=true ainda pode significar sem resultados (response.data.messages.total=0)
- Correspondências estão sob
response.data.messages.matches (às vezes também em response.data_preview.messages.matches)
match.text pode estar vazio/truncado; informações-chave podem aparecer em matches[].attachments[]
- Expansão de thread via FETCH_MESSAGE_THREAD pode truncar quando
response.data.has_more=true; pagine via response_metadata.next_cursor
3. Gerenciar Canais e Usuários
Quando usar: Usuário deseja listar canais, usuários ou informações do workspace
Sequência de ferramentas:
SLACK_FETCH_TEAM_INFO - Validar conectividade e obter identidade do workspace [Obrigatório]
SLACK_LIST_ALL_CHANNELS - Enumerar canais públicos [Obrigatório]
SLACK_LIST_CONVERSATIONS - Incluir canais privados e DMs [Opcional]
SLACK_LIST_ALL_USERS - Listar membros do workspace [Obrigatório]
SLACK_RETRIEVE_CONVERSATION_INFORMATION - Obter metadados detalhados do canal [Opcional]
SLACK_LIST_USER_GROUPS_FOR_TEAM_WITH_OPTIONS - Listar grupos de usuários [Opcional]
Parâmetros principais:
cursor: Cursor de paginação de response_metadata.next_cursor
limit: Resultados por página (padrão varia; defina explicitamente para workspaces grandes)
types: Filtro de tipos de canal ('public_channel', 'private_channel', 'im', 'mpim')
Armadilhas:
- Metadados do workspace estão aninhados sob
response.data.team, não no nível superior
SLACK_LIST_ALL_CHANNELS retorna apenas canais públicos; use SLACK_LIST_CONVERSATIONS para cobertura privada/IM
SLACK_LIST_ALL_USERS pode atingir limites de taxa HTTP 429; honre o cabeçalho Retry-After
- Sempre pagine via
response_metadata.next_cursor até estar vazio; deduplicar por id
4. Reagir e Gerenciar Threads de Mensagens
Quando usar: Usuário deseja adicionar reações ou gerenciar conversas com threads
Sequência de ferramentas:
SLACK_SEARCH_MESSAGES ou SLACK_FETCH_CONVERSATION_HISTORY - Encontrar a mensagem alvo [Pré-requisito]
SLACK_ADD_REACTION_TO_AN_ITEM - Adicionar reação com emoji [Obrigatório]
SLACK_FETCH_ITEM_REACTIONS - Listar reações em uma mensagem [Opcional]
SLACK_REMOVE_REACTION_FROM_ITEM - Remover uma reação [Opcional]
SLACK_SEND_MESSAGE - Responder em thread usando thread_ts [Opcional]
SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION - Ler thread completa [Opcional]
Parâmetros principais:
channel: ID do canal onde a mensagem vive
timestamp / ts: Timestamp da mensagem (identificador único como '1234567890.123456')
name: Nome do emoji sem dois-pontos (ex: 'thumbsup', 'wave::skin-tone-3')
thread_ts: Timestamp da mensagem pai para respostas com thread
Armadilhas:
- Reações requerem par exato de ID de canal + timestamp de mensagem
- Nomes de emoji usam a convenção de nomenclatura do Slack sem dois-pontos
SLACK_FETCH_CONVERSATION_HISTORY retorna apenas a timeline do canal principal, NÃO respostas com thread
- Use
SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION com thread_ts da mensagem pai para obter respostas de thread
5. Agendar Mensagens
Quando usar: Usuário deseja agendar uma mensagem para entrega futura
Sequência de ferramentas:
SLACK_FIND_CHANNELS - Resolver ID de canal [Pré-requisito]
SLACK_SCHEDULE_MESSAGE - Agendar a mensagem com timestamp post_at [Obrigatório]
Parâmetros principais:
channel: ID de canal resolvido
post_at: Timestamp Unix para entrega (até 120 dias adiantado)
text / blocks: Conteúdo da mensagem
Armadilhas:
- Agendamento é limitado a 120 dias adiantado
post_at deve ser um timestamp Unix, não ISO 8601
Padrões Comuns
Resolução de ID
Sempre resolva nomes de exibição para IDs antes de operações:
- Nome de canal -> ID de canal:
SLACK_FIND_CHANNELS com parâmetro query
- Nome de usuário -> ID de usuário:
SLACK_FIND_USERS com search_query ou email
- Canal de DM:
SLACK_OPEN_DM com IDs de usuários resolvidos
Paginação
A maioria dos endpoints de lista usa paginação baseada em cursor:
- Siga
response_metadata.next_cursor até estar vazio
- Defina valores explícitos de
limit (ex: 100-200) para paginação confiável
- Deduplicar resultados por
id entre páginas
Formatação de Mensagem
- Prefira
markdown_text sobre text ou blocks para mensagens formatadas
- Use formato
<@USER_ID> para mencionar usuários (não @username)
- Use
\n para quebras de linha em markdown_text
Armadilhas Conhecidas
- Resolução de canal:
SLACK_FIND_CHANNELS pode retornar resultados vazios se o canal for privado e o bot não foi convidado
- Limites de taxa:
SLACK_LIST_ALL_USERS e outros endpoints de lista podem atingir HTTP 429; honre o cabeçalho Retry-After
- Respostas aninhadas: Resultados podem estar aninhados sob
response.data.results[0].response.data em execuções encapsuladas
- Thread vs canal:
SLACK_FETCH_CONVERSATION_HISTORY retorna apenas timeline principal; use SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION para respostas de thread
- Edição de mensagem: Requer tanto
channel quanto ts da mensagem original; persista estes da resposta SEND_MESSAGE
- Atrasos de busca: Mensagens postadas recentemente podem não aparecer nos resultados de busca imediatamente
- Limitações de escopo: Escopos OAuth ausentes podem causar erros 403; verifique com
SLACK_GET_APP_PERMISSION_SCOPES
Referência Rápida
| Tarefa |
Tool Slug |
Parâmetros Principais |
| Encontrar canais |
SLACK_FIND_CHANNELS |
query |
| Listar todos os canais |
SLACK_LIST_ALL_CHANNELS |
limit, cursor, types |
| Enviar mensagem |
SLACK_SEND_MESSAGE |
channel, markdown_text |
| Editar mensagem |
SLACK_UPDATES_A_SLACK_MESSAGE |
channel, ts, markdown_text |
| Buscar mensagens |
SLACK_SEARCH_MESSAGES |
query, count, sort |
| Obter thread |
SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION |
channel, ts |
| Adicionar reação |
SLACK_ADD_REACTION_TO_AN_ITEM |
channel, name, timestamp |
| Encontrar usuários |
SLACK_FIND_USERS |
search_query ou email |
| Listar usuários |
SLACK_LIST_ALL_USERS |
limit, cursor |
| Abrir DM |
SLACK_OPEN_DM |
IDs de usuários |
| Agendar mensagem |
SLACK_SCHEDULE_MESSAGE |
channel, post_at, text |
| Obter informações do canal |
SLACK_RETRIEVE_CONVERSATION_INFORMATION |
ID de canal |
| Histórico do canal |
SLACK_FETCH_CONVERSATION_HISTORY |
channel, oldest, latest |
| Informações do workspace |
SLACK_FETCH_TEAM_INFO |
(nenhum) |
Quando Usar
Esta skill é aplicável para executar o workflow ou ações descritas na visão geral.
1---2name: slack-automation3description: Automatize operações de workspace do Slack, incluindo mensagens, busca, gerenciamento de canais e workflows de reações através do toolkit Slack do Composio.4---56# Automação do Slack via Rube MCP78Automatize operações de workspace do Slack, incluindo mensagens, busca, gerenciamento de canais e workflows de reações através do toolkit Slack do Composio.910## Pré-requisitos1112- Rube MCP deve estar conectado (RUBE_SEARCH_TOOLS disponível)13- Conexão ativa do Slack via `RUBE_MANAGE_CONNECTIONS` com toolkit `slack`14- Sempre chame `RUBE_SEARCH_TOOLS` primeiro para obter os schemas atuais das ferramentas1516## Configuração1718**Obtenha Rube MCP**: Adicione `https://rube.app/mcp` como servidor MCP na configuração do seu cliente. Nenhuma chave de API necessária — apenas adicione o endpoint e funciona.19201. Verifique se Rube MCP está disponível confirmando que `RUBE_SEARCH_TOOLS` responde212. Chame `RUBE_MANAGE_CONNECTIONS` com toolkit `slack`223. Se a conexão não estiver ACTIVE, siga o link de autenticação retornado para completar o OAuth do Slack234. Confirme se o status da conexão mostra ACTIVE antes de executar qualquer workflow2425## Workflows Principais2627### 1. Enviar Mensagens para Canais2829**Quando usar**: Usuário deseja postar uma mensagem em um canal Slack ou DM3031**Sequência de ferramentas**:321. `SLACK_FIND_CHANNELS` - Resolver nome de canal para ID de canal [Pré-requisito]332. `SLACK_LIST_ALL_CHANNELS` - Fallback se FIND_CHANNELS retornar resultados vazios/ambíguos [Fallback]343. `SLACK_FIND_USERS` - Resolver usuário para DMs ou @menções [Opcional]354. `SLACK_OPEN_DM` - Abrir/reutilizar canal de DM se mensagear um usuário diretamente [Opcional]365. `SLACK_SEND_MESSAGE` - Postar a mensagem com ID de canal resolvido [Obrigatório]376. `SLACK_UPDATES_A_SLACK_MESSAGE` - Editar a mensagem postada se correções forem necessárias [Opcional]3839**Parâmetros principais**:40- `channel`: ID ou nome do canal (sem prefixo '#')41- `markdown_text`: Campo preferido para mensagens formatadas (suporta cabeçalhos, negrito, itálico, blocos de código)42- `text`: Fallback de texto bruto (deprecado em favor de markdown_text)43- `thread_ts`: Timestamp da mensagem pai para responder em uma thread44- `blocks`: Blocos de layout Block Kit (deprecado, use markdown_text)4546**Armadilhas**:47- `SLACK_FIND_CHANNELS` requer parâmetro `query`; sua ausência gera erro "Invalid request data provided"48- `SLACK_SEND_MESSAGE` requer um canal válido mais um de markdown_text/text/blocks/attachments49- Payloads de bloco inválidos retornam error=invalid_blocks (máx 50 blocos)50- Respostas se tornam postagens de nível superior se `thread_ts` for omitido51- Persista `response.data.channel` e `response.data.message.ts` de SEND_MESSAGE para operações de edição/thread5253### 2. Buscar Mensagens e Conversas5455**Quando usar**: Usuário deseja encontrar mensagens específicas em todo o workspace5657**Sequência de ferramentas**:581. `SLACK_FIND_CHANNELS` - Resolver canal para busca com escopo usando `in:#channel` [Opcional]592. `SLACK_FIND_USERS` - Resolver usuário para filtro de autor com `from:@user` [Opcional]603. `SLACK_SEARCH_MESSAGES` - Executar busca por palavra-chave em conversas acessíveis [Obrigatório]614. `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` - Expandir threads para hits relevantes [Obrigatório]6263**Parâmetros principais**:64- `query`: String de busca suportando modificadores (`in:#channel`, `from:@user`, `before:YYYY-MM-DD`, `after:YYYY-MM-DD`, `has:link`, `has:file`)65- `count`: Resultados por página (máx 100), ou total com auto_paginate=true66- `sort`: 'score' (relevância) ou 'timestamp' (cronológico)67- `sort_dir`: 'asc' ou 'desc'6869**Armadilhas**:70- A validação falha se `query` estiver ausente/vazio71- `ok=true` ainda pode significar sem resultados (`response.data.messages.total=0`)72- Correspondências estão sob `response.data.messages.matches` (às vezes também em `response.data_preview.messages.matches`)73- `match.text` pode estar vazio/truncado; informações-chave podem aparecer em `matches[].attachments[]`74- Expansão de thread via FETCH_MESSAGE_THREAD pode truncar quando `response.data.has_more=true`; pagine via `response_metadata.next_cursor`7576### 3. Gerenciar Canais e Usuários7778**Quando usar**: Usuário deseja listar canais, usuários ou informações do workspace7980**Sequência de ferramentas**:811. `SLACK_FETCH_TEAM_INFO` - Validar conectividade e obter identidade do workspace [Obrigatório]822. `SLACK_LIST_ALL_CHANNELS` - Enumerar canais públicos [Obrigatório]833. `SLACK_LIST_CONVERSATIONS` - Incluir canais privados e DMs [Opcional]844. `SLACK_LIST_ALL_USERS` - Listar membros do workspace [Obrigatório]855. `SLACK_RETRIEVE_CONVERSATION_INFORMATION` - Obter metadados detalhados do canal [Opcional]866. `SLACK_LIST_USER_GROUPS_FOR_TEAM_WITH_OPTIONS` - Listar grupos de usuários [Opcional]8788**Parâmetros principais**:89- `cursor`: Cursor de paginação de `response_metadata.next_cursor`90- `limit`: Resultados por página (padrão varia; defina explicitamente para workspaces grandes)91- `types`: Filtro de tipos de canal ('public_channel', 'private_channel', 'im', 'mpim')9293**Armadilhas**:94- Metadados do workspace estão aninhados sob `response.data.team`, não no nível superior95- `SLACK_LIST_ALL_CHANNELS` retorna apenas canais públicos; use `SLACK_LIST_CONVERSATIONS` para cobertura privada/IM96- `SLACK_LIST_ALL_USERS` pode atingir limites de taxa HTTP 429; honre o cabeçalho Retry-After97- Sempre pagine via `response_metadata.next_cursor` até estar vazio; deduplicar por `id`9899### 4. Reagir e Gerenciar Threads de Mensagens100101**Quando usar**: Usuário deseja adicionar reações ou gerenciar conversas com threads102103**Sequência de ferramentas**:1041. `SLACK_SEARCH_MESSAGES` ou `SLACK_FETCH_CONVERSATION_HISTORY` - Encontrar a mensagem alvo [Pré-requisito]1052. `SLACK_ADD_REACTION_TO_AN_ITEM` - Adicionar reação com emoji [Obrigatório]1063. `SLACK_FETCH_ITEM_REACTIONS` - Listar reações em uma mensagem [Opcional]1074. `SLACK_REMOVE_REACTION_FROM_ITEM` - Remover uma reação [Opcional]1085. `SLACK_SEND_MESSAGE` - Responder em thread usando `thread_ts` [Opcional]1096. `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` - Ler thread completa [Opcional]110111**Parâmetros principais**:112- `channel`: ID do canal onde a mensagem vive113- `timestamp` / `ts`: Timestamp da mensagem (identificador único como '1234567890.123456')114- `name`: Nome do emoji sem dois-pontos (ex: 'thumbsup', 'wave::skin-tone-3')115- `thread_ts`: Timestamp da mensagem pai para respostas com thread116117**Armadilhas**:118- Reações requerem par exato de ID de canal + timestamp de mensagem119- Nomes de emoji usam a convenção de nomenclatura do Slack sem dois-pontos120- `SLACK_FETCH_CONVERSATION_HISTORY` retorna apenas a timeline do canal principal, NÃO respostas com thread121- Use `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` com `thread_ts` da mensagem pai para obter respostas de thread122123### 5. Agendar Mensagens124125**Quando usar**: Usuário deseja agendar uma mensagem para entrega futura126127**Sequência de ferramentas**:1281. `SLACK_FIND_CHANNELS` - Resolver ID de canal [Pré-requisito]1292. `SLACK_SCHEDULE_MESSAGE` - Agendar a mensagem com timestamp `post_at` [Obrigatório]130131**Parâmetros principais**:132- `channel`: ID de canal resolvido133- `post_at`: Timestamp Unix para entrega (até 120 dias adiantado)134- `text` / `blocks`: Conteúdo da mensagem135136**Armadilhas**:137- Agendamento é limitado a 120 dias adiantado138- `post_at` deve ser um timestamp Unix, não ISO 8601139140## Padrões Comuns141142### Resolução de ID143Sempre resolva nomes de exibição para IDs antes de operações:144- **Nome de canal -> ID de canal**: `SLACK_FIND_CHANNELS` com parâmetro `query`145- **Nome de usuário -> ID de usuário**: `SLACK_FIND_USERS` com `search_query` ou `email`146- **Canal de DM**: `SLACK_OPEN_DM` com IDs de usuários resolvidos147148### Paginação149A maioria dos endpoints de lista usa paginação baseada em cursor:150- Siga `response_metadata.next_cursor` até estar vazio151- Defina valores explícitos de `limit` (ex: 100-200) para paginação confiável152- Deduplicar resultados por `id` entre páginas153154### Formatação de Mensagem155- Prefira `markdown_text` sobre `text` ou `blocks` para mensagens formatadas156- Use formato `<@USER_ID>` para mencionar usuários (não @username)157- Use `\n` para quebras de linha em markdown_text158159## Armadilhas Conhecidas160161- **Resolução de canal**: `SLACK_FIND_CHANNELS` pode retornar resultados vazios se o canal for privado e o bot não foi convidado162- **Limites de taxa**: `SLACK_LIST_ALL_USERS` e outros endpoints de lista podem atingir HTTP 429; honre o cabeçalho Retry-After163- **Respostas aninhadas**: Resultados podem estar aninhados sob `response.data.results[0].response.data` em execuções encapsuladas164- **Thread vs canal**: `SLACK_FETCH_CONVERSATION_HISTORY` retorna apenas timeline principal; use `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` para respostas de thread165- **Edição de mensagem**: Requer tanto `channel` quanto `ts` da mensagem original; persista estes da resposta SEND_MESSAGE166- **Atrasos de busca**: Mensagens postadas recentemente podem não aparecer nos resultados de busca imediatamente167- **Limitações de escopo**: Escopos OAuth ausentes podem causar erros 403; verifique com `SLACK_GET_APP_PERMISSION_SCOPES`168169## Referência Rápida170171| Tarefa | Tool Slug | Parâmetros Principais |172|--------|-----------|----------------------|173| Encontrar canais | `SLACK_FIND_CHANNELS` | `query` |174| Listar todos os canais | `SLACK_LIST_ALL_CHANNELS` | `limit`, `cursor`, `types` |175| Enviar mensagem | `SLACK_SEND_MESSAGE` | `channel`, `markdown_text` |176| Editar mensagem | `SLACK_UPDATES_A_SLACK_MESSAGE` | `channel`, `ts`, `markdown_text` |177| Buscar mensagens | `SLACK_SEARCH_MESSAGES` | `query`, `count`, `sort` |178| Obter thread | `SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION` | `channel`, `ts` |179| Adicionar reação | `SLACK_ADD_REACTION_TO_AN_ITEM` | `channel`, `name`, `timestamp` |180| Encontrar usuários | `SLACK_FIND_USERS` | `search_query` ou `email` |181| Listar usuários | `SLACK_LIST_ALL_USERS` | `limit`, `cursor` |182| Abrir DM | `SLACK_OPEN_DM` | IDs de usuários |183| Agendar mensagem | `SLACK_SCHEDULE_MESSAGE` | `channel`, `post_at`, `text` |184| Obter informações do canal | `SLACK_RETRIEVE_CONVERSATION_INFORMATION` | ID de canal |185| Histórico do canal | `SLACK_FETCH_CONVERSATION_HISTORY` | `channel`, `oldest`, `latest` |186| Informações do workspace | `SLACK_FETCH_TEAM_INFO` | (nenhum) |187188## Quando Usar189Esta skill é aplicável para executar o workflow ou ações descritas na visão geral.