Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate Slack messaging, channel management, search, reactions, and threads via Rube MCP (Composio). Send messages, search conversations, manage channels/users, and react to messages programmatically.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 116% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 355% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 125% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 376% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 158% | 0% |
Automate Slack workspace operations including messaging, search, channel management, and reaction workflows through Composio's Slack toolkit.
Toolkit docs: composio.dev/toolkits/slack
RUBE_MANAGE_CONNECTIONS with toolkit slackRUBE_SEARCH_TOOLS first to get current tool schemasGet Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit slackWhen to use: User wants to post a message to a Slack channel or DM
Tool sequence:
SLACK_FIND_CHANNELS - Resolve channel name to channel ID Prerequisite]SLACK_LIST_ALL_CHANNELS - Fallback if FIND_CHANNELS returns empty/ambiguous results Fallback]SLACK_FIND_USERS - Resolve user for DMs or @mentions Optional]SLACK_OPEN_DM - Open/reuse a DM channel if messaging a user directly Optional]SLACK_SEND_MESSAGE - Post the message with resolved channel ID Required]SLACK_UPDATES_A_SLACK_MESSAGE - Edit the posted message if corrections needed Optional]Key parameters:
channel: Channel ID or name (without '#' prefix)markdown_text: Preferred field for formatted messages (supports headers, bold, italic, code blocks)text: Raw text fallback (deprecated in favor of markdown_text)thread_ts: Timestamp of parent message to reply in a threadblocks: Block Kit layout blocks (deprecated, use markdown_text)Pitfalls:
SLACK_FIND_CHANNELS requires query param; missing it errors with "Invalid request data provided"SLACK_SEND_MESSAGE requires valid channel plus one of markdown_text/text/blocks/attachmentsthread_ts is omittedresponse.data.channel and response.data.message.ts from SEND_MESSAGE for edit/thread operationsWhen to use: User wants to find specific messages across the workspace
Tool sequence:
SLACK_FIND_CHANNELS - Resolve channel for scoped search with in:#channel Optional]SLACK_FIND_USERS - Resolve user for author filter with from:@user Optional]SLACK_SEARCH_MESSAGES - Run keyword search across accessible conversations Required]SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION - Expand threads for relevant hits Required]Key parameters:
query: Search string supporting modifiers (in:#channel, from:@user, before:YYYY-MM-DD, after:YYYY-MM-DD, has:link, has:file)count: Results per page (max 100), or total with auto_paginate=truesort: 'score' (relevance) or 'timestamp' (chronological)sort_dir: 'asc' or 'desc'Pitfalls:
query is missing/emptyok=true can still mean no hits (response.data.messages.total=0)response.data.messages.matches (sometimes also response.data_preview.messages.matches)match.text may be empty/truncated; key info can appear in matches[].attachments[]response.data.has_more=true; paginate via response_metadata.next_cursorWhen to use: User wants to list channels, users, or workspace info
Tool sequence:
SLACK_FETCH_TEAM_INFO - Validate connectivity and get workspace identity Required]SLACK_LIST_ALL_CHANNELS - Enumerate public channels Required]SLACK_LIST_CONVERSATIONS - Include private channels and DMs Optional]SLACK_LIST_ALL_USERS - List workspace members Required]SLACK_RETRIEVE_CONVERSATION_INFORMATION - Get detailed channel metadata Optional]SLACK_LIST_USER_GROUPS_FOR_TEAM_WITH_OPTIONS - List user groups Optional]Key parameters:
cursor: Pagination cursor from response_metadata.next_cursorlimit: Results per page (default varies; set explicitly for large workspaces)types: Channel types filter ('public_channel', 'private_channel', 'im', 'mpim')Pitfalls:
response.data.team, not top-levelSLACK_LIST_ALL_CHANNELS returns public channels only; use SLACK_LIST_CONVERSATIONS for private/IM coverageSLACK_LIST_ALL_USERS can hit HTTP 429 rate limits; honor Retry-After headerresponse_metadata.next_cursor until empty; de-duplicate by idWhen to use: User wants to add reactions or manage threaded conversations
Tool sequence:
SLACK_SEARCH_MESSAGES or SLACK_FETCH_CONVERSATION_HISTORY - Find the target message Prerequisite]SLACK_ADD_REACTION_TO_AN_ITEM - Add an emoji reaction Required]SLACK_FETCH_ITEM_REACTIONS - List reactions on a message Optional]SLACK_REMOVE_REACTION_FROM_ITEM - Remove a reaction Optional]SLACK_SEND_MESSAGE - Reply in thread using thread_ts Optional]SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION - Read full thread Optional]Key parameters:
channel: Channel ID where the message livestimestamp / ts: Message timestamp (unique identifier like '1234567890.123456')name: Emoji name without colons (e.g., 'thumbsup', 'wave::skin-tone-3')thread_ts: Parent message timestamp for threaded repliesPitfalls:
SLACK_FETCH_CONVERSATION_HISTORY only returns main channel timeline, NOT threaded repliesSLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION with parent's thread_ts to get thread repliesWhen to use: User wants to schedule a message for future delivery
Tool sequence:
SLACK_FIND_CHANNELS - Resolve channel ID Prerequisite]SLACK_SCHEDULE_MESSAGE - Schedule the message with post_at timestamp Required]Key parameters:
channel: Resolved channel IDpost_at: Unix timestamp for delivery (up to 120 days in advance)text / blocks: Message contentPitfalls:
post_at must be a Unix timestamp, not ISO 8601Always resolve display names to IDs before operations:
SLACK_FIND_CHANNELS with query paramSLACK_FIND_USERS with search_query or emailSLACK_OPEN_DM with resolved user IDsMost list endpoints use cursor-based pagination:
response_metadata.next_cursor until emptylimit values (e.g., 100-200) for reliable pagingid across pagesmarkdown_text over text or blocks for formatted messages<@USER_ID> format to mention users (not @username)\n for line breaks in markdown_textSLACK_FIND_CHANNELS can return empty results if channel is private and bot hasn't been invitedSLACK_LIST_ALL_USERS and other list endpoints can hit HTTP 429; honor Retry-After headerresponse.data.results[0].response.data in wrapped executionsSLACK_FETCH_CONVERSATION_HISTORY returns main timeline only; use SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION for thread replieschannel and original message ts; persist these from SEND_MESSAGE responseSLACK_GET_APP_PERMISSION_SCOPES| Task | Tool Slug | Key Params | |------|-----------|------------| | Find channels | SLACK_FIND_CHANNELS | query | | List all channels | SLACK_LIST_ALL_CHANNELS | limit, cursor, types | | Send message | SLACK_SEND_MESSAGE | channel, markdown_text | | Edit message | SLACK_UPDATES_A_SLACK_MESSAGE | channel, ts, markdown_text | | Search messages | SLACK_SEARCH_MESSAGES | query, count, sort | | Get thread | SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION | channel, ts | | Add reaction | SLACK_ADD_REACTION_TO_AN_ITEM | channel, name, timestamp | | Find users | SLACK_FIND_USERS | search_query or email | | List users | SLACK_LIST_ALL_USERS | limit, cursor | | Open DM | SLACK_OPEN_DM | user IDs | | Schedule message | SLACK_SCHEDULE_MESSAGE | channel, post_at, text | | Get channel info | SLACK_RETRIEVE_CONVERSATION_INFORMATION | channel ID | | Channel history | SLACK_FETCH_CONVERSATION_HISTORY | channel, oldest, latest | | Workspace info | SLACK_FETCH_TEAM_INFO | (none) |
Powered by Composio
Other measured skills in the registry, with their headline benchmark lift.