Slack MCP server for Claude, ChatGPT, Claude Code and Cursor
Access/manage conversations, messages, users, files, and workspace configuration in Slack.
Examples of what your AI apps can do in Slack. You'll see the exact list of tools after you connect it.
add_reaction_to_an_item
ToolThis action adds an emoji reaction to an existing message in Slack. Specify the channel ID, the message timestamp, and the emoji name (like 'thumbsup' or 'tada') to react to a message. You can also use skin tone variants for supported emojis.
create_a_reminder
ToolCreates a slack reminder with specified text and time; time accepts unix timestamps, seconds from now, or natural language (e.g., 'in 15 minutes', 'every thursday at 2pm').
fetch_conversation_history
ToolFetches the conversation history from a specified channel, allowing users to filter messages based on a date range and pagination. This action returns messages from the main channel timeline only - it does NOT return threaded replies. To fetch threaded replies, use SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION instead.
find_channels
ToolThis action finds channels in a Slack workspace based on various criteria such as name, topic, or purpose. It searches across channel names, topics, and purposes with partial matching. Note: The bot can only see public channels (with channels:read scope) and private channels it has been invited to (with groups:read scope). If you expect to find a channel but get empty results, the channel may be private and not visible to the bot.
find_users
ToolThis action allows you to search for users in a Slack workspace using various criteria such as email or name. It can perform efficient searches and return detailed user information based on the query parameters provided.
list_all_channels
ToolThis action retrieves a list of all channels (public, private, group DMs, or direct messages) in a Slack workspace that the authenticated user has access to. You can filter by channel type, exclude archived channels, search by channel name, and paginate through large result sets.
list_all_users
ToolThis action retrieves a full list of users from a Slack workspace. It provides detailed profile information and allows pagination for large user bases.
remove_reaction_from_item
ToolThis action removes a specified emoji reaction from a message, a file, or a file comment in Slack. It ensures that the reaction is deleted, allowing for updates to user interactions on the platform.
schedule_message
ToolThis action schedules a message to be sent to a Slack channel, DM, or private group at a future time. Write your message in markdown for rich formatting, specify when it should be posted using a Unix timestamp, and optionally reply in a thread. Messages can be scheduled up to 120 days in advance.
search_messages
ToolThis action allows you to search for messages across a Slack workspace. You can filter results using various criteria and retrieve them in a paginated format.
send_message
ToolThis action sends a message to a Slack channel, direct message, or private group. You can write your message in markdown for rich formatting including headers, bold, italic, code blocks, and links. Specify the channel by name or ID.
updates_a_slack_message
ToolThis action updates a message in a Slack channel. You can modify the message's text, attachments, or layout blocks based on the provided parameters.
add_an_emoji_alias_in_slack
ToolThis action adds a new alias for an existing custom emoji in Slack. It allows users to create easy-to-remember names for emojis used within the organization.
add_a_remote_file_from_a_service
ToolThis action adds a reference to an external file from a service to Slack. It requires an external ID and URL, allowing Slack users to access and share the file with others.
add_a_star_to_an_item
ToolThis action allows users to add a star to various items on Slack, including channels, files, file comments, or specific messages. It requires the identification of the item type and optionally, a timestamp for messages.
add_call_participants
ToolThis action allows you to add users to an ongoing Slack call. You can specify multiple users by providing their Slack IDs and optionally external IDs.
add_emoji
ToolThis action allows you to add a custom emoji to a Slack workspace. You need to provide a unique name for the emoji and the URL of the image to be used as the emoji.
archive_a_public_or_private_channel
ToolThis action archives a specified public or private Slack channel, preventing any further messages from being sent in it. It converts the channel into a read-only state, helping maintain channel organization and control. Note that the primary 'general' channel cannot be archived by this action.
archive_a_slack_conversation
ToolSends a request to archive a specified Slack conversation, making it read-only and hidden. This action helps in managing inactive channels while retaining the conversation history.
close_dm_or_multi_person_dm
ToolThis action closes a specified Slack direct message or multi-person direct message channel. It allows users to remove the channel from their sidebar view without deleting any message history.
create_a_slack_user_group
ToolCreates a User Group in Slack, allowing for better organization of users within specific teams. This action provides properties such as a name, description, and channels for the group.
create_channel
ToolThis action creates a new Slack channel in the workspace. You can create either a public channel visible to all workspace members or a private channel that is invite-only. Specify the channel name and optionally target a specific workspace using the team ID.
create_channel_based_conversation
ToolThis action creates a new channel in Slack. The channel can be either public or private, and it can belong to an entire organization or a specific team.
customize_url_unfurl
ToolThis action customizes the URL previews in Slack messages. It allows specifying custom content for unfurling certain links or removing existing previews using a URL-encoded JSON format.
delete_a_comment_on_a_file
ToolThis action removes a specific comment from a file in Slack. It is important to note that this action cannot be undone once completed.
delete_a_file_by_id
ToolThis action allows the permanent deletion of a specific file from a Slack workspace by its unique file ID. Once executed, the file and all associated data, such as comments and shares, are irreversibly removed.
delete_a_public_or_private_channel
ToolThis action allows you to delete a specified public or private channel from Slack. All messages and files associated with the channel will also be permanently removed.
delete_a_scheduled_message_in_a_chat
ToolThis action allows you to delete a scheduled message in a chat. You need to specify the message ID and the channel where the message is scheduled.
delete_a_slack_reminder
ToolDeletes a specific Slack reminder identified by the provided reminder ID. This action permanently removes the reminder from the user's list.
deletes_a_message_from_a_chat
ToolThis action deletes a specified message from a Slack conversation. The message to be deleted is identified by its channel ID and timestamp, and the deletion is performed by the authenticated user or bot that posted the message.
delete_user_profile_photo
ToolThis action removes the specified user's Slack profile photo. If a custom photo is not set, it reverts to the default avatar. The operation cannot be undone.
disable_an_existing_slack_user_group
ToolDisables a Slack User Group identified by its unique ID. This action effectively archives the group without permanently deleting it, allowing for possible re-enablement in the future.
enable_a_specified_user_group
ToolThis action reactivates a previously disabled User Group in Slack. It allows the group to be mentioned and assigned permissions, without altering its other properties or creating new groups.
enable_public_sharing_of_a_file
ToolThis action enables public sharing of an existing Slack file. It generates a publicly accessible URL for the specified file.
end_a_call_with_duration_and_id
ToolThis action allows you to end a call on Slack. You can specify the duration of the call in seconds and provide the unique identifier for the call that you want to end.
end_snooze
ToolThis action immediately ends the user's snooze mode. The user will no longer be in do-not-disturb mode.
end_user_do_not_disturb_session
ToolThis action terminates the current Do Not Disturb (DND) session for the authenticated user in Slack. When invoked, it sets the user's availability status to available, provided that DND was previously active.
fetch_bot_user_information
ToolRetrieves detailed information about a specified Slack bot user. This includes the bot's display name, avatar images, and other related data.
fetch_item_reactions
ToolFetches user reactions for a specified item such as a Slack message, file, or file comment. It requires either a combination of channel and timestamp or alternatively a file ID or file comment ID to retrieve the reaction data.
fetch_message_thread_from_a_conversation
ToolThis action fetches the message thread for a specific parent message in a conversation. It retrieves replies and other related messages based on the given channel and timestamp. Important: The parent message includes reply_count and reply_users metadata. If the actual replies returned don't match this metadata, check if has_more=true (use pagination), or if there are timing/visibility issues with recently posted replies.
fetch_team_info
ToolFetches comprehensive metadata about the current slack team, or a specified team if the provided id is accessible.
fetch_workspace_settings_information
ToolFetches the settings for a specified Slack workspace. This action is primarily intended for administrators who need to view or audit configurations for better management of team settings.
find_user_by_email_address
ToolThis action looks up a Slack user by their email address and returns their complete profile information, including user ID, display name, real name, timezone, and profile details. Use this to find a specific person's Slack ID when you only have their email.
get_channel_conversation_preferences
ToolRetrieves the preferences for conversations in a specific Slack channel, including who can post messages and who can create or reply to threads. This action is primarily used in Slack Enterprise Grid environments.
get_reminder_information
ToolThis action retrieves detailed information about a specific Slack reminder. The reminder is identified using its unique ID, allowing users to access all associated details and statuses.
get_remote_file
ToolThis action retrieves details about a specific remote file uploaded to Slack using its unique identifier and file ID.
get_team_dnd_status
ToolRetrieves a user's current do not disturb status.
get_user_presence_info
ToolThis action retrieves the current real-time presence status of a Slack user. It can return 'active' or 'away' based on the user's current availability.
invite_users_to_a_slack_channel
ToolThis action invites one or more users to a Slack channel by their user IDs. Use it to add team members to public or private channels for collaboration.
invite_user_to_channel
ToolInvites users to a specified Slack channel by providing the channel ID and a list of user IDs. This action is restricted to enterprise grid workspaces and requires the authenticated user to be a member of the target channel.
invite_user_to_workspace
ToolThis action sends an invitation to a new user to join a Slack workspace via their email address. You can specify which channels they should be added to upon joining, include a custom welcome message, and configure whether they should be a regular member or a guest with restricted access.
join_an_existing_conversation
ToolJoins an existing slack conversation (public channel, private channel, or multi-person direct message) by its id, if the authenticated user has permission.
leave_a_conversation
ToolThis action removes the authenticated user from a Slack channel, private group, or DM conversation. Provide the channel ID to leave the conversation. Note that you cannot leave the general channel or leave as the last member of a private channel.
list_all_users_in_a_user_group
ToolThis action retrieves a list of all user IDs within a specified Slack user group. It allows for the inclusion of users from disabled groups if requested.
list_conversations
ToolRetrieves conversations accessible to a specified user (or the authenticated user if no user id is provided), respecting shared membership for non-public channels.
list_files_with_filters_in_slack
ToolThis action retrieves a list of files from a Slack workspace. Users can filter the results based on user ID, channel, creation timestamps, and file types.
list_reminders
ToolThis action retrieves all reminders for the authenticated user in Slack. It provides detailed information about each reminder, including its status and contents.
list_remote_files
ToolThis action retrieves a list of files from a specific channel in a team's remote file storage. It allows filtering by timestamp and pagination to manage large sets of data.
list_scheduled_messages
ToolThis action retrieves a list of scheduled messages either in a specific channel or across all channels in the workspace. The results can be filtered by time and are paginated for easier navigation.
lists_pinned_items_in_a_channel
ToolRetrieves all messages and files pinned to a specified channel; the caller must have access to this channel.
list_starred_items
ToolThis action retrieves a list of items that a user has starred. It provides pagination options to manage large sets of results.
list_team_custom_emojis
ToolThis action fetches all custom emojis available in the Slack workspace. It provides a list of image URLs or aliases associated with those custom emojis.
list_user_groups_for_team_with_options
ToolThis action retrieves a list of user groups within a specified Slack team. It allows customization of the request to include user IDs, user counts, and the status of user groups (active/disabled).
list_user_reactions
ToolLists all reactions added by a specific user to messages, files, or file comments in slack, useful for engagement analysis when the item content itself is not required.
list_workspace_users
ToolRetrieves a list of admin users from a specific Slack workspace. This action allows for paginated access to the user data, making it manageable for large workspaces.
manually_set_user_presence
ToolThis action manually sets your Slack presence status to either 'auto' (let Slack detect your activity) or 'away' (appear as away). The setting persists across connections but can be overridden by user activity or Slack's automatic away detection after inactivity.
mark_reminder_as_complete
ToolThis action marks a specified Slack reminder as complete. By providing the unique reminder ID, users can confirm that the reminder has been resolved.
open_dm
ToolOpens or resumes a slack direct message (dm) or multi-person direct message (mpim) by providing either user ids or an existing channel id.
pins_an_item_to_a_channel
ToolPins a message to a specified Slack channel. The user must provide the channel ID and the timestamp of the message to be pinned. If the timestamp is not provided, the most recent message in the channel will be pinned.
remove_a_remote_file
ToolThis action removes the reference to an external file in Slack. You must provide either the external ID or the Slack file ID to specify which file to remove from Slack without affecting the actual file.
remove_a_star_from_an_item
ToolRemoves a star from a previously starred Slack item. This action allows the user to unstar an item, including messages, files, and comments, using specific identifiers like file ID or timestamp.
remove_a_user_from_a_conversation
ToolThis action removes a specified user from a Slack conversation, given that the caller has the necessary permissions. It ensures that the user is no longer part of the conversation specified by the channel ID.
remove_call_participants
ToolThis action allows you to remove specified users from an ongoing Slack call. You need to provide the call ID and the list of users to be removed.
rename_a_conversation
ToolRenames a Slack channel based on provided parameters. The action allows users to update the name of an existing conversation while adhering to naming conventions.
rename_an_emoji
ToolRenames an existing custom emoji in a Slack workspace, updating all its instances. This action allows users to change the name of an emoji to something new and unique within the workspace.
rename_a_slack_channel
ToolThis action allows you to rename a specified Slack channel. It requires the channel ID and the new name for the channel, ensuring that the name adheres to Slack's naming conventions.
retrieve_a_user_s_identity_details
ToolThis action retrieves the authenticated user's identity details along with their associated team's information. It provides a way to access user IDs, names, and potentially email addresses depending on the OAuth scopes granted.
retrieve_call_information
ToolThis action retrieves detailed information about a specific Slack call. It uses the unique identifier of the call to fetch its current state and relevant details.
retrieve_conversation_information
ToolRetrieves metadata for a slack conversation by id (e.g., name, purpose, creation date, with options for member count/locale), excluding message content; requires a valid channel id.
retrieve_conversation_members_list
ToolThis action retrieves a list of members from a specified Slack conversation. It supports public channels, private channels, direct messages, and multi-person direct messages.
retrieve_current_user_dnd_status
ToolThis action retrieves the current Do Not Disturb (DND) status for a specified Slack user. If no user ID is provided, it defaults to the authenticated user's DND status.
retrieve_detailed_information_about_a_file
ToolThis action retrieves detailed metadata about a specific file in Slack, including any associated comments. The action supports pagination for handling multiple comments efficiently.
retrieve_detailed_user_information
ToolRetrieves detailed information about a specific user in the system, including their profile and team associations. This action allows retrieving various attributes of the user based on their unique ID.
retrieve_message_permalink_url
ToolThis action retrieves a permalink URL that points to a specific message in a given Slack channel or conversation. It takes into account Slack's privacy settings to ensure the generated link is valid and accessible per the permissions of the user making the request.
retrieve_team_profile_details
ToolThis action retrieves the profile field definitions for a Slack team. It allows filtering based on visibility to expose certain fields as needed.
retrieve_user_profile_information
ToolRetrieves the profile information of a specified Slack user, defaulting to the authenticated user if no user ID is provided. This action allows you to include human-readable labels for custom profile fields if desired.
revoke_public_sharing_access_for_a_file
ToolRevokes public access to a specific Slack file. This action ensures that the file is no longer accessible via a public URL, helping to secure the file's content.
send_ephemeral_message
ToolThis action sends a temporary message to a specific user within a designated channel. It allows customization options such as user icon and message format.
set_a_conversation_s_purpose
ToolSets the purpose (a short description of its topic/goal, displayed in the header) for a slack conversation; the calling user must be a member.
set_dnd_duration
ToolThis action enables Do Not Disturb mode for the authenticated Slack user for a specified number of minutes. During this time, notifications will be paused and you will appear as unavailable to other users. Specify the duration in minutes to control how long DND stays active.
set_profile_photo
ToolThis action uploads a new profile photo for the user. It allows for optional cropping by specifying width and coordinates.
set_read_cursor_in_a_conversation
ToolMarks a specified message as read for the authenticated user in a given channel. This action updates the read cursor to the timestamp of the message.
set_slack_user_profile_information
ToolThis action updates a user's Slack profile. You can specify individual fields or provide a JSON object to update multiple fields at once.
set_the_topic_of_a_conversation
ToolThis action allows users to set or update the topic of a specified Slack conversation. It takes the conversation channel ID and the new topic text to make the update.
share_a_me_message_in_a_channel
ToolSends a 'me message' to a specified Slack channel. The message is displayed as an action performed by the user in the channel context, enhancing user interaction with real-time updates.
share_remote_file_in_channels
ToolThis action shares a specified remote file into designated Slack channels. It requires either a file ID or an external ID to locate the file and ensures that the intended channels for sharing are specified.
start_call
ToolThis action registers a new call in Slack, integrating with third-party call applications. It allows you to specify the call details, including participants, start time, and join links.
start_real_time_messaging_session
ToolInitiates a Slack RTM session by sending a request to establish a connection for event streaming. Configurable parameters control presence status delivery and subscription behavior.
unarchive_a_public_or_private_channel
ToolThis action unarchives a Slack channel, making it accessible again. It requires the unique ID of the channel to perform the operation.
unarchive_channel
ToolThis action unarchives a previously archived conversation making it active again, allowing participation in the conversation once more.
Free. No card needed.
How to connect Slack
- 1Create your free ContextGate account.
- 2Go to Connections → Add Connection, search for Slack and sign in to Slack.
- 3Add ContextGate to Claude, Cursor or ChatGPT (the Setup page shows you how), then ask it to use Slack.
What you get with Slack and ContextGate
- Your AI apps can use Slack Claude, Cursor, ChatGPT and other AI apps reach Slack through the one ContextGate connection you add to them.
- You choose which tools they can use Switch off any Slack tool you don't want used. It's hidden from your AI apps and refused if called.
- Every call is checked and recorded Your policies check each call (for example, personal data is hidden and secrets are blocked), and Activity keeps a record of it.
ContextGate sees only the tool calls that go through it, not your AI app's built-in tools or your chats.
Select a tool on the left to see its parameters
What you get with Slack and ContextGate
- Your AI apps can use Slack: Claude, Cursor, ChatGPT and other AI apps reach Slack through the one ContextGate connection you add to them.
- You choose which tools they can use: Switch off any Slack tool you don't want used. It's hidden from your AI apps and refused if called.
- Every call is checked and recorded: Your policies check each call (for example, personal data is hidden and secrets are blocked), and Activity keeps a record of it.
ContextGate sees only the tool calls that go through it, not your AI app's built-in tools or your chats.
Free. No card needed.
How to connect Slack
- Create your free ContextGate account.
- Go to Connections → Add Connection, search for Slack and sign in to Slack.
- Add ContextGate to Claude, Cursor or ChatGPT (the Setup page shows you how), then ask it to use Slack.