# Slack — how to use (mcp.ai)

Slack via linguagem natural: envie e busque mensagens, gerencie canais, usuários e reações. Plataforma fornece a aplicação OAuth, você só clica em Conectar e autoriza seu workspace Slack. Vários workspaces podem ser conectados no mesmo MCP.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_slack?ms=1781044380000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `slack_activate_or_modify_do_not_disturb_duration`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/slack`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/slack/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/slack/activate/or/modify/do/not/disturb/duration` — Deprecated: turns on do not disturb mode for the current user, or changes its duration. use `set dnd duration` instead.
  - body: { num_minutes: string }
- `POST https://api.mcp.ai/api/slack/add/a/custom/emoji/to/a/slack/team` — Deprecated: adds a custom emoji to a slack workspace given a unique name and an image url. use `add emoji` instead.
  - body: { url: string, name: string, token: string }
- `POST https://api.mcp.ai/api/slack/add/a/remote/file/from/a/service` — Adds a reference to an external file (e.g., google drive, dropbox) to slack for discovery and sharing, requiring a unique `external id` and an `external url` accessible by slack.
  - body: { title?: string, token?: string, filetype?: string, external_id?: string, external_url?: string, preview_image?: string, indexable_file_contents?: string }
- `POST https://api.mcp.ai/api/slack/add/a/star/to/an/item` — Stars a channel, file, file comment, or a specific message in slack.
  - body: { file?: string, channel?: string, timestamp?: string, file_comment?: string }
- `POST https://api.mcp.ai/api/slack/add/an/emoji/alias/in/slack` — Adds an alias for an existing custom emoji in a slack enterprise grid organization.
  - body: { name: string, token: string, alias_for: string }
- `POST https://api.mcp.ai/api/slack/add/call/participants` — Registers new participants added to a slack call.
  - body: { id: string, users: string }
- `POST https://api.mcp.ai/api/slack/add/emoji` — Adds a custom emoji to a slack workspace given a unique name and an image url; subject to workspace emoji limits.
  - body: { url: string, name: string, token: string }
- `POST https://api.mcp.ai/api/slack/add/reaction/to/an/item` — Adds a specified emoji reaction to an existing message in a slack channel, identified by its timestamp; does not remove or retrieve reactions.
  - body: { name: string, channel: string, timestamp: string }
- `POST https://api.mcp.ai/api/slack/archive/a/public/or/private/channel` — Archives a slack public or private channel, making it read-only; the primary 'general' channel cannot be archived.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/slack/archive/a/slack/conversation` — Archives a slack conversation by its id, rendering it read-only and hidden while retaining history, ideal for cleaning up inactive channels; be aware that some channels (like #general or certain dms) 
  - body: { channel?: string }
- `POST https://api.mcp.ai/api/slack/chat/post/message` — Deprecated: posts a message to a slack channel, direct message, or private channel. use `send message` instead.
  - body: { text?: string, parse?: string, blocks?: string, mrkdwn?: boolean, as_user?: boolean, channel: string, icon_url?: string, username?: string, thread_ts?: string, icon_emoji?: string, link_names?: boolean, attachments?: string, unfurl_links?: boolean, unfurl_media?: boolean, markdown_text?: string, reply_broadcast?: boolean }
- `POST https://api.mcp.ai/api/slack/close/dm/or/multi/person/dm` — Closes a slack direct message (dm) or multi-person direct message (mpdm) channel, removing it from the user's sidebar without deleting history; this action affects only the calling user's view.
  - body: { channel?: string }
- `POST https://api.mcp.ai/api/slack/create/a/reminder` — Creates 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').
  - body: { text: string, time: string, user?: string }
- `POST https://api.mcp.ai/api/slack/create/a/slack/user/group` — Creates a new user group (often referred to as a subteam) in a slack workspace.
  - body: { name: string, handle?: string, channels?: string, description?: string, include_count?: boolean }
- `POST https://api.mcp.ai/api/slack/create/channel` — Initiates a public or private channel-based conversation
  - body: { name: string, team_id?: string, is_private?: boolean }
- `POST https://api.mcp.ai/api/slack/create/channel/based/conversation` — Creates a new public or private slack channel with a unique name; the channel can be org-wide, or team-specific if `team id` is given (required if `org wide` is false or not provided).
  - body: { name: string, team_id?: string, org_wide?: boolean, is_private: boolean, description?: string }
