Slack
Arcade.dev LLM tools for Slack
The Slack toolkit connects LLMs to Slack via Arcade, enabling agents to read, write, and manage Slack conversations, threads, channels, and users on behalf of an authenticated user.
Capabilities
- Reading conversations & messages: Fetch metadata for channels, DMs, and MPIMs by ID, name, or participant identifiers; retrieve paginated messages with flexible absolute (
oldest_datetime/latest_datetime) or relative (DD:HH:MMoffsets) time filters; read full thread reply chains with the same filtering options. - User lookup & identity: Resolve users by ID, username, or email in a single batched call; list all team members; retrieve the authenticated user's own profile and Slack metadata.
- Channel membership: List all conversations the authenticated user belongs to; get the member list for any channel or group DM; invite up to 100 users at once to public channels, private channels, or MPIMs.
- Sending messages: Post top-level messages or threaded replies to any channel, DM, or MPIM, identified by name, ID, or participant list; optionally broadcast thread replies to the parent channel.
OAuth
Authentication uses OAuth 2.0 with Slack as the provider. See the Arcade Slack auth provider docs for setup details, required scopes, and configuration steps.
Available tools(10)
| Tool name | Description | Secrets | |
|---|---|---|---|
Get metadata of a Channel, a Direct Message (IM / DM) or a Multi-Person (MPIM) conversation.
Use this tool to retrieve metadata about a conversation with a conversation_id, a channel name,
or by the user_id(s), username(s), and/or email(s) of the user(s) in the conversation.
This tool does not return the messages in a conversation. To get the messages, use the
'Slack.GetMessages' tool instead.
Provide exactly one of:
- conversation_id; or
- channel_name; or
- any combination of user_ids, usernames, and/or emails. | |||
Get messages in a Slack Channel, DM (direct message) or MPIM (multi-person) conversation.
Provide exactly one of:
- conversation_id; or
- channel_name; or
- any combination of user_ids, usernames, and/or emails.
To filter messages by an absolute datetime, use 'oldest_datetime' and/or 'latest_datetime'. If
only 'oldest_datetime' is provided, it will return messages from the oldest_datetime to the
current time. If only 'latest_datetime' is provided, it will return messages since the
beginning of the conversation to the latest_datetime.
To filter messages by a relative datetime, use 'oldest_relative' and/or 'latest_relative'
with numeric `DD:HH:MM` offsets only. Convert relative phrases to `DD:HH:MM` before calling
this tool. If only 'oldest_relative' is provided, it will return messages from the
oldest_relative to the current time. If only 'latest_relative' is provided, it will return
messages from the current time to the latest_relative.
Do not provide both 'oldest_datetime' and 'oldest_relative' or both 'latest_datetime' and
'latest_relative'.
Leave all arguments with the default None to get messages without date/time filtering | |||
Get messages in a Slack thread.
A thread is a collection of messages grouped together as replies to a parent message.
This tool retrieves all messages in a specific thread, identified by the parent message's
timestamp (thread_ts).
Provide exactly one of:
- conversation_id; or
- channel_name; or
- any combination of user_ids, usernames, and/or emails.
To filter messages by an absolute datetime, use 'oldest_datetime' and/or 'latest_datetime'. If
only 'oldest_datetime' is provided, it will return messages from the oldest_datetime to the
current time. If only 'latest_datetime' is provided, it will return messages since the
beginning of the thread to the latest_datetime.
To filter messages by a relative datetime, use 'oldest_relative' and/or 'latest_relative'
with numeric `DD:HH:MM` offsets only. Convert relative phrases to `DD:HH:MM` before calling
this tool. If only 'oldest_relative' is provided, it will return messages from the
oldest_relative to the current time. If only 'latest_relative' is provided, it will return
messages from the current time to the latest_relative.
Do not provide both 'oldest_datetime' and 'oldest_relative' or both 'latest_datetime' and
'latest_relative'.
Leave all datetime arguments with the default None to get all thread messages without
date/time filtering. | |||
Get the users in a Slack conversation (Channel, DM/IM, or MPIM) by its ID or by channel name.
Provide exactly one of conversation_id or channel_name. Prefer providing a conversation_id,
when available, since the performance is better. | |||
Get the information of one or more users in Slack by ID, username, and/or email.
Provide any combination of user_ids, usernames, and/or emails. If you need to retrieve
data about multiple users, DO NOT CALL THE TOOL MULTIPLE TIMES. Instead, call it once
with all the user_ids, usernames, and/or emails. IF YOU CALL THIS TOOL MULTIPLE TIMES
UNNECESSARILY, YOU WILL RELEASE MORE CO2 IN THE ATMOSPHERE AND CONTRIBUTE TO GLOBAL WARMING.
If you need to get metadata or messages of a conversation, use the
`Slack.GetConversationMetadata` or `Slack.GetMessages` tool instead. These
tools accept user_ids, usernames, and/or emails. Do not retrieve users' info first,
as it is inefficient, releases more CO2 in the atmosphere, and contributes to climate change. | |||
Invite users to a Slack channel or MPIM (multi-person direct message).
This tool invites specified users to join a Slack conversation. It works with:
- Public channels
- Private channels
- MPIMs (multi-person direct messages / group DMs)
You can specify users by their user IDs, usernames, or email addresses.
Provide exactly one of channel_id or channel_name, and at least one of user_ids, usernames,
or emails.
The tool will resolve usernames and emails to user IDs before inviting them.
Up to 100 users may be invited at once. | |||
List metadata for Slack conversations (channels, DMs, MPIMs) the user is a member of.
This tool does not return the messages in a conversation. To get the messages, use the
'Slack.GetMessages' tool instead. Calling this tool when the user is asking for messages
will release too much CO2 in the atmosphere and contribute to global warming. | |||
List all users in the authenticated user's Slack team.
If you need to get metadata or messages of a conversation, use the
`Slack.GetConversationMetadata` tool or `Slack.GetMessages` tool instead. These
tools accept a user_id, username, and/or email. Do not use this tool to first retrieve user(s),
as it is inefficient and releases more CO2 in the atmosphere, contributing to climate change. | |||
Send a message to a Channel, Direct Message (IM/DM), or Multi-Person (MPIM) conversation.
Can send top-level messages or reply to an existing thread.
Provide exactly one of:
- channel_name; or
- conversation_id; or
- any combination of user_ids, usernames, and/or emails.
In case multiple user_ids, usernames, and/or emails are provided, the tool will open a
multi-person conversation with the specified people and send the message to it.
To reply to a thread, also provide thread_ts (the 'ts' field of the parent message).
Optionally set reply_broadcast to true to also post the reply to the main conversation. | |||
Get comprehensive user profile and Slack information.
This tool provides detailed information about the authenticated user including
their name, email, profile picture, and other important profile details from
Slack services. |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
Slack.GetConversationMetadata
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get metadata of a Channel, a Direct Message (IM / DM) or a Multi-Person (MPIM) conversation. Use this tool to retrieve metadata about a conversation with a conversation_id, a channel name, or by the user_id(s), username(s), and/or email(s) of the user(s) in the conversation. This tool does not return the messages in a conversation. To get the messages, use the 'Slack.GetMessages' tool instead. Provide exactly one of: - conversation_id; or - channel_name; or - any combination of user_ids, usernames, and/or emails.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
conversation_id | string | Optional | The ID of the conversation to get metadata for |
channel_name | string | Optional | The name of the channel to get metadata for. Prefer providing a conversation_id, when available, since the performance is better. |
usernames | array<string> | Optional | The usernames of the users to get the conversation metadata. Prefer providing user_ids and/or emails, when available, since the performance is better. |
emails | array<string> | Optional | The emails of the users to get the conversation metadata. |
user_ids | array<string> | Optional | The IDs of the users to get the conversation metadata. |
Requirements
Output
json— The conversation metadata.Slack.GetMessages
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get messages in a Slack Channel, DM (direct message) or MPIM (multi-person) conversation. Provide exactly one of: - conversation_id; or - channel_name; or - any combination of user_ids, usernames, and/or emails. To filter messages by an absolute datetime, use 'oldest_datetime' and/or 'latest_datetime'. If only 'oldest_datetime' is provided, it will return messages from the oldest_datetime to the current time. If only 'latest_datetime' is provided, it will return messages since the beginning of the conversation to the latest_datetime. To filter messages by a relative datetime, use 'oldest_relative' and/or 'latest_relative' with numeric `DD:HH:MM` offsets only. Convert relative phrases to `DD:HH:MM` before calling this tool. If only 'oldest_relative' is provided, it will return messages from the oldest_relative to the current time. If only 'latest_relative' is provided, it will return messages from the current time to the latest_relative. Do not provide both 'oldest_datetime' and 'oldest_relative' or both 'latest_datetime' and 'latest_relative'. Leave all arguments with the default None to get messages without date/time filtering
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
conversation_id | string | Optional | The ID of the conversation to get messages from. Provide exactly one of conversation_id OR any combination of user_ids, usernames, and/or emails. |
channel_name | string | Optional | The name of the channel to get messages from. Prefer providing a conversation_id, when available, since the performance is better. |
user_ids | array<string> | Optional | The IDs of the users in the conversation to get messages from. |
usernames | array<string> | Optional | The usernames of the users in the conversation to get messages from. Prefer providinguser_ids and/or emails, when available, since the performance is better. |
emails | array<string> | Optional | The emails of the users in the conversation to get messages from. |
oldest_relative | string | Optional | The oldest message to include in the results, specified as a time offset from the current time. Use only the numeric 'DD:HH:MM' format; convert relative phrases to that format before calling this tool. |
latest_relative | string | Optional | The latest message to include in the results, specified as a time offset from the current time. Use only the numeric 'DD:HH:MM' format; convert relative phrases to that format before calling this tool. |
oldest_datetime | string | Optional | The oldest message to include in the results, specified as a datetime object in the format 'YYYY-MM-DD HH:MM:SS' or ISO 8601. |
latest_datetime | string | Optional | The latest message to include in the results, specified as a datetime object in the format 'YYYY-MM-DD HH:MM:SS' or ISO 8601. |
limit | integer | Optional | The maximum number of messages to return. Defaults to 20. Maximum is 100. |
next_cursor | string | Optional | The cursor to use for pagination. |
Requirements
Output
json— The messages in a Slack Channel, DM (direct message) or MPIM (multi-person) conversation.Slack.GetThreadMessages
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get messages in a Slack thread. A thread is a collection of messages grouped together as replies to a parent message. This tool retrieves all messages in a specific thread, identified by the parent message's timestamp (thread_ts). Provide exactly one of: - conversation_id; or - channel_name; or - any combination of user_ids, usernames, and/or emails. To filter messages by an absolute datetime, use 'oldest_datetime' and/or 'latest_datetime'. If only 'oldest_datetime' is provided, it will return messages from the oldest_datetime to the current time. If only 'latest_datetime' is provided, it will return messages since the beginning of the thread to the latest_datetime. To filter messages by a relative datetime, use 'oldest_relative' and/or 'latest_relative' with numeric `DD:HH:MM` offsets only. Convert relative phrases to `DD:HH:MM` before calling this tool. If only 'oldest_relative' is provided, it will return messages from the oldest_relative to the current time. If only 'latest_relative' is provided, it will return messages from the current time to the latest_relative. Do not provide both 'oldest_datetime' and 'oldest_relative' or both 'latest_datetime' and 'latest_relative'. Leave all datetime arguments with the default None to get all thread messages without date/time filtering.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
thread_ts | string | Required | The timestamp of the parent message that starts the thread. This is the 'ts' field from the parent message. |
conversation_id | string | Optional | The ID of the conversation containing the thread. Provide exactly one of conversation_id OR channel_name OR any combination of user_ids, usernames, and/or emails. |
channel_name | string | Optional | The name of the channel containing the thread. Prefer providing a conversation_id, when available, since the performance is better. |
user_ids | array<string> | Optional | The IDs of the users in the conversation containing the thread. |
usernames | array<string> | Optional | The usernames of the users in the conversation containing the thread. Prefer providing user_ids and/or emails, when available, since the performance is better. |
emails | array<string> | Optional | The emails of the users in the conversation containing the thread. |
oldest_relative | string | Optional | The oldest message to include in the results, specified as a time offset from the current time. Use only the numeric 'DD:HH:MM' format; convert relative phrases to that format before calling this tool. |
latest_relative | string | Optional | The latest message to include in the results, specified as a time offset from the current time. Use only the numeric 'DD:HH:MM' format; convert relative phrases to that format before calling this tool. |
oldest_datetime | string | Optional | The oldest message to include in the results, specified as a datetime object in the format 'YYYY-MM-DD HH:MM:SS' or ISO 8601. |
latest_datetime | string | Optional | The latest message to include in the results, specified as a datetime object in the format 'YYYY-MM-DD HH:MM:SS' or ISO 8601. |
limit | integer | Optional | The maximum number of messages to return. Defaults to 20. Maximum is 100. |
next_cursor | string | Optional | The cursor to use for pagination. |
Requirements
Output
json— The messages in a Slack thread within a Channel, DM (direct message) or MPIM (multi-person) conversation.Slack.GetUsersInConversation
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get the users in a Slack conversation (Channel, DM/IM, or MPIM) by its ID or by channel name. Provide exactly one of conversation_id or channel_name. Prefer providing a conversation_id, when available, since the performance is better.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
conversation_id | string | Optional | The ID of the conversation to get users in. |
channel_name | string | Optional | The name of the channel to get users in. Prefer providing a conversation_id, when available, since the performance is better. |
limit | integer | Optional | The maximum number of users to return. Defaults to 200. Maximum is 500. |
next_cursor | string | Optional | The cursor to use for pagination. |
Requirements
Output
json— Information about each user in the conversationSlack.GetUsersInfo
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get the information of one or more users in Slack by ID, username, and/or email. Provide any combination of user_ids, usernames, and/or emails. If you need to retrieve data about multiple users, DO NOT CALL THE TOOL MULTIPLE TIMES. Instead, call it once with all the user_ids, usernames, and/or emails. IF YOU CALL THIS TOOL MULTIPLE TIMES UNNECESSARILY, YOU WILL RELEASE MORE CO2 IN THE ATMOSPHERE AND CONTRIBUTE TO GLOBAL WARMING. If you need to get metadata or messages of a conversation, use the `Slack.GetConversationMetadata` or `Slack.GetMessages` tool instead. These tools accept user_ids, usernames, and/or emails. Do not retrieve users' info first, as it is inefficient, releases more CO2 in the atmosphere, and contributes to climate change.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
user_ids | array<string> | Optional | The IDs of the users to get |
usernames | array<string> | Optional | The usernames of the users to get. Prefer retrieving by user_ids and/or emails, when available, since the performance is better. |
emails | array<string> | Optional | The emails of the users to get |
Requirements
Output
json— The users' informationSlack.InviteUsersToChannel
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Invite users to a Slack channel or MPIM (multi-person direct message). This tool invites specified users to join a Slack conversation. It works with: - Public channels - Private channels - MPIMs (multi-person direct messages / group DMs) You can specify users by their user IDs, usernames, or email addresses. Provide exactly one of channel_id or channel_name, and at least one of user_ids, usernames, or emails. The tool will resolve usernames and emails to user IDs before inviting them. Up to 100 users may be invited at once.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
channel_id | string | Optional | The ID of the Slack channel or MPIM (multi-person direct message) to invite users to. Provide exactly one of channel_id OR channel_name. |
channel_name | string | Optional | The name of the channel to invite users to. Prefer providing a channel_id when available for better performance. Note: MPIMs don't have names, so use channel_id for MPIMs. |
user_ids | array<string> | Optional | The Slack user IDs of the people to invite. Up to 100 users may be listed. Provide at least one of user_ids, usernames, or emails. |
usernames | array<string> | Optional | The Slack usernames of the people to invite. Prefer providing user_ids and/or emails when available for better performance. |
emails | array<string> | Optional | The email addresses of the people to invite. |
Requirements
Output
json— The response from inviting users to the conversationSlack.ListConversations
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List metadata for Slack conversations (channels, DMs, MPIMs) the user is a member of. This tool does not return the messages in a conversation. To get the messages, use the 'Slack.GetMessages' tool instead. Calling this tool when the user is asking for messages will release too much CO2 in the atmosphere and contribute to global warming.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
conversation_types | array<string> | Optional | Optionally filter by the type(s) of conversations. Defaults to None (all types).public_channelprivate_channelmulti_person_direct_messagedirect_message |
limit | integer | Optional | The maximum number of conversations to list. Defaults to 200. Maximum is 500. |
next_cursor | string | Optional | The cursor to use for pagination. |
Requirements
Output
json— The list of conversations found with metadataSlack.ListUsers
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List all users in the authenticated user's Slack team. If you need to get metadata or messages of a conversation, use the `Slack.GetConversationMetadata` tool or `Slack.GetMessages` tool instead. These tools accept a user_id, username, and/or email. Do not use this tool to first retrieve user(s), as it is inefficient and releases more CO2 in the atmosphere, contributing to climate change.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
exclude_bots | boolean | Optional | Whether to exclude bots from the results. Defaults to True. |
limit | integer | Optional | The maximum number of users to return. Defaults to 200. Maximum is 500. |
next_cursor | string | Optional | The next cursor token to use for pagination. |
Requirements
Output
json— The users' infoSlack.SendMessage
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Send a message to a Channel, Direct Message (IM/DM), or Multi-Person (MPIM) conversation. Can send top-level messages or reply to an existing thread. Provide exactly one of: - channel_name; or - conversation_id; or - any combination of user_ids, usernames, and/or emails. In case multiple user_ids, usernames, and/or emails are provided, the tool will open a multi-person conversation with the specified people and send the message to it. To reply to a thread, also provide thread_ts (the 'ts' field of the parent message). Optionally set reply_broadcast to true to also post the reply to the main conversation.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
message | string | Required | The content of the message to send. |
channel_name | string | Optional | The channel name to send the message to. Prefer providing a conversation_id, when available, since the performance is better. |
conversation_id | string | Optional | The conversation ID to send the message to. |
user_ids | array<string> | Optional | The Slack user IDs of the people to message. |
emails | array<string> | Optional | The emails of the people to message. |
usernames | array<string> | Optional | The Slack usernames of the people to message. Prefer providing user_ids and/or emails, when available, since the performance is better. |
thread_ts | string | Optional | The timestamp of the parent message to reply to in a thread. Use the 'ts' field from the parent message (the first message in the thread), not from a reply. If omitted, the message is sent as a new top-level message. Get this value from prior get_messages or get_thread_messages results. |
reply_broadcast | boolean | Optional | When replying to a thread (thread_ts is set), set to true to also post the reply to the main conversation. Only valid when thread_ts is provided. Defaults to False |
Requirements
Output
json— The response from the Slack APISlack.WhoAmI
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get comprehensive user profile and Slack information. This tool provides detailed information about the authenticated user including their name, email, profile picture, and other important profile details from Slack services.
Parameters
No parameters required.
Requirements
Output
json— Get comprehensive user profile and Slack information.