Slack for AI agents
Slack is channel-based messaging software where teams post updates, share files, and connect other tools, serving as the day-to-day hub for company communication. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.
What agents do in Slack.
Post an update to a channel
Send a message to a project channel to notify the team once a task or deploy finishes.
Search before posting a duplicate reminder
Search recent messages in a channel to confirm a reminder hasn't already gone out before creating a new one.
Confirm before archiving a channel
Archive a channel only after confirming its recent activity and members, since archiving removes it from the active list.
168 Slack actions, graded by risk.
Every Slack action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.
read
68Look things up. Allowed by default.
- slack.find_usersFind users
- slack.get_canvasGet Slack Canvas (Deprecated)
- slack.search_allSearch all content
- slack.get_bot_userFetch bot user information
- slack.get_reminderGet reminder information
- slack.find_channelsFind channels
- slack.get_call_infoRetrieve call information
- slack.list_canvasesList Slack Canvases (Deprecated)
- slack.list_all_usersList all users
- slack.list_remindersList reminders
- slack.get_remote_fileGet remote file
- slack.list_auth_teamsList authorized teams
- slack.search_messagesSearch messages
- slack.get_team_profileRetrieve team profile details
- slack.list_admin_emojiList admin emoji
- slack.list_user_groupsList user groups
write
78Create and change things. Allow, or ask the user first.
- slack.add_starAdd a star to an item
- slack.add_emojiAdd emoji
- slack.send_messageSend message
- slack.create_canvasCreate Slack Canvas
- slack.create_channelCreate channel
- slack.add_emoji_aliasAdd an emoji alias
- slack.add_remote_fileAdd a remote file
- slack.send_me_messageShare a me message in a channel
- slack.update_call_infoUpdate call information
- slack.create_a_reminderCreate a reminder
- slack.create_slack_listCreate Slack List
- slack.create_user_groupCreate a Slack user group
- slack.update_slack_listUpdate Slack List
- slack.update_user_groupUpdate Slack user group
- slack.update_remote_fileUpdate an existing remote file
- slack.add_call_participantsAdd call participants
destructive
22Delete, cancel or archive. Ask first, or deny outright.
- slack.delete_fileDelete a file by ID
- slack.remove_starRemove a star from an item
- slack.remove_emojiRemove emoji
- slack.delete_canvasDelete Slack Canvas
- slack.delete_channelDelete a public or private channel
- slack.delete_reminderDelete a Slack reminder
- slack.remove_remote_fileRemove remote file
- slack.delete_file_commentDelete file comment
- slack.archive_conversationArchive a Slack conversation
- slack.delete_slack_list_itemDelete Slack List item
- slack.delete_scheduled_messageDelete scheduled chat message
- slack.delete_slack_list_accessDelete Slack List access
- slack.remove_call_participantsRemove call participants
- slack.delete_user_profile_photoDelete user profile photo
- slack.remove_reaction_from_itemRemove reaction from item
- slack.remove_user_from_workspaceRemove user from workspace
Slack in three steps.
- 01Your users connect SlackThey sign in to Slack on Arc0 Connect, under your brand, and approve the access you ask for.
- 02You set the rulesReads run, writes like “create Slack Canvas” can wait for the user, and “delete a file by ID” can be denied outright.
- 03Any agent can actYour agent calls Slack through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
await arc0.policies.set('slack', { read: 'allow', write: 'ask', // create_canvas destructive: 'deny', // delete_file }) # Claude Code: the same connection, one URL $ claude mcp add --transport http arc0 \ https://mcp.arc0.ai/u/u_8f2
How Slack connects.
Users sign in to Slack on Arc0 Connect and approve the scopes you request. Build with Arc0’s Slack OAuth app, or bring your own so the Slack consent screen names you. Tokens refresh automatically, and you can export them whenever you want.
The same Slack connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →
- AUTH
- OAuth 2.0
- CREDENTIALS
- Per-tenant encrypted vault
- MODEL SEES
- Results only, never credentials
- AUDIT LOG
- Every call, on every plan
Use Slack from any agent.
Slack and Arc0, answered.
Can I use Slack with Claude, ChatGPT or Cursor?
Yes. Connect Slack to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Slack actions you allow.
How do users connect Slack?
Users sign in to Slack on Arc0 Connect and approve the scopes you request. Build with Arc0’s Slack OAuth app, or bring your own so the Slack consent screen names you. Tokens refresh automatically, and you can export them whenever you want.
Which Slack actions can my agent take?
168 in total: 68 read, 78 write and 22 destructive, such as “create Slack Canvas”. Your policies decide which of them each agent may call.
Can I stop my agent from deleting things in Slack?
Yes. Actions like “delete a file by ID” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.
Can my own backend call Slack too?
Yes. The same Slack connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.
Plug Slack into your agent.
Your users connect Slack once, under your brand. Your agent gets 168 actions behind your policies, with every call on the record.
Free to build · MCP + REST · Audit log on every plan