- `POST https://api.mcp.ai/api/slack/customize/url/unfurl` — Customizes url previews (unfurling) in a specific slack message using a url-encoded json in `unfurls` to define custom content or remove existing previews.
  - body: { ts: string, channel: string, unfurls?: string, user_auth_url?: string, user_auth_message?: string, user_auth_required?: boolean }
- `POST https://api.mcp.ai/api/slack/customize/url/unfurling/in/messages` — Deprecated: customizes url previews (unfurling) in a specific slack message. use `customize url unfurl` instead.
  - body: { ts: string, channel: string, unfurls?: string, user_auth_url?: string, user_auth_message?: string, user_auth_required?: boolean }
- `POST https://api.mcp.ai/api/slack/delete/a/comment/on/a/file` — Deletes a specific comment from a file in slack; this action is irreversible.
  - body: { id?: string, file?: string }
- `POST https://api.mcp.ai/api/slack/delete/a/file/by/id` — Permanently deletes an existing file from a slack workspace using its unique file id; this action is irreversible and also removes any associated comments or shares.
  - body: { file?: string }
- `POST https://api.mcp.ai/api/slack/delete/a/public/or/private/channel` — Permanently and irreversibly deletes a specified public or private channel, including all its messages and files, within a slack enterprise grid organization.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/slack/delete/a/scheduled/message/in/a/chat` — Deletes a pending, unsent scheduled message from the specified slack channel, identified by its `scheduled message id`.
  - body: { as_user?: boolean, channel: string, scheduled_message_id: string }
- `POST https://api.mcp.ai/api/slack/delete/a/slack/reminder` — Deletes an existing slack reminder, typically when it is no longer relevant or a task is completed; this operation is irreversible.
  - body: { reminder?: string }
- `POST https://api.mcp.ai/api/slack/delete/user/profile/photo` — Deletes the slack profile photo for the user identified by the token, reverting them to the default avatar; this action is irreversible and succeeds even if no custom photo was set.
  - body: { token: string }
- `POST https://api.mcp.ai/api/slack/deletes/a/message/from/a/chat` — Deletes a message, identified by its channel id and timestamp, from a slack channel, private group, or direct message conversation; the authenticated user or bot must be the original poster.
  - body: { ts?: string, as_user?: boolean, channel?: string }
- `POST https://api.mcp.ai/api/slack/disable/an/existing/slack/user/group` — Disables a specified, currently enabled slack user group by its unique id, effectively archiving it by setting its 'date delete' timestamp; the group is not permanently deleted and can be re-enabled.
  - body: { usergroup: string, include_count?: boolean }
- `POST https://api.mcp.ai/api/slack/enable/a/specified/user/group` — Enables a disabled user group in slack using its id, reactivating it for mentions and permissions; this action only changes the enabled status and cannot create new groups or modify other properties.
  - body: { usergroup: string, include_count?: boolean }
- `POST https://api.mcp.ai/api/slack/enable/public/sharing/of/a/file` — Enables public sharing for an existing slack file by generating a publicly accessible url; this action does not create new files.
  - body: { file?: string }
- `POST https://api.mcp.ai/api/slack/end/a/call/with/duration/and/id` — Ends an ongoing slack call, identified by its id (obtained from `calls.add`), optionally specifying the call's duration.
  - body: { id: string, duration?: integer }
- `POST https://api.mcp.ai/api/slack/end/snooze` — Ends the current user's snooze mode immediately.
- `POST https://api.mcp.ai/api/slack/end/user/do/not/disturb/session` — Ends the authenticated user's current do not disturb (dnd) session in slack, affecting only dnd status and making them available; if dnd is not active, slack acknowledges the request without changing 
- `POST https://api.mcp.ai/api/slack/end/user/snooze/mode/immediately` — Deprecated: ends the current user's snooze mode immediately. use `end snooze` instead.
- `POST https://api.mcp.ai/api/slack/fetch/bot/user/information` — Fetches information for a specified, existing slack bot user; will not work for regular user accounts or other integration types.
  - body: { bot?: string }
- `POST https://api.mcp.ai/api/slack/fetch/conversation/history` — Fetches a chronological list of messages and events from a specified slack conversation, accessible by the authenticated user/bot, with options for pagination and time range filtering.
  - body: { limit?: integer, cursor?: string, latest?: string, oldest?: string, channel: string, inclusive?: boolean }
