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.

CommunicationOAuth 2.0MCP + RESTslack.com
AUDIT LOG · SLACKPOLICY: acme-support
09:41:07 · claude · u_8f2read
slack.list_canvases
List Slack Canvases (Deprecated)✓ allowed · 212ms
09:41:08 · claude · u_8f2read
slack.find_users
Find users✓ allowed · 164ms
09:41:09 · claude · u_8f2write
slack.create_canvas
Create Slack Canvas✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
slack.delete_file
Delete a file by ID✕ blocked · policy: deny
EVERY SLACK CALL, ON THE RECORD
01 · USE CASES

What agents do in Slack.

01

Post an update to a channel

Send a message to a project channel to notify the team once a task or deploy finishes.

02

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.

03

Confirm before archiving a channel

Archive a channel only after confirming its recent activity and members, since archiving removes it from the active list.

02 · ACTIONS

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

68

Look things up. Allowed by default.

  • slack.find_users
    Find users
  • slack.get_canvas
    Get Slack Canvas (Deprecated)
  • slack.search_all
    Search all content
  • slack.get_bot_user
    Fetch bot user information
  • slack.get_reminder
    Get reminder information
  • slack.find_channels
    Find channels
  • slack.get_call_info
    Retrieve call information
  • slack.list_canvases
    List Slack Canvases (Deprecated)
  • slack.list_all_users
    List all users
  • slack.list_reminders
    List reminders
  • slack.get_remote_file
    Get remote file
  • slack.list_auth_teams
    List authorized teams
  • slack.search_messages
    Search messages
  • slack.get_team_profile
    Retrieve team profile details
  • slack.list_admin_emoji
    List admin emoji
  • slack.list_user_groups
    List user groups
+ 52 MORE

write

78

Create and change things. Allow, or ask the user first.

  • slack.add_star
    Add a star to an item
  • slack.add_emoji
    Add emoji
  • slack.send_message
    Send message
  • slack.create_canvas
    Create Slack Canvas
  • slack.create_channel
    Create channel
  • slack.add_emoji_alias
    Add an emoji alias
  • slack.add_remote_file
    Add a remote file
  • slack.send_me_message
    Share a me message in a channel
  • slack.update_call_info
    Update call information
  • slack.create_a_reminder
    Create a reminder
  • slack.create_slack_list
    Create Slack List
  • slack.create_user_group
    Create a Slack user group
  • slack.update_slack_list
    Update Slack List
  • slack.update_user_group
    Update Slack user group
  • slack.update_remote_file
    Update an existing remote file
  • slack.add_call_participants
    Add call participants
+ 62 MORE

destructive

22

Delete, cancel or archive. Ask first, or deny outright.

  • slack.delete_file
    Delete a file by ID
  • slack.remove_star
    Remove a star from an item
  • slack.remove_emoji
    Remove emoji
  • slack.delete_canvas
    Delete Slack Canvas
  • slack.delete_channel
    Delete a public or private channel
  • slack.delete_reminder
    Delete a Slack reminder
  • slack.remove_remote_file
    Remove remote file
  • slack.delete_file_comment
    Delete file comment
  • slack.archive_conversation
    Archive a Slack conversation
  • slack.delete_slack_list_item
    Delete Slack List item
  • slack.delete_scheduled_message
    Delete scheduled chat message
  • slack.delete_slack_list_access
    Delete Slack List access
  • slack.remove_call_participants
    Remove call participants
  • slack.delete_user_profile_photo
    Delete user profile photo
  • slack.remove_reaction_from_item
    Remove reaction from item
  • slack.remove_user_from_workspace
    Remove user from workspace
+ 6 MORE
03 · HOW IT WORKS

Slack in three steps.

  1. 01Your users connect SlackThey sign in to Slack on Arc0 Connect, under your brand, and approve the access you ask for.
  2. 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.
  3. 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.
POLICY.TS
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
04 · AUTH AND DATA

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
05 · WORKS WITH

Use Slack from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Slack and Arc0, answered.

Q01

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.

Q02

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.

Q03

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.

Q04

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.

Q05

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.

Get started

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