• Communication

  • OAuth

Let an agent read channels and threads, find conversation members, invite users, and send Slack messages.

Available Tools

52 tools available in this integration

Slack.CancelScheduledMessage

Cancel an undelivered API-scheduled message using its schedule identifier.

Slack.CheckAccess

Check the connected Slack account with broad access prepared up front.

Slack.CreateCanvas

Create a new canvas and optionally tab it in a channel or send it to people.

Slack.CreateConversation

Create a channel with invitations and topic/purpose setup, or explicitly open/resume a DM or

Slack.CreateFileUpload

Allocate a temporary upload_url and file_id for a client to upload bytes.

Slack.CreateList

Create a new list with typed columns and choices, returning its F-prefixed list ID.

Slack.CreateListRecord

Create one typed list record or subtask and return its new Rec-prefixed record ID.

Slack.CreateScheduledMessage

Schedule a future message or thread reply and return the scheduled_message_id used for

Slack.DeleteCanvas

Permanently delete an entire canvas.

Slack.DeleteFiles

Permanently delete files, with one confirmed, rejected or unknown outcome per file.

Slack.DeleteListRecords

Permanently delete list records, with one confirmed, rejected or unknown outcome per ID.

Slack.DeleteMessage

Permanently delete an existing message the authenticated account may delete.

Slack.DownloadFile

Read bounded private file text and open a preview/download App.

Slack.FinalizeFileUpload

Complete previously uploaded file bytes and optionally share the files in a conversation or

Slack.ForwardMessage

Post an attributed text copy with a link to the original message.

Slack.GenerateMessageDraft

Prepare a Markdown message draft for review and return its text and targeting fields.

Slack.GetCanvas

Read a known canvas as Markdown in bounded parts.

Slack.GetConversationMetadata

Read one conversation's topic, purpose, membership and available activity/read-state

Slack.GetList

Read a list's metadata, typed column schema and records in Slack's row order, or one exact

Slack.GetMessage

Read one exact message's complete text, including forwarded text, in bounded parts with file

Slack.GetThread

Read a thread's parent and replies, including a parent with no replies.

Slack.GetUserProfile

Read one person's detailed profile, including status, pronouns, timezone and labeled custom

Slack.InviteUsersToChannel

Invite users to a Slack channel or MPIM (multi-person direct message).

Slack.InviteUsersToConversation

Invite people to an existing channel and report per-person outcomes.

Slack.ListConversationMembers

List a conversation's member identities in Slack's order, retaining inaccessible profiles as

Slack.ListConversationMessages

Get messages in a Slack Channel, DM (direct message) or MPIM (multi-person) conversation.

Slack.ListConversationUsers

Get the users in a Slack conversation (Channel, DM/IM, or MPIM) by its ID or by channel name.

Slack.ListConversations

List conversations the authenticated user belongs to, in Slack's order, including archived

Slack.ListMessages

Read conversation history newest first, with message references, author names, file IDs and

Slack.ListPinnedMessages

List compact pinned messages and files in Slack's order, with references for reading their

Slack.ListReactions

Read a message's reaction names, authoritative counts and optional user samples.

Slack.ListScheduledMessages

List pending schedules visible to this API/token, with each page sorted by delivery time,

Slack.ListThreadMessages

Get messages in a Slack thread.

Slack.ListUsers

List workspace accounts with compact identity fields in Slack's order.

Slack.MarkReadMessages

Mark conversations read through the supplied messages for the authenticated user, returning

Slack.ReactToMessage

Add or remove your own reactions with per-item outcomes.

Slack.ReplaceListSchema

Create a replacement list schema and copy active typed records incrementally, retaining the

Slack.SearchCanvasSections

Look up section IDs inside one canvas for targeted content edits.

Slack.SearchContent

Search accessible Slack messages, files, channels or people, including unjoined channels,

Slack.SearchEmojis

Find workspace custom emoji names and aliases, sorted by name, for use when adding

Slack.SearchFiles

Find files by classic Slack search with short excerpts, file IDs and permalinks, including

Slack.SearchMessages

Search message text with classic Slack search, including when Slack AI real-time search is

Slack.SearchPublicContent

Search messages, files, channels or people in public channels through Slack real-time

Slack.SearchUsers

Find matching people and return all visible candidates rather than choosing an ambiguous

Slack.SendMessage

Send messages now, including thread replies, and return each posted reference or failure.

Slack.ShareCanvas

Share an existing canvas by posting its link before granting access, with an outcome per

Slack.UpdateCanvas

Apply one canvas content edit or rename.

Slack.UpdateList

Update an existing list's name, description or task mode without replacing its column

Slack.UpdateListRecord

Update selected typed cells in one existing record, preserving omitted cells.

Slack.UpdateMessage

Replace an editable message's text and retain its reference.

Slack.UploadFile

Upload supplied content or open a local file picker without uploading anything.

Slack.WhoAmI

Identify the authenticated Slack account and its workspace, timezone and compact profile.

Working directly against the raw API? 73 more tools in the Slack API server →

Why agent-optimized tools matter

Built for intent, not API schemas

Ask the agent to "find the thread where we decided the launch date and summarize the open questions." Arcade picks the right Slack actions without guessing channel IDs or message timestamps.

Up to 100x fewer tokens

Slack list and search results return lightweight message, file, channel, and user metadata by default and fetch full text only when asked, so the agent can scan a workspace without loading every conversation.

Complete the workflow end to end

Search a conversation, read the relevant thread, draft a reply, request approval, and send the response through one toolkit designed around the complete Slack task.

Make actions predictable and controlled

Arcade tools return structured results and useful errors across users and runs. Teams can apply scope restrictions, redaction, and approval policies so agents follow the same controls every time.

Securing Slack

The more capabilities agents get, the more useful they are. However, more capabilities bring more risks of undesired effects such as data loss and exfiltration.

This is why Arcade provides you with contextual rules that dictate how and when a tool is allowed to run. Arcade’s contextual access lets you govern tool visibility and behavior at every stage of execution and control who can see a tool, what inputs are allowed, and what comes back.

Learn about Contextual Access Policies

For Slack, you can implement some of these policies:

Access when tools are listed for a user
  • Hide Slack.InviteUsersToChannel from agents unless the roles your IDP marks as workspace administrators are active, so regular agents cannot add people to private channels.
  • Restrict Slack.SendMessage to agents operating under your approved communications role, so unreviewed automation cannot post in customer or company-wide conversations.
  • Hide Slack.ReactToMessage from agents outside your approved moderation role, so they cannot alter the reactions users rely on to signal decisions or status.
  • Hide Slack.DeleteCanvas from agents unless the roles your IDP marks as workspace content administrators are active, so an agent cannot permanently remove shared project documentation.
  • Restrict Slack.DeleteMessage to agents operating under your approved moderation role, so routine agents cannot erase conversation history or remove evidence from an incident thread.
  • Deny Slack.ShareCanvas to agents outside the roles your IDP marks as workspace administrators or document owners, so an agent cannot grant access to internal planning material.
  • Hide Slack.DeleteFiles from agents unless the roles your IDP marks as workspace administrators or records custodians are active, so routine automation cannot permanently remove shared files or audit evidence.
Pre-execution before each tool call
  • Require human approval before Slack.InviteUsersToChannel runs, so an agent cannot add an unintended person to a private channel.
  • Block Slack.SendMessage when the message contains credentials, access tokens, or customer data, so an agent cannot publish secrets in Slack.
  • Require human approval before Slack.ReactToMessage runs on messages in customer, incident, or executive conversations, so an agent cannot appear to endorse a statement without review.
  • Require human approval before Slack.CreateScheduledMessage runs, so an agent cannot queue an announcement or customer-facing reply for later delivery without review.
  • Block Slack.UpdateMessage when the replacement text contains credentials, access tokens, or customer data, so an agent cannot publish secrets while editing an existing message.
  • Refuse Slack.DeleteListRecords unless the request includes approval from the list owner, so an agent cannot permanently remove project tasks or records by mistake.
  • Require human approval before Slack.DeleteFiles runs, so an agent cannot permanently delete the wrong file or remove files subject to an investigation.
Post-execution after the tool returns
  • Redact Slack.GetMessage results by removing phone numbers, email addresses, access tokens, and message attachments before the content reaches the model.
  • Deny Slack.DownloadFile results for files labeled Confidential, Legal Hold, or Restricted, so private documents cannot be copied into an agent's context.
  • Strip Slack.GetUserProfile results of personal email addresses, phone numbers, pronouns, and custom profile fields before the model sees them.

How to use Slack with your agent

Pick your MCP client below and connect it to Slack through Arcade. Then give your agent the tools to read conversations, find users, and send messages.

Your questions, answered

A Slack MCP server exposes Slack capabilities as structured tools that an AI agent can call through the Model Context Protocol. After a user authorizes Slack, the agent can search conversations, read threads, draft and send messages, manage files, and work with channels, canvases, and lists.

Slack's own MCP server is a first-party endpoint for accessing Slack capabilities. Arcade adds a user-level OAuth runtime, agent-optimized actions, approval workflows, response redaction, and access controls that work across supported clients and frameworks.

Arcade agents can search messages, files, channels, and people; read conversations, threads, canvases, files, profiles, reactions, and lists; draft, send, schedule, forward, update, and delete messages; create and manage channels, canvases, files, lists, invitations, reactions, and read state.

Slack permissions depend on the actions you enable and the connected user's workspace access. Read workflows need permission to view the relevant conversations, files, people, canvases, or lists; writing workflows add permission to send messages, upload files, invite users, schedule messages, or change content. Slack may also require administrator approval for some scopes or workspace actions.

Yes. Each user authorizes their own Slack account through OAuth. Actions run under that user's authorization and workspace permissions, so an agent can access only the Slack data and actions that user has approved.

Yes. Contextual Access policies can require human approval before consequential Slack actions such as sending, scheduling, deleting, forwarding, inviting people, sharing canvases, or changing list and message content. The call proceeds only after the policy's conditions have been satisfied.

Arcade proxies Slack API calls and does not persist Slack content as part of normal tool execution. Slack credentials are brokered and stored encrypted at rest, and the model never receives raw credentials.

Any framework or client that can connect to Arcade's MCP gateway or tool APIs works with Arcade Slack, including LangChain, OpenAI Agents, CrewAI, Claude Desktop, Claude Code, Cursor, Visual Studio Code, Microsoft Copilot Studio, and GitHub Copilot.

Arcade refreshes Slack access while the user's authorization remains valid. If the authorization is revoked, rotated, or can no longer be refreshed, Slack actions stop until the user reconnects their account.

Slack's API rate limits and workspace permissions still apply to calls made through Arcade. Slack pagination and per-call limits also apply, and Arcade's bounded reads and batch outcomes do not remove Slack's own quotas or throttling.

Ready to actually ship your agent?

Connect your agent to Slack with managed OAuth, agent-optimized tools and approval controls for consequential actions.