- `POST https://api.mcp.ai/api/slack/fetch/current/team/info/with/optional/team/scope` — Deprecated: fetches comprehensive metadata about the current slack team. use `fetch team info` instead.
  - body: { team?: string }
- `POST https://api.mcp.ai/api/slack/fetch/dnd/status/for/multiple/team/members` — Deprecated: retrieves a user's current do not disturb status. use `get team dnd status` instead.
  - body: { users: string }
- `POST https://api.mcp.ai/api/slack/fetch/item/reactions` — Fetches reactions for a slack message, file, or file comment, requiring one of: channel and timestamp; file id; or file comment id.
  - body: { file?: string, full?: boolean, channel?: string, timestamp?: string, file_comment?: string }
- `POST https://api.mcp.ai/api/slack/fetch/message/thread/from/a/conversation` — Retrieves replies to a specific parent message in a slack conversation, using the channel id and the parent message's timestamp (`ts`).
  - body: { ts?: string, limit?: integer, cursor?: string, latest?: string, oldest?: string, channel?: string, inclusive?: boolean }
- `POST https://api.mcp.ai/api/slack/fetch/team/info` — Fetches comprehensive metadata about the current slack team, or a specified team if the provided id is accessible.
  - body: { team?: string }
- `POST https://api.mcp.ai/api/slack/fetch/workspace/settings/information` — Retrieves detailed settings for a specific slack workspace, primarily for administrators in an enterprise grid organization to view or audit workspace configurations.
  - body: { team_id: string }
- `POST https://api.mcp.ai/api/slack/find/channels` — Find channels in a slack workspace by any criteria - name, topic, purpose, or description.
  - body: { limit?: integer, types?: string, exact_match?: boolean, member_only?: boolean, search_query: string, exclude_archived?: boolean }
- `POST https://api.mcp.ai/api/slack/find/user/by/email/address` — Retrieves the slack user object for an active user by their registered email address; fails with 'users not found' if the email is unregistered or the user is inactive.
  - body: { email: string }
- `POST https://api.mcp.ai/api/slack/find/users` — Find users in a slack workspace by any criteria - email, name, display name, or other text. includes optimized email lookup for exact email matches.
  - body: { limit?: integer, exact_match?: boolean, include_bots?: boolean, search_query: string, include_deleted?: boolean, include_restricted?: boolean }
- `POST https://api.mcp.ai/api/slack/get/channel/conversation/preferences` — Retrieves conversation preferences (e.g., who can post, who can thread) for a specified channel, primarily for use within slack enterprise grid environments.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/slack/get/reminder/information` — Retrieves detailed information for an existing slack reminder specified by its id; this is a read-only operation.
  - body: { reminder?: string }
- `POST https://api.mcp.ai/api/slack/get/remote/file` — Retrieve information about a remote file added to slack.
  - body: { file?: string, external_id?: string }
- `POST https://api.mcp.ai/api/slack/get/team/dnd/status` — Retrieves a user's current do not disturb status.
  - body: { users: string }
- `POST https://api.mcp.ai/api/slack/get/user/presence/info` — Retrieves a slack user's current real-time presence (e.g., 'active', 'away') to determine their availability, noting this action does not provide historical data or status reasons.
  - body: { user?: string }
- `POST https://api.mcp.ai/api/slack/initiates/channel/based/conversations` — Deprecated: initiates a public or private channel-based conversation. use `create channel` instead.
  - body: { name: string, team_id?: string, is_private?: boolean }
- `POST https://api.mcp.ai/api/slack/invite/user/to/channel` — Invites users to a specified slack channel; this action is restricted to enterprise grid workspaces and requires the authenticated user to be a member of the target channel.
  - body: { user_ids: string, channel_id: string }
- `POST https://api.mcp.ai/api/slack/invite/user/to/workspace` — Invites a user to a slack workspace and specified channels by email; use `resend=true` to re-process an existing invitation for a user not yet signed up.
  - body: { email: string, resend?: boolean, team_id: string, real_name?: string, channel_ids: string, is_restricted?: boolean, custom_message?: string, guest_expiration_ts?: string, is_ultra_restricted?: boolean }
