Slack MCP Tools for AI Agents
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 PoliciesFor Slack, you can implement some of these policies:
- 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.
- 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.
- 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.