---
asIndexPage: true
---
# Slack
import ToolInfo from "@/app/_components/tool-info";
import Badges from "@/app/_components/badges";
import TabbedCodeBlock from "@/app/_components/tabbed-code-block";
import TableOfContents from "@/app/_components/table-of-contents";
import ToolFooter from "@/app/_components/tool-footer";
import { Callout } from "nextra/components";
The Slack MCP Server provides a comprehensive set of tools for interacting with the Slack platform, enabling users and AI applications to efficiently manage conversations and user information. With this MCP Sever, you can:
- Retrieve detailed information about users, including their IDs, usernames, and emails.
- List all users in your Slack team and get users in specific conversations.
- Send messages to channels, direct messages, or multi-person conversations.
- Access messages and metadata from various conversations, including channels and direct messages.
- Manage and list conversations, including public and private channels.
This MCP Sever streamlines communication and enhances collaboration within Slack.
## Available Tools
If you need to perform an action that's not listed here, you can [get in touch
with us](mailto:contact@arcade.dev) to request a new tool, or [create your own
tools](/guides/create-tools/tool-basics/build-mcp-server).
## Slack.WhoAmI
Get comprehensive user profile information.
**Parameters**
This tool takes no parameters.
## Slack.GetUsersInfo
Get the information of one or more users in Slack by ID, username, and/or email.
**Parameters**
- **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
## Slack.ListUsers
List all users in the authenticated user's Slack team.
**Parameters**
- **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.
## Slack.SendMessage
Send a message to a Channel, Direct Message (IM/DM), or Multi-Person (MPIM) conversation.
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 improve performance, prefer providing a conversation_id over a channel_name, when available. When referencing users, prefer providing user_ids and/or emails, when possible.
**Parameters**
- **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.
## Slack.GetUsersInConversation
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**
- **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.
## Slack.GetMessages
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 improve performance, prefer providing a conversation_id over a channel_name, when available. When referencing users, prefer providing user_ids and/or emails, when possible.
**Parameters**
- **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 in the format 'DD:HH:MM'
- **latest_relative** (`string`, optional) The latest message to include in the results, specified as a time offset from the current time in the format 'DD:HH:MM'
- **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'
- **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'
- **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.
**Notes about the date/time filtering parameters:**
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 (e.g. 3 days ago, 1 hour ago, etc.), use
'oldest_relative' and/or 'latest_relative'. 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
## Slack.GetConversationMetadata
Get metadata of a Channel, a Direct Message (IM / DM) or a Multi-Person (MPIM) conversation.
Provide exactly one of:
- conversation_id; or
- channel_name; or
- any combination of user_ids, usernames, and/or emails.
To improve performance, prefer providing a conversation_id over a channel_name, when available. When referencing users, prefer providing user_ids and/or emails, when possible.
**Parameters**
- **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.
## Slack.ListConversations
List metadata for Slack conversations (channels, DMs, MPIMs) the user is a member of.
**Parameters**
- **conversation_types** (`Enum` [ConversationType](/resources/integrations/social-communication/slack/reference#ConversationType), optional) Optionally filter by the type(s) of conversations. Defaults to None (all types).
- **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.
## Slack.GetUserInfoById
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetUsersInfo](#slackgetusersinfo) instead.
Get the information of a user in Slack.
**Parameters**
- **user_id** (`string`, required) The ID of the user to get
## Slack.SendDmToUser
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.SendMessage](#slacksendmessage) instead.
Send a direct message to a user in Slack.
**Parameters**
- **user_name** (`string`, required) The Slack username of the person you want to message. Slack usernames are ALWAYS lowercase.
- **message** (`string`, required) The message you want to send
## Slack.SendMessageToChannel
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.SendMessage](#slacksendmessage) instead.
Send a message to a channel in Slack.
**Parameters**
- **channel_name** (`string`, required) The Slack channel name where you want to send the message.
- **message** (`string`, required) The message you want to send
## Slack.GetMembersInConversationById
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetUsersInConversation](#slackgetusersinconversation)
instead.
Get the members of a conversation in Slack by the conversation's ID.
**Parameters**
- **conversation_id** (`string`, required) The ID of the conversation to get members for
- **limit** (`integer`, optional) The maximum number of members to return.
- **next_cursor** (`string`, optional) The cursor to use for pagination.
## Slack.GetMembersInChannelByName
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetUsersInConversation](#slackgetusersinconversation)
instead.
Get the members of a conversation in Slack by the conversation's name.
**Parameters**
- **channel_name** (`string`, required) The name of the channel to get members for
- **limit** (`integer`, optional) The maximum number of members to return.
- **next_cursor** (`string`, optional) The cursor to use for pagination.
## Slack.GetMessagesInChannelByName
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetMessages](#slackgetmessages) instead.
Get the messages in a channel by the channel's name.
**Parameters**
- **channel_name** (`string`, required) The name of the channel
- **oldest_relative** (`string`, optional) The oldest message to include in the results, specified as a time offset from the current time in the format 'DD:HH:MM'
- **latest_relative** (`string`, optional) The latest message to include in the results, specified as a time offset from the current time in the format 'DD:HH:MM'
- **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'
- **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'
- **limit** (`integer`, optional) The maximum number of messages to return.
- **next_cursor** (`string`, optional) The cursor to use for pagination.
## Slack.GetMessagesInConversationById
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetMessages](#slackgetmessages) instead.
Get the messages in a conversation by the conversation's ID.
**Parameters**
- **conversation_id** (`string`, required) The ID of the conversation to get history for
- **oldest_relative** (`string`, optional) The oldest message to include in the results, specified as a time offset from the current time in the format 'DD:HH:MM'
- **latest_relative** (`string`, optional) The latest message to include in the results, specified as a time offset from the current time in the format 'DD:HH:MM'
- **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'
- **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'
- **limit** (`integer`, optional) The maximum number of messages to return.
- **next_cursor** (`string`, optional) The cursor to use for pagination.
## Slack.GetMessagesInDirectMessageConversationByUsername
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetMessages](#slackgetmessages) instead.
Get the messages in a direct conversation by the user's name.
**Parameters**
- **username** (`string`, required) The username of the user 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 in the format 'DD:HH:MM'
- **latest_relative** (`string`, optional) The latest message to include in the results, specified as a time offset from the current time in the format 'DD:HH:MM'
- **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'
- **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'
- **limit** (`integer`, optional) The maximum number of messages to return.
- **next_cursor** (`string`, optional) The cursor to use for pagination.
## Slack.GetMessagesInMultiPersonDmConversationByUsernames
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetMessages](#slackgetmessages) instead.
Get the messages in a multi-person direct message conversation by the usernames.
**Parameters**
- **usernames** (`array[string]`, required) The usernames of the users 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 in the format 'DD:HH:MM'
- **latest_relative** (`string`, optional) The latest message to include in the results, specified as a time offset from the current time in the format 'DD:HH:MM'
- **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'
- **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'
- **limit** (`integer`, optional) The maximum number of messages to return.
- **next_cursor** (`string`, optional) The cursor to use for pagination.
## Slack.ListConversationsMetadata
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.ListConversations](#slacklistconversations) instead.
List Slack conversations (channels, DMs, MPIMs) the user is a member of.
**Parameters**
- **conversation_types** (`Enum` [ConversationType](/resources/integrations/social-communication/slack/reference#ConversationType), optional) Optionally filter by the type(s) of conversations. Defaults to None (all types).
- **limit** (`integer`, optional) The maximum number of conversations to list.
- **next_cursor** (`string`, optional) The cursor to use for pagination.
## Slack.ListPublicChannelsMetadata
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.ListConversations](#slacklistconversations) instead.
List metadata for public channels in Slack that the user is a member of.
**Parameters**
- **limit** (`integer`, optional) The maximum number of channels to list.
## Slack.ListPrivateChannelsMetadata
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.ListConversations](#slacklistconversations) instead.
List metadata for private channels in Slack that the user is a member of.
**Parameters**
- **limit** (`integer`, optional) The maximum number of channels to list.
## Slack.ListGroupDirectMessageConversationsMetadata
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.ListConversations](#slacklistconversations) instead.
List metadata for group direct message conversations that the user is a member of.
**Parameters**
- **limit** (`integer`, optional) The maximum number of conversations to list.
## Slack.ListDirectMessageConversationsMetadata
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.ListConversations](#slacklistconversations) instead.
List metadata for direct message conversations in Slack that the user is a member of.
**Parameters**
- **limit** (`integer`, optional) The maximum number of conversations to list.
## Slack.GetConversationMetadataById
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetConversationMetadata](#slackgetconversationmetadata)
instead.
Get the metadata of a conversation in Slack searching by its ID.
**Parameters**
- **conversation_id** (`string`, required) The ID of the conversation to get metadata for
## Slack.GetChannelMetadataByName
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetConversationMetadata](#slackgetconversationmetadata)
instead.
Get the metadata of a channel in Slack searching by its name.
**Parameters**
- **channel_name** (`string`, required) The name of the channel to get metadata for
- **next_cursor** (`string`, optional) The cursor to use for pagination, if continuing from a previous search.
## Slack.GetDirectMessageConversationMetadataByUsername
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetConversationMetadata](#slackgetconversationmetadata)
instead.
Get the metadata of a direct message conversation in Slack by the username.
**Parameters**
- **username** (`string`, required) The username of the user/person to get messages with
- **next_cursor** (`string`, optional) The cursor to use for pagination, if continuing from a previous search.
## Slack.GetMultiPersonDmConversationMetadataByUsernames
This tool is marked for deprecation and will be removed in a future release.
Please use [Slack.GetConversationMetadata](#slackgetconversationmetadata)
instead.
Get the metadata of a multi-person direct message conversation in Slack by the usernames.
**Parameters**
- **usernames** (`array[string]`, required) The usernames of the users/people to get messages with
- **next_cursor** (`string`, optional) The cursor to use for pagination, if continuing from a previous search.
## Auth
The Arcade Slack MCP Sever uses the [Slack auth provider](/references/auth-providers/slack) to connect to users' Slack accounts. Please refer to the [Slack auth provider](/references/auth-providers/slack) documentation to learn how to configure auth.