- `POST https://api.mcp.ai/api/slack/invite/user/to/workspace/with/optional/channel/invites` — Deprecated: invites a user to a slack workspace and specified channels by email. use `invite user to workspace` instead.
  - body: { email: string, resend?: boolean, team_id: string, real_name?: string, channel_ids: string, is_restricted?: boolean, custom_message?: string, guest_expiration_ts?: string, is_ultra_restricted?: boolean }
- `POST https://api.mcp.ai/api/slack/invite/users/to/a/slack/channel` — Invites users to an existing slack channel using their valid slack user ids.
  - body: { users?: string, channel?: string }
- `POST https://api.mcp.ai/api/slack/join/an/existing/conversation` — Joins an existing slack conversation (public channel, private channel, or multi-person direct message) by its id, if the authenticated user has permission.
  - body: { channel?: string }
- `POST https://api.mcp.ai/api/slack/leave/a/conversation` — Leaves a slack conversation given its channel id; fails if leaving as the last member of a private channel or if used on a slack connect channel.
  - body: { channel?: string }
- `POST https://api.mcp.ai/api/slack/list/accessible/conversations/for/a/user` — Deprecated: retrieves conversations accessible to a specified user. use `list conversations` instead.
  - body: { user?: string, limit?: integer, types?: string, cursor?: string, exclude_archived?: boolean }
- `POST https://api.mcp.ai/api/slack/list/all/channels` — Lists conversations available to the user with various filters and search options.
  - body: { limit?: integer, types?: string, cursor?: string, channel_name?: string, exclude_archived?: boolean }
- `POST https://api.mcp.ai/api/slack/list/all/slack/team/channels/with/various/filters` — Deprecated: lists conversations available to the user with various filters and search options. use `list channels` instead.
  - body: { limit?: integer, types?: string, cursor?: string, channel_name?: string, exclude_archived?: boolean }
- `POST https://api.mcp.ai/api/slack/list/all/slack/team/users/with/pagination` — Deprecated: retrieves a paginated list of all users in a slack workspace. use `list all users` instead.
  - body: { limit?: integer, cursor?: string, include_locale?: boolean }
- `POST https://api.mcp.ai/api/slack/list/all/users` — Retrieves a paginated list of all users, including comprehensive details, profile information, status, and team memberships, in a slack workspace; data may not be real-time.
  - body: { limit?: integer, cursor?: string, include_locale?: boolean }
- `POST https://api.mcp.ai/api/slack/list/all/users/in/a/user/group` — Retrieves a list of all user ids within a specified slack user group, with an option to include users from disabled groups.
  - body: { usergroup: string, include_disabled?: boolean }
- `POST https://api.mcp.ai/api/slack/list/conversations` — Retrieves conversations accessible to a specified user (or the authenticated user if no user id is provided), respecting shared membership for non-public channels.
  - body: { user?: string, limit?: integer, types?: string, cursor?: string, exclude_archived?: boolean }
- `POST https://api.mcp.ai/api/slack/list/files/with/filters/in/slack` — Lists files and their metadata within a slack workspace, filterable by user, channel, timestamp, or type; this action returns metadata only, not file content.
  - body: { page?: string, user?: string, count?: string, ts_to?: integer, types?: string, channel?: string, ts_from?: integer, show_files_hidden_by_limit?: boolean }
- `POST https://api.mcp.ai/api/slack/list/reminders` — Lists all reminders with their details for the authenticated slack user; returns an empty list if no reminders exist.
- `POST https://api.mcp.ai/api/slack/list/remote/files` — Retrieve information about a team's remote files.
  - body: { limit?: integer, ts_to?: number, cursor?: string, channel?: string, ts_from?: number }
- `POST https://api.mcp.ai/api/slack/list/scheduled/messages` — Retrieves a list of pending (not yet delivered) messages scheduled in a specific slack channel, or across all accessible channels if no channel id is provided, optionally filtered by time and paginate
  - body: { limit?: integer, cursor?: string, latest?: string, oldest?: string, channel?: string }
- `POST https://api.mcp.ai/api/slack/list/scheduled/messages/in/a/channel` — Deprecated: retrieves a list of pending (not yet delivered) messages scheduled in a specific slack channel. use `list scheduled messages` instead.
  - body: { limit?: integer, cursor?: string, latest?: string, oldest?: string, channel?: string }
- `POST https://api.mcp.ai/api/slack/list/slack/s/remote/files/with/filters` — Deprecated: retrieve information about a team's remote files. use `list remote files` instead.
  - body: { limit?: integer, ts_to?: number, cursor?: string, channel?: string, ts_from?: number }
- `POST https://api.mcp.ai/api/slack/list/starred/items` — Lists items starred by a user.
  - body: { page?: integer, count?: integer, limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/slack/list/team/custom/emojis` — Retrieves all custom emojis for the slack workspace (image urls or aliases), not standard unicode emojis; does not include usage statistics or creation dates.
- `POST https://api.mcp.ai/api/slack/list/user/groups/for/team/with/options` — Lists user groups in a slack workspace, including user-created and default groups; results for large workspaces may be paginated.
  - body: { include_count?: boolean, include_users?: boolean, include_disabled?: boolean }
- `POST https://api.mcp.ai/api/slack/list/user/reactions` — Lists 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.
  - body: { full?: boolean, page?: integer, user?: string, count?: integer, limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/slack/list/user/reminders/with/details` — Deprecated: lists all reminders with their details for the authenticated slack user. use `list reminders` instead.
- `POST https://api.mcp.ai/api/slack/list/workspace/users` — Retrieves a paginated list of admin users for a specified slack workspace.
  - body: { limit?: integer, cursor?: string, team_id: string }
- `POST https://api.mcp.ai/api/slack/lists/pinned/items/in/a/channel` — Retrieves all messages and files pinned to a specified channel; the caller must have access to this channel.
  - body: { channel: string }
- `POST https://api.mcp.ai/api/slack/lists/user/s/starred/items/with/pagination` — Deprecated: lists items starred by a user. use `list starred items` instead.
  - body: { page?: integer, count?: integer, limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/slack/manually/set/user/presence` — Manually sets a user's slack presence, overriding automatic detection; this setting persists across connections but can be overridden by user actions or slack's auto-away (e.g., after 10 mins of inact
  - body: { presence: string }
- `POST https://api.mcp.ai/api/slack/mark/reminder/as/complete` — Marks a specific slack reminder as complete using its `reminder` id; **deprecated**: this slack api endpoint ('reminders.complete') was deprecated in march 2023 and is not recommended for new applicat
  - body: { reminder?: string }
- `POST https://api.mcp.ai/api/slack/open/dm` — Opens or resumes a slack direct message (dm) or multi-person direct message (mpim) by providing either user ids or an existing channel id.
  - body: { users?: string, channel?: string, return_im?: boolean }
- `POST https://api.mcp.ai/api/slack/open/or/resume/direct/or/multi/person/messages` — Deprecated: opens or resumes a slack direct message (dm) or multi-person direct message (mpim). use `open dm` instead.
  - body: { users?: string, channel?: string, return_im?: boolean }
- `POST https://api.mcp.ai/api/slack/pins/an/item/to/a/channel` — Pins a message to a specified slack channel; the message must not already be pinned.
  - body: { channel: string, timestamp?: string }
- `POST https://api.mcp.ai/api/slack/register/call/participants/removal` — Deprecated: registers participants removed from a slack call. use `remove call participants` instead.
  - body: { id: string, users: string }
- `POST https://api.mcp.ai/api/slack/registers/a/new/call/with/participants` — Deprecated: registers a new call in slack using `calls.add` for third-party call integration. use `start call` instead.
  - body: { title?: string, users?: string, join_url: string, created_by?: string, date_start?: integer, external_unique_id: string, external_display_id?: string, desktop_app_join_url?: string }
- `POST https://api.mcp.ai/api/slack/registers/new/call/participants` — Deprecated: registers new participants added to a slack call. use `add call participants` instead.
  - body: { id: string, users: string }
- `POST https://api.mcp.ai/api/slack/remove/a/remote/file` — Removes the slack reference to an external file (which must have been previously added via the remote files api), specified by either its `external id` or `file` id (one of which is required), without
  - body: { file?: string, token?: string, external_id?: string }
- `POST https://api.mcp.ai/api/slack/remove/a/star/from/an/item` — Removes a star from a previously starred slack item (message, file, file comment, channel, group, or dm), requiring identification via `file`, `file comment`, `channel` (for channel/group/dm), or both
  - body: { file?: string, channel?: string, timestamp?: string, file_comment?: string }
- `POST https://api.mcp.ai/api/slack/remove/a/user/from/a/conversation` — Removes a specified user from a slack conversation (channel); the caller must have permissions to remove users and cannot remove themselves using this action.
  - body: { user?: string, channel?: string }
- `POST https://api.mcp.ai/api/slack/remove/call/participants` — Registers participants removed from a slack call.
  - body: { id: string, users: string }
- `POST https://api.mcp.ai/api/slack/remove/reaction/from/item` — Removes an emoji reaction from a message, file, or file comment in slack.
  - body: { file?: string, name: string, channel?: string, timestamp?: string, file_comment?: string }
- `POST https://api.mcp.ai/api/slack/rename/a/conversation` — Renames a slack channel, automatically adjusting the new name to meet naming conventions (e.g., converting to lowercase), which may affect integrations using the old name.
  - body: { name?: string, channel?: string }
- `POST https://api.mcp.ai/api/slack/rename/a/slack/channel` — Renames a public or private slack channel; for enterprise grid workspaces, the user must be a workspace admin or channel manager.
  - body: { name: string, channel_id: string }
- `POST https://api.mcp.ai/api/slack/rename/an/emoji` — Renames an existing custom emoji in a slack workspace, updating all its instances.
  - body: { name: string, token: string, new_name: string }
- `POST https://api.mcp.ai/api/slack/retrieve/a/user/s/identity/details` — Retrieves the authenticated user's and their team's identity, with details varying based on oauth scopes (e.g., `identity.basic`, `identity.email`, `identity.avatar`).
- `POST https://api.mcp.ai/api/slack/retrieve/call/information` — Retrieves a point-in-time snapshot of a specific slack call's information.
  - body: { id: string }
- `POST https://api.mcp.ai/api/slack/retrieve/conversation/information` — Retrieves 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.
  - body: { channel?: string, include_locale?: boolean, include_num_members?: boolean }
- `POST https://api.mcp.ai/api/slack/retrieve/conversation/members/list` — Retrieves a paginated list of active member ids for a specified slack public channel, private channel, direct message (dm), or multi-person direct message (mpim).
  - body: { limit?: integer, cursor?: string, channel?: string }
- `POST https://api.mcp.ai/api/slack/retrieve/current/user/dnd/status` — Retrieves a slack user's current do not disturb (dnd) status to determine their availability before interaction; any specified user id must be a valid slack user id.
  - body: { user?: string }
- `POST https://api.mcp.ai/api/slack/retrieve/detailed/information/about/a/file` — Retrieves detailed metadata and paginated comments for a specific slack file id; does not download file content.
  - body: { file?: string, page?: string, count?: string, limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/slack/retrieve/detailed/user/information` — Retrieves comprehensive information for a valid slack user id, excluding message history and channel memberships.
  - body: { user?: string, include_locale?: boolean }
- `POST https://api.mcp.ai/api/slack/retrieve/message/permalink/url` — Retrieves a permalink url for a specific message in a slack channel or conversation; the permalink respects slack's privacy settings.
  - body: { channel: string, message_ts: string }
- `POST https://api.mcp.ai/api/slack/retrieve/remote/file/info/in/slack` — Deprecated: retrieve information about a remote file added to slack. use `get remote file` instead.
  - body: { file?: string, external_id?: string }
- `POST https://api.mcp.ai/api/slack/retrieve/team/profile/details` — Retrieves all profile field definitions for a slack team, optionally filtered by visibility, to understand the team's profile structure.
  - body: { visibility?: string }
- `POST https://api.mcp.ai/api/slack/retrieve/user/profile/information` — Retrieves profile information for a specified slack user (defaults to the authenticated user if `user` id is omitted); a provided `user` id must be valid.
  - body: { user?: string, include_labels?: boolean }
- `POST https://api.mcp.ai/api/slack/reverse/a/conversation/s/archival/status` — Deprecated: reverses conversation archival. use `unarchive channel` instead.
  - body: { channel: string }
- `POST https://api.mcp.ai/api/slack/revoke/public/sharing/access/for/a/file` — Revokes a slack file's public url, making it private; this is a no-op if not already public and is irreversible.
  - body: { file?: string }
- `POST https://api.mcp.ai/api/slack/schedule/message` — Schedules a message to a slack channel, dm, or private group for a future time (`post at`), requiring `text`, `blocks`, or `attachments` for content; scheduling is limited to 120 days in advance.
  - body: { text?: string, parse?: string, blocks?: string, as_user?: boolean, channel?: string, post_at?: string, thread_ts?: string, link_names?: boolean, attachments?: string, unfurl_links?: boolean, unfurl_media?: boolean, markdown_text?: string, reply_broadcast?: boolean }
- `POST https://api.mcp.ai/api/slack/schedules/a/message/to/a/channel/at/a/specified/time` — Deprecated: schedules a message to a slack channel, dm, or private group for a future time. use `schedule message` instead.
  - body: { text?: string, parse?: string, blocks?: string, as_user?: boolean, channel?: string, post_at?: string, thread_ts?: string, link_names?: boolean, attachments?: string, unfurl_links?: boolean, unfurl_media?: boolean, markdown_text?: string, reply_broadcast?: boolean }
- `POST https://api.mcp.ai/api/slack/search/for/messages/with/query` — Deprecated: searches messages in a slack workspace using a query with optional modifiers. use `search messages` instead.
  - body: { page?: integer, sort?: string, count?: integer, query: string, sort_dir?: string, highlight?: boolean }
- `POST https://api.mcp.ai/api/slack/search/messages` — Workspace‑wide slack message search with date ranges and filters. use `query` modifiers (e.g., in:#channel, from:@user, before/after:yyyy-mm-dd), sorting (score/timestamp), and pagination.
  - body: { page?: integer, sort?: string, count?: integer, query: string, sort_dir?: string, highlight?: boolean }
- `POST https://api.mcp.ai/api/slack/send/ephemeral/message` — Sends an ephemeral message to a user in a channel.
  - body: { text?: string, user: string, parse?: string, blocks?: string, as_user?: boolean, channel: string, icon_url?: string, username?: string, thread_ts?: string, icon_emoji?: string, link_names?: boolean, attachments?: string }
- `POST https://api.mcp.ai/api/slack/send/message` — Posts a message to a slack channel, direct message, or private group; requires content via `text`, `blocks`, or `attachments`.
  - body: { text?: string, parse?: string, blocks?: string, mrkdwn?: boolean, as_user?: boolean, channel: string, icon_url?: string, username?: string, thread_ts?: string, icon_emoji?: string, link_names?: boolean, attachments?: string, unfurl_links?: boolean, unfurl_media?: boolean, markdown_text?: string, reply_broadcast?: boolean }
- `POST https://api.mcp.ai/api/slack/sends/a/message/to/a/slack/channel` — Deprecated: posts a message to a slack channel, direct message, or private group. use `send message` instead.
  - body: { text?: string, parse?: string, blocks?: string, mrkdwn?: boolean, as_user?: boolean, channel: string, icon_url?: string, username?: string, thread_ts?: string, icon_emoji?: string, link_names?: boolean, attachments?: string, unfurl_links?: boolean, unfurl_media?: boolean, markdown_text?: string, reply_broadcast?: boolean }
- `POST https://api.mcp.ai/api/slack/sends/ephemeral/messages/to/channel/users` — Deprecated: sends an ephemeral message to a user in a channel. use `send ephemeral message` instead.
  - body: { text?: string, user: string, parse?: string, blocks?: string, as_user?: boolean, channel: string, icon_url?: string, username?: string, thread_ts?: string, icon_emoji?: string, link_names?: boolean, attachments?: string }
- `POST https://api.mcp.ai/api/slack/set/a/conversation/s/purpose` — Sets the purpose (a short description of its topic/goal, displayed in the header) for a slack conversation; the calling user must be a member.
  - body: { channel?: string, purpose?: string }
- `POST https://api.mcp.ai/api/slack/set/dnd/duration` — Turns on do not disturb mode for the current user, or changes its duration.
  - body: { num_minutes: string }
- `POST https://api.mcp.ai/api/slack/set/profile/photo` — This method allows the user to set their profile image.
  - body: { image: string, crop_w?: integer, crop_x?: integer, crop_y?: integer }
- `POST https://api.mcp.ai/api/slack/set/read/cursor/in/a/conversation` — Marks a message, specified by its timestamp (`ts`), as the most recently read for the authenticated user in the given `channel`, provided the user is a member of the channel and the message exists wit
  - body: { ts?: integer, channel?: string }
- `POST https://api.mcp.ai/api/slack/set/slack/user/profile/information` — Updates a slack user's profile, setting either individual fields or multiple fields via a json object.
  - body: { name?: string, user?: string, value?: string, profile?: string }
- `POST https://api.mcp.ai/api/slack/set/the/topic/of/a/conversation` — Sets or updates the topic for a specified slack conversation.
  - body: { topic?: string, channel?: string }
- `POST https://api.mcp.ai/api/slack/set/user/profile/photo/with/cropping/options` — Deprecated: this method allows the user to set their profile image. use `set profile photo` instead.
  - body: { image: string, crop_w?: integer, crop_x?: integer, crop_y?: integer }
- `POST https://api.mcp.ai/api/slack/share/a/me/message/in/a/channel` — Sends a 'me message' (e.g., '/me is typing') to a slack channel, where it's displayed as a third-person user action; messages are plain text and the channel must exist and be accessible.
  - body: { text?: string, channel?: string }
- `POST https://api.mcp.ai/api/slack/share/remote/file/in/channels` — Shares a remote file, which must already be registered with slack, into specified slack channels or direct message conversations.
  - body: { file?: string, channels?: string, external_id?: string }
- `POST https://api.mcp.ai/api/slack/start/call` — Registers a new call in slack using `calls.add` for third-party call integration; `created by` is required if not using a user-specific token.
  - body: { title?: string, users?: string, join_url: string, created_by?: string, date_start?: integer, external_unique_id: string, external_display_id?: string, desktop_app_join_url?: string }
- `POST https://api.mcp.ai/api/slack/start/real/time/messaging/session` — Initiates a slack rtm session providing a single-use websocket url (valid 30s) for event streaming; does not set initial presence status.
  - body: { presence_sub?: boolean, batch_presence_aware?: boolean }
- `POST https://api.mcp.ai/api/slack/unarchive/a/public/or/private/channel` — Unarchives a specified public or private slack channel that is currently archived, using its channel id.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/slack/unarchive/channel` — Reverses conversation archival.
  - body: { channel: string }
- `POST https://api.mcp.ai/api/slack/unpin/item/from/channel` — Unpins a message, identified by its timestamp, from a specified channel if the message is currently pinned there; this operation is destructive.
  - body: { channel: string, timestamp?: string }
- `POST https://api.mcp.ai/api/slack/update/an/existing/slack/user/group` — Updates an existing slack user group, which must be specified by an existing `usergroup` id, with new optional details such as its name, description, handle, or default channels.
  - body: { name?: string, handle?: string, channels?: string, usergroup: string, description?: string, include_count?: boolean }
- `POST https://api.mcp.ai/api/slack/update/slack/call/information` — Updates the title, join url, or desktop app join url for an existing slack call identified by its id.
  - body: { id: string, title?: string, join_url?: string, desktop_app_join_url?: string }
- `POST https://api.mcp.ai/api/slack/update/user/group/members` — Replaces all members of an existing slack user group with a new list of valid user ids.
  - body: { users: string, usergroup: string, include_count?: boolean }
- `POST https://api.mcp.ai/api/slack/updates/a/slack/message` — Updates a slack message, identified by `channel` id and `ts` timestamp, by modifying its `text`, `attachments`, or `blocks`; provide at least one content field, noting `attachments`/`blocks` are repla
  - body: { ts: string, text?: string, parse?: string, blocks?: string, as_user?: string, channel: string, link_names?: string, attachments?: string, markdown_text?: string }
- `POST https://api.mcp.ai/api/slack/updates/an/existing/remote/file` — Updates metadata or content details for an existing remote file in slack; this action cannot upload new files or change the fundamental file type.
  - body: { file?: string, title?: string, token?: string, filetype?: string, external_id?: string, external_url?: string, preview_image?: string, indexable_file_contents?: string }
- `POST https://api.mcp.ai/api/slack/upload/or/create/a/file/in/slack` — Uploads a file to slack, requiring either `content` (for text) or `file` (for binary data), optionally sharing it in specified `channels` or as a reply via `thread ts`.
  - body: { file?: string, title?: string, token?: string, content?: string, channels?: string, filename?: string, filetype?: string, thread_ts?: integer, initial_comment?: string }

## Example prompts
- "Envie 'Deploy concluído ✅' no canal #engineering"
- "Resuma as mensagens não lidas do canal #suporte de hoje"
- "Liste os canais do meu workspace"

## More
- Page: https://mcp.ai/slack
- Agent spec (llms.txt): https://mcp.ai/slack/llms.txt
- Postman collection: https://mcp.ai/slack/postman.json
