Skip to content

Connectors · Email & messaging

Slack MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Slack and the rest of your systems. It gives your agent 334 Slack actions (122 reads, 159 writes and 53 that wait for a confirmation) and holds the Slack credential itself, so the agent never does. It paces Slack's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "slack.team_info",  intent: "check which Slack account is connected"}# Info — team · read · 1 upstream call
  • 334actionsin one signed file
  • 122readlook, never change
  • 159writecreate and update
  • 53wait for a yesdestructive, confirmed first

Set up

Connect Slack in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect Slack.

    Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • bot_tokenSlack bot token (xoxb-…)
    account { op: "connections.requirements", service: "slack" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "slack.team_info" }# info — team · read · 1 upstream callcheck { action: "slack.usergroups_create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Slack at a glance

Sign-in
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
bot_token
Limits we pace to
20 calls a minute, per connection
API covered
Slack API 1slack.com/api
Built from
Slack's documentation, read 15 September 2026docs.slack.dev
Service file
Version 2.0.0, signed (Ed25519)
Cached reads
122 of 122 reads, for up to an hour; a write clears what it affects
Ready-made plans
9 in the store
Shared entities
6, so ask can line Slack up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Slack.

334 actions in 16 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 122readlook, never change
  • 159writecreate and update
  • 53destructivewait for a confirmation
  1. Administration

    115

    41 read · 53 write · 21 destructive

    List — admin users · Get expiration — admin users · Set expiration — admin users · Lookup — admin conversations

  2. Chat

    73

    21 read · 41 write · 11 destructive

    List — conversations · History — conversations · Me message — chat · Post ephemeral — chat

  3. Files

    33

    9 read · 15 write · 9 destructive

    List — files · List — files remote · Get upload u r l external — files · Info — files

  4. Apps

    29

    13 read · 11 write · 5 destructive

    Info — apps permissions · Create — apps manifest · List — apps permissions resources · List — apps permissions scopes

  5. Automation

    19

    5 read · 11 write · 3 destructive

    Update step — workflows · List — functions workflows steps · Add — workflows featured · List — workflows featured

  6. People

    13

    8 read · 4 write · 1 destructive

    List — users · Lookup — users discoverableContacts · Get presence — users · Info — users

  7. Auth

    13

    3 read · 8 write · 2 destructive

    Test — auth · Access — oauth · Token — oauth · User info — openid connect

  8. Tenant

    9

    8 read · 0 write · 1 destructive

    Access logs — team · Info — team · Integration logs — team · List — team externalTeams

8 more areas · 30 actions
  • Groups 7
  • Assistant 7
  • UI 6
  • Search 3
  • Entities 3
  • Events 2
  • Administration 1
  • Diagnostics 1

Slack's own MCP server

Slack's MCP server, or actionlake?

Slack runs a remote MCP server at mcp.slack.com. A client must be backed by a registered Slack app, published in Slack's directory or internal to your workspace, and signs in with OAuth.

Use Slack's server when one person wants to work in Slack from their own AI client. Use actionlake when you also want Slack behind the same endpoint as your other systems: a key per agent with allowed actions and a spending cap, a named person's approval before destructive actions, a sealed record of every call, and one ask across Slack and another system.

Source: Slack's documentation, checked 22 October 2026.

Top actions

The Slack API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 168 of Slack's 175 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
slack.users_listList — usersCalls the Slack Web API method `users.list`.readidentity.user.list474 connectors
slack.usergroups_listList — usergroupsCalls the Slack Web API method `usergroups.list`.readidentity.group.list262 connectors
slack.users_discoverablecontacts_lookupLookup — users discoverableContactsCalls the Slack Web API method `users.discoverableContacts.lookup`.readidentity.user.list474 connectors
slack.usergroups_createCreate — usergroupsCalls the Slack Web API method `usergroups.create`.writeidentity.group.create205 connectors
slack.usergroups_enableEnable — usergroupsCalls the Slack Web API method `usergroups.enable`.writeidentity.group.update189 connectors
slack.usergroups_updateUpdate — usergroupsusergroups.users.listwriteidentity.group.update189 connectors
slack.conversations_listList — conversationsconversations.listConnectInvitesreadcomm.channel.list27 connectors
slack.files_listList — filesCalls the Slack Web API method `files.list`.readcontent.file.list77 connectors
slack.users_identityIdentity — usersCalls the Slack Web API method `users.identity`.readidentity.current_user.get307 connectors
slack.conversations_historyHistory — conversationscan also be used to find a single message from the archive.readcomm.message.list42 connectors
slack.search_messagesMessages — searchCalls the Slack Web API method `search.messages`.readcomm.message.search5 connectors
slack.chat_deleteDelete — chatchat.deleteScheduledMessagedestructivecomm.message.delete27 connectors

Try it

Prompts to paste into Claude.

Each one names the Slack actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which Slack files changed this week, and who changed them?

    callsslack.files_list

  2. Planwrite

    Create a project channel and set it up in Slack.

    callsslack.conversations_createslack.conversations_setpurposeslack.admin_conversations_inviteslack.conversations_canvases_createslack.chat_postmessage+1 more

  3. Plandestructive

    Offboard a departing person from Slack in Slack. Ask me before anything is sent or changed.

    callsslack.users_lookupbyemailslack.users_profile_getslack.users_conversationsslack.admin_users_session_clearsettingsslack.admin_users_session_reset+1 more

  4. Writewrite

    Create — usergroups in Slack. Show me exactly what you will send before you save it.

    callsslack.usergroups_create

The plan store

Ready-made plans for Slack.

9 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.

  1. Review and approve pending app install requests

    Use it when Admins need to work through the queue of Slack app install requests waiting for a decision.

    A person decidesApprove number of app requests pending Slack app install requests for team team id, with the scopes each app asked for.

    Effect
    write
    Steps
    4 · loops
    Needs
    team id
    Install
    slack-approve-app-requests
  2. Archive channels with no recent activity

    Use it when Someone asks to clean up dormant Slack channels that nobody has posted in for months.

    A person decidesArchive number of channels Slack channels that have had no messages since inactive before.

    Effect
    write
    Steps
    4 · loops
    Needs
    inactive before and team ids
    Install
    slack-archive-stale-channels
  3. Post a weekly activity report for key channels

    Use it when Someone wants a recurring digest of how busy a set of Slack channels has been.

    Effect
    write
    Steps
    4 · loops
    Needs
    channels, oldest ts and report channel
    Install
    slack-channel-activity-report
  4. Export a Slack list and share the download

    Use it when Someone asks for the contents of a Slack list as a file they can download.

    Effect
    write
    Steps
    4
    Needs
    channel, job id and list id
    Install
    slack-export-list-to-file
  5. Search for a topic and escalate what turns up

    Use it when Someone needs to know where a phrase, incident name or customer is being discussed in Slack.

    Effect
    write
    Steps
    4 · loops
    Needs
    escalation channel and query
    Install
    slack-find-and-escalate-mentions
  6. Create a project channel and set it up

    Use it when A new project or workstream is starting and needs its Slack home set up in one go.

    Effect
    write
    Steps
    6
    Needs
    brief, member ids, name and purpose
    Install
    slack-launch-project-channel
  7. Update a user group's members and channels

    Use it when A team roster changed and the matching Slack user group needs to match it again.

    A person decidesReplace the members of user group usergroup (currently users) and add it to channel ids.

    Effect
    write
    Steps
    6
    Needs
    channel ids, team id, user ids and usergroup
    Install
    slack-usergroup-membership-sync
  8. Offboard a departing person from Slack

    Use it when An employee is leaving and their Slack access needs to be wound down in one pass.

    A person decidesOffboard real name (email) from Slack: clear sessions, force sign-out and set expiry expiration ts.

    Effect
    destructive
    Steps
    7
    Needs
    email, expiration ts and team id
    Install
    slack-offboard-user
  9. Pull an app's access after a security review

    Use it when A security review decided a Slack app must lose its access to the org.

    A person decidesUninstall app app id from team team id and strip all of its permissions. This breaks anything relying on it.

    Effect
    destructive
    Steps
    7
    Needs
    app id and team id
    Install
    slack-remove-app-access
install a plan
account { op: "plans.install", slug: "slack-approve-app-requests" }
# then ask for it by name; a schedule can run it on a timetable

Governance for Slack

Destructive actions wait for a yes.

53 Slack actions are destructive. The first 10:

  • Delete — chatslack.chat_delete
  • Delete scheduled message — chatslack.chat_deletescheduledmessage
  • Delete — filesslack.files_delete
  • Remove — files remoteslack.files_remote_remove
  • Delete photo — usersslack.users_deletephoto
  • Uninstall — appsslack.apps_uninstall
  • Remove — admin usersslack.admin_users_remove
  • Close — conversationsslack.conversations_close
  • Delete — admin conversationsslack.admin_conversations_delete
  • Bulk delete — admin conversationsslack.admin_conversations_bulkdelete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

doslack.chat_deleteconfirm_policy: human

Delete — chat?

intent: the user asked me to delete — chat

run suspended · waiting for a named person · key slack-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "slack-agent",  allowed_actions: ["slack.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "slack.chat_delete", approver: "[email protected]" },    { match: "slack.chat_deletescheduledmessage", approver: "[email protected]" },    { match: "slack.files_delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Slack only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Slack costs on actionlake.

Every Slack action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Slack refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 334 Slack actions
  • 334actions pageeach page of a long list is one call
  • 122reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Slack action.

334 actions by area: the id your agent calls, what it does, and its effect.

Administration115
  • slack.admin_analytics_getfileGet file — admin analyticsread
  • slack.admin_analytics_messages_activityActivity — admin analytics messagesread
  • slack.admin_analytics_messages_metadataMetadata — admin analytics messagesread
  • slack.admin_apps_activities_listList — admin apps activitiesread
  • slack.admin_apps_approveApprove — admin appswrite
  • slack.admin_apps_approved_listList — admin apps approvedread
  • slack.admin_apps_clearresolutionClear resolution — admin appsdestructive
  • slack.admin_apps_config_lookupLookup — admin apps configread
  • slack.admin_apps_config_setSet — admin apps configwrite
  • slack.admin_apps_mcp_servers_listList — admin apps mcp serversread
  • slack.admin_apps_mcp_servers_permissions_listList — admin apps mcp servers permissionsread
  • slack.admin_apps_mcp_servers_permissions_setSet — admin apps mcp servers permissionswrite
  • slack.admin_apps_permissions_addAdd — admin apps permissionswrite
  • slack.admin_apps_permissions_listList — admin apps permissionsread
  • slack.admin_apps_permissions_removeRemove — admin apps permissionsdestructive
  • slack.admin_apps_permissions_setSet — admin apps permissionswrite
  • slack.admin_apps_requests_cancelCancel — admin apps requestsdestructive
  • slack.admin_apps_requests_listList — admin apps requestsread
  • slack.admin_apps_restrictRestrict — admin appswrite
  • slack.admin_apps_restricted_listList — admin apps restrictedread
  • slack.admin_apps_uninstallUninstall — admin appsdestructive
  • slack.admin_audit_anomaly_allow_getitemGet item — admin audit anomaly allowread
  • slack.admin_audit_anomaly_allow_updateitemUpdate item — admin audit anomaly allowwrite
  • slack.admin_auth_policy_assignentitiesAssign entities — admin auth policywrite
  • slack.admin_auth_policy_getentitiesGet entities — admin auth policyread
  • slack.admin_auth_policy_removeentitiesRemove entities — admin auth policydestructive
  • slack.admin_barriers_createCreate — admin barrierswrite
  • slack.admin_barriers_deleteDelete — admin barriersdestructive
  • slack.admin_barriers_listList — admin barriersread
  • slack.admin_barriers_updateUpdate — admin barrierswrite
  • slack.admin_conversations_archiveArchive — admin conversationswrite
  • slack.admin_conversations_bulkarchiveBulk archive — admin conversationswrite
  • slack.admin_conversations_bulkdeleteBulk delete — admin conversationsdestructive
  • slack.admin_conversations_bulkmoveBulk move — admin conversationswrite
  • slack.admin_conversations_bulksetexcludefromslackaiBulk set exclude from slack ai — admin conversationswrite
  • slack.admin_conversations_bulksetpropertiesBulk set properties — admin conversationswrite
  • slack.admin_conversations_converttoprivateConvert to private — admin conversationswrite
  • slack.admin_conversations_converttopublicConvert to public — admin conversationswrite
  • slack.admin_conversations_createCreate — admin conversationswrite
  • slack.admin_conversations_createforobjectsCreate for objects — admin conversationswrite
  • slack.admin_conversations_deleteDelete — admin conversationsdestructive
  • slack.admin_conversations_disconnectsharedDisconnect shared — admin conversationswrite
  • slack.admin_conversations_ekm_listoriginalconnectedchannelinfoList original connected channel info — admin conversations ekmread
  • slack.admin_conversations_getconversationprefsGet conversation prefs — admin conversationsread
  • slack.admin_conversations_getcustomretentionGet custom retention — admin conversationsread
  • slack.admin_conversations_getteamsGet teams — admin conversationsread
  • slack.admin_conversations_inviteInvite — admin conversationswrite
  • slack.admin_conversations_linkobjectsLink objects — admin conversationswrite
  • slack.admin_conversations_lookupLookup — admin conversationsread
  • slack.admin_conversations_removecustomretentionRemove custom retention — admin conversationsdestructive
  • slack.admin_conversations_renameRename — admin conversationswrite
  • slack.admin_conversations_restrictaccess_addgroupAdd group — admin conversations restrictAccesswrite
  • slack.admin_conversations_restrictaccess_listgroupsList groups — admin conversations restrictAccessread
  • slack.admin_conversations_restrictaccess_removegroupRemove group — admin conversations restrictAccessdestructive
  • slack.admin_conversations_searchSearch — admin conversationsread
  • slack.admin_conversations_setconversationprefsSet conversation prefs — admin conversationswrite
  • slack.admin_conversations_setcustomretentionSet custom retention — admin conversationswrite
  • slack.admin_conversations_setteamsSet teams — admin conversationswrite
  • slack.admin_conversations_unarchiveUnarchive — admin conversationswrite
  • slack.admin_conversations_unlinkobjectsUnlink objects — admin conversationsdestructive
  • slack.admin_emoji_addAdd — admin emojiwrite
  • slack.admin_emoji_addaliasAdd alias — admin emojiwrite
  • slack.admin_emoji_listList — admin emojiread
  • slack.admin_emoji_removeRemove — admin emojidestructive
  • slack.admin_emoji_renameRename — admin emojiwrite
  • slack.admin_functions_listList — admin functionsread
  • slack.admin_functions_permissions_lookupLookup — admin functions permissionsread
  • slack.admin_functions_permissions_setSet — admin functions permissionswrite
  • slack.admin_inviterequests_approveApprove — admin inviteRequestswrite
  • slack.admin_inviterequests_approved_listList — admin inviteRequests approvedread
  • slack.admin_inviterequests_denied_listList — admin inviteRequests deniedread
  • slack.admin_inviterequests_denyDeny — admin inviteRequestswrite
  • slack.admin_inviterequests_listList — admin inviteRequestsread
  • slack.admin_roles_addassignmentsAdd assignments — admin roleswrite
  • slack.admin_roles_listassignmentsList assignments — admin rolesread
  • slack.admin_roles_removeassignmentsRemove assignments — admin rolesdestructive
  • slack.admin_teams_admins_listList — admin teams adminsread
  • slack.admin_teams_createCreate — admin teamswrite
  • slack.admin_teams_listList — admin teamsread
  • slack.admin_teams_owners_listList — admin teams ownersread
  • slack.admin_teams_settings_infoInfo — admin teams settingsread
  • slack.admin_teams_settings_setdefaultchannelsSet default channels — admin teams settingswrite
  • slack.admin_teams_settings_setdescriptionSet description — admin teams settingswrite
  • slack.admin_teams_settings_setdiscoverabilitySet discoverability — admin teams settingswrite
  • slack.admin_teams_settings_seticonSet icon — admin teams settingswrite
  • slack.admin_teams_settings_setnameSet name — admin teams settingswrite
  • slack.admin_usergroups_addchannelsAdd channels — admin usergroupswrite
  • slack.admin_usergroups_addteamsAdd teams — admin usergroupswrite
  • slack.admin_usergroups_listchannelsList channels — admin usergroupsread
  • slack.admin_usergroups_removechannelsRemove channels — admin usergroupsdestructive
  • slack.admin_usergroups_removeteamsRemove teams — admin usergroupsdestructive
  • slack.admin_users_assignAssign — admin userswrite
  • slack.admin_users_getexpirationGet expiration — admin usersread
  • slack.admin_users_inviteInvite — admin userswrite
  • slack.admin_users_listList — admin usersread
  • slack.admin_users_removeRemove — admin usersdestructive
  • slack.admin_users_session_clearsettingsClear settings — admin users sessiondestructive
  • slack.admin_users_session_getsettingsGet settings — admin users sessionread
  • slack.admin_users_session_invalidateInvalidate — admin users sessiondestructive
  • slack.admin_users_session_listList — admin users sessionread
  • slack.admin_users_session_resetReset — admin users sessiondestructive
  • slack.admin_users_session_resetbulkReset bulk — admin users sessiondestructive
  • slack.admin_users_session_setsettingsSet settings — admin users sessionwrite
  • slack.admin_users_setadminSet admin — admin userswrite
  • slack.admin_users_setexpirationSet expiration — admin userswrite
  • slack.admin_users_setownerSet owner — admin userswrite
  • slack.admin_users_setregularSet regular — admin userswrite
  • slack.admin_users_unsupportedversions_exportExport — admin users unsupportedVersionsread
  • slack.admin_workflows_collaborators_addAdd — admin workflows collaboratorswrite
  • slack.admin_workflows_collaborators_removeRemove — admin workflows collaboratorsdestructive
  • slack.admin_workflows_permissions_lookupLookup — admin workflows permissionsread
  • slack.admin_workflows_searchSearch — admin workflowsread
  • slack.admin_workflows_triggers_types_permissions_lookupLookup — admin workflows triggers types permissionsread
  • slack.admin_workflows_triggers_types_permissions_setSet — admin workflows triggers types permissionswrite
  • slack.admin_workflows_unpublishUnpublish — admin workflowswrite
Chat73
  • slack.bookmarks_addAdd — bookmarkswrite
  • slack.bookmarks_editEdit — bookmarkswrite
  • slack.bookmarks_listList — bookmarksread
  • slack.bookmarks_removeRemove — bookmarksdestructive
  • slack.bots_infoInfo — botsread
  • slack.calls_addAdd — callswrite
  • slack.calls_endEnd — callswrite
  • slack.calls_infoInfo — callsread
  • slack.calls_participants_addAdd — calls participantswrite
  • slack.calls_participants_removeRemove — calls participantsdestructive
  • slack.calls_updateUpdate — callswrite
  • slack.chat_appendstreamAppend stream — chatwrite
  • slack.chat_deleteDelete — chatdestructive
  • slack.chat_deletescheduledmessageDelete scheduled message — chatdestructive
  • slack.chat_getpermalinkGet permalink — chatread
  • slack.chat_memessageMe message — chatwrite
  • slack.chat_postephemeralPost ephemeral — chatwrite
  • slack.chat_postmessagePost message — chatwrite
  • slack.chat_scheduledmessages_listList — chat scheduledMessagesread
  • slack.chat_schedulemessageSchedule message — chatwrite
  • slack.chat_startstreamStart stream — chatwrite
  • slack.chat_stopstreamStop stream — chatwrite
  • slack.chat_unfurlUnfurl — chatwrite
  • slack.chat_updateUpdate — chatwrite
  • slack.conversations_acceptsharedinviteAccept shared invite — conversationswrite
  • slack.conversations_approvesharedinviteApprove shared invite — conversationswrite
  • slack.conversations_archiveArchive — conversationswrite
  • slack.conversations_canvases_createCreate — conversations canvaseswrite
  • slack.conversations_closeClose — conversationsdestructive
  • slack.conversations_createCreate — conversationswrite
  • slack.conversations_declinesharedinviteDecline shared invite — conversationswrite
  • slack.conversations_externalinvitepermissions_setSet — conversations externalInvitePermissionswrite
  • slack.conversations_historyHistory — conversationsread
  • slack.conversations_infoInfo — conversationsread
  • slack.conversations_inviteInvite — conversationswrite
  • slack.conversations_invitesharedInvite shared — conversationswrite
  • slack.conversations_joinJoin — conversationswrite
  • slack.conversations_kickKick — conversationsdestructive
  • slack.conversations_leaveLeave — conversationsdestructive
  • slack.conversations_listList — conversationsread
  • slack.conversations_listconnectinvitesList connect invites — conversationsread
  • slack.conversations_markMark — conversationswrite
  • slack.conversations_membersMembers — conversationsread
  • slack.conversations_openOpen — conversationswrite
  • slack.conversations_renameRename — conversationswrite
  • slack.conversations_repliesReplies — conversationsread
  • slack.conversations_requestsharedinvite_approveApprove — conversations requestSharedInvitewrite
  • slack.conversations_requestsharedinvite_denyDeny — conversations requestSharedInvitewrite
  • slack.conversations_requestsharedinvite_listList — conversations requestSharedInviteread
  • slack.conversations_setpurposeSet purpose — conversationswrite
  • slack.conversations_settopicSet topic — conversationswrite
  • slack.conversations_unarchiveUnarchive — conversationswrite
  • slack.dnd_enddndEnd dnd — dndwrite
  • slack.dnd_endsnoozeEnd snooze — dndwrite
  • slack.dnd_infoInfo — dndread
  • slack.dnd_setsnoozeSet snooze — dndwrite
  • slack.dnd_teaminfoTeam info — dndread
  • slack.emoji_listList — emojiread
  • slack.pins_addAdd — pinswrite
  • slack.pins_listList — pinsread
  • slack.pins_removeRemove — pinsdestructive
  • slack.reactions_addAdd — reactionswrite
  • slack.reactions_getGet — reactionsread
  • slack.reactions_listList — reactionsread
  • slack.reactions_removeRemove — reactionsdestructive
  • slack.reminders_addAdd — reminderswrite
  • slack.reminders_completeComplete — reminderswrite
  • slack.reminders_deleteDelete — remindersdestructive
  • slack.reminders_infoInfo — remindersread
  • slack.reminders_listList — remindersread
  • slack.stars_addAdd — starswrite
  • slack.stars_listList — starsread
  • slack.stars_removeRemove — starsdestructive
Files33
  • slack.canvases_access_deleteDelete — canvases accessdestructive
  • slack.canvases_access_setSet — canvases accesswrite
  • slack.canvases_createCreate — canvaseswrite
  • slack.canvases_deleteDelete — canvasesdestructive
  • slack.canvases_editEdit — canvaseswrite
  • slack.canvases_sections_lookupLookup — canvases sectionsread
  • slack.files_comments_deleteDelete — files commentsdestructive
  • slack.files_completeuploadexternalComplete upload external — fileswrite
  • slack.files_deleteDelete — filesdestructive
  • slack.files_getuploadurlexternalGet upload u r l external — filesread
  • slack.files_infoInfo — filesread
  • slack.files_listList — filesread
  • slack.files_remote_addAdd — files remotewrite
  • slack.files_remote_infoInfo — files remoteread
  • slack.files_remote_listList — files remoteread
  • slack.files_remote_removeRemove — files remotedestructive
  • slack.files_remote_shareShare — files remotewrite
  • slack.files_remote_updateUpdate — files remotewrite
  • slack.files_revokepublicurlRevoke public u r l — filesdestructive
  • slack.files_sharedpublicurlShared public u r l — fileswrite
  • slack.files_uploadUpload — fileswrite
  • slack.slacklists_access_deleteDelete — slackLists accessdestructive
  • slack.slacklists_access_setSet — slackLists accesswrite
  • slack.slacklists_createCreate — slackListswrite
  • slack.slacklists_download_getGet — slackLists downloadread
  • slack.slacklists_download_startStart — slackLists downloadwrite
  • slack.slacklists_items_createCreate — slackLists itemswrite
  • slack.slacklists_items_deleteDelete — slackLists itemsdestructive
  • slack.slacklists_items_deletemultipleDelete multiple — slackLists itemsdestructive
  • slack.slacklists_items_infoInfo — slackLists itemsread
  • slack.slacklists_items_listList — slackLists itemsread
  • slack.slacklists_items_updateUpdate — slackLists itemswrite
  • slack.slacklists_updateUpdate — slackListswrite
Apps29
  • slack.apps_activities_listList — apps activitiesread
  • slack.apps_auth_external_deleteDelete — apps auth externaldestructive
  • slack.apps_auth_external_getGet — apps auth externalread
  • slack.apps_connections_openOpen — apps connectionswrite
  • slack.apps_datastore_bulkdeleteBulk delete — apps datastoredestructive
  • slack.apps_datastore_bulkgetBulk get — apps datastoreread
  • slack.apps_datastore_bulkputBulk put — apps datastorewrite
  • slack.apps_datastore_countCount — apps datastoreread
  • slack.apps_datastore_deleteDelete — apps datastoredestructive
  • slack.apps_datastore_getGet — apps datastoreread
  • slack.apps_datastore_putPut — apps datastorewrite
  • slack.apps_datastore_queryQuery — apps datastoreread
  • slack.apps_datastore_updateUpdate — apps datastorewrite
  • slack.apps_event_authorizations_listList — apps event authorizationsread
  • slack.apps_icon_setSet — apps iconwrite
  • slack.apps_managed_permissions_setSet — apps managed permissionswrite
  • slack.apps_manifest_createCreate — apps manifestwrite
  • slack.apps_manifest_deleteDelete — apps manifestdestructive
  • slack.apps_manifest_exportExport — apps manifestread
  • slack.apps_manifest_updateUpdate — apps manifestwrite
  • slack.apps_manifest_validateValidate — apps manifestread
  • slack.apps_permissions_infoInfo — apps permissionsread
  • slack.apps_permissions_requestRequest — apps permissionswrite
  • slack.apps_permissions_resources_listList — apps permissions resourcesread
  • slack.apps_permissions_scopes_listList — apps permissions scopesread
  • slack.apps_permissions_users_listList — apps permissions usersread
  • slack.apps_permissions_users_requestRequest — apps permissions userswrite
  • slack.apps_uninstallUninstall — appsdestructive
  • slack.apps_user_connection_updateUpdate — apps user connectionwrite
Automation19
  • slack.functions_completeerrorComplete error — functionswrite
  • slack.functions_completesuccessComplete success — functionswrite
  • slack.functions_distributions_permissions_addAdd — functions distributions permissionswrite
  • slack.functions_distributions_permissions_listList — functions distributions permissionsread
  • slack.functions_distributions_permissions_removeRemove — functions distributions permissionsdestructive
  • slack.functions_distributions_permissions_setSet — functions distributions permissionswrite
  • slack.functions_workflows_steps_listList — functions workflows stepsread
  • slack.functions_workflows_steps_responses_exportExport — functions workflows steps responsesread
  • slack.workflows_featured_addAdd — workflows featuredwrite
  • slack.workflows_featured_listList — workflows featuredread
  • slack.workflows_featured_removeRemove — workflows featureddestructive
  • slack.workflows_featured_setSet — workflows featuredwrite
  • slack.workflows_stepcompletedStep completed — workflowswrite
  • slack.workflows_stepfailedStep failed — workflowswrite
  • slack.workflows_triggers_permissions_addAdd — workflows triggers permissionswrite
  • slack.workflows_triggers_permissions_listList — workflows triggers permissionsread
  • slack.workflows_triggers_permissions_removeRemove — workflows triggers permissionsdestructive
  • slack.workflows_triggers_permissions_setSet — workflows triggers permissionswrite
  • slack.workflows_updatestepUpdate step — workflowswrite
People13
  • slack.users_conversationsConversations — usersread
  • slack.users_deletephotoDelete photo — usersdestructive
  • slack.users_discoverablecontacts_lookupLookup — users discoverableContactsread
  • slack.users_getpresenceGet presence — usersread
  • slack.users_identityIdentity — usersread
  • slack.users_infoInfo — usersread
  • slack.users_listList — usersread
  • slack.users_lookupbyemailLookup by email — usersread
  • slack.users_profile_getGet — users profileread
  • slack.users_profile_setSet — users profilewrite
  • slack.users_setactiveSet active — userswrite
  • slack.users_setphotoSet photo — userswrite
  • slack.users_setpresenceSet presence — userswrite
Auth13
  • slack.auth_revokeRevoke — authdestructive
  • slack.auth_teams_listList — auth teamsread
  • slack.auth_testTest — authread
  • slack.oauth_accessAccess — oauthwrite
  • slack.oauth_tokenToken — oauthwrite
  • slack.oauth_v2_accessAccess — oauth v2write
  • slack.oauth_v2_beginshorttokenrotationBegin short token rotation — oauth v2write
  • slack.oauth_v2_completeshorttokenrotationComplete short token rotation — oauth v2write
  • slack.oauth_v2_exchangeExchange — oauth v2write
  • slack.oauth_v2_user_accessAccess — oauth v2 userwrite
  • slack.openid_connect_tokenToken — openid connectwrite
  • slack.openid_connect_userinfoUser info — openid connectread
  • slack.tooling_tokens_rotateRotate — tooling tokensdestructive
Tenant9
  • slack.team_accesslogsAccess logs — teamread
  • slack.team_billableinfoBillable info — teamread
  • slack.team_billing_infoInfo — team billingread
  • slack.team_externalteams_disconnectDisconnect — team externalTeamsdestructive
  • slack.team_externalteams_listList — team externalTeamsread
  • slack.team_infoInfo — teamread
  • slack.team_integrationlogsIntegration logs — teamread
  • slack.team_preferences_listList — team preferencesread
  • slack.team_profile_getGet — team profileread
Groups7
  • slack.usergroups_createCreate — usergroupswrite
  • slack.usergroups_disableDisable — usergroupswrite
  • slack.usergroups_enableEnable — usergroupswrite
  • slack.usergroups_listList — usergroupsread
  • slack.usergroups_updateUpdate — usergroupswrite
  • slack.usergroups_users_listList — usergroups usersread
  • slack.usergroups_users_updateUpdate — usergroups userswrite
Assistant7
  • slack.agents_sessions_renameRename — agents sessionswrite
  • slack.agents_sessions_setstatusSet status — agents sessionswrite
  • slack.assistant_search_contextContext — assistant searchread
  • slack.assistant_search_infoInfo — assistant searchread
  • slack.assistant_threads_setstatusSet status — assistant threadswrite
  • slack.assistant_threads_setsuggestedpromptsSet suggested prompts — assistant threadswrite
  • slack.assistant_threads_settitleSet title — assistant threadswrite
UI6
  • slack.blocks_validateValidate — blocksread
  • slack.dialog_openOpen — dialogwrite
  • slack.views_openOpen — viewswrite
  • slack.views_publishPublish — viewswrite
  • slack.views_pushPush — viewswrite
  • slack.views_updateUpdate — viewswrite
Search3
  • slack.search_allAll — searchread
  • slack.search_filesFiles — searchread
  • slack.search_messagesMessages — searchread
Entities3
  • slack.entity_acknowledgecommentactionAcknowledge comment action — entitywrite
  • slack.entity_presentcommentsPresent comments — entityread
  • slack.entity_presentdetailsPresent details — entityread
Events2
  • slack.rtm_connectConnect — rtmread
  • slack.rtm_startStart — rtmread
Administration1
  • slack.migration_exchangeExchange — migrationread
Diagnostics1
  • slack.api_testTest — apiread

Questions

The Slack MCP server, answered.

Is there a Slack MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 334 Slack actions across administration, chat, files and apps, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Slack.

Does Slack have its own MCP server?

Slack runs a remote MCP server at mcp.slack.com. A client must be backed by a registered Slack app, published in Slack's directory or internal to your workspace, and signs in with OAuth. (Slack's documentation, checked 22 October 2026.) Use Slack's server when one person wants to work in Slack from their own AI client. Use actionlake when you also want Slack behind the same endpoint as your other systems: a key per agent with allowed actions and a spending cap, a named person's approval before destructive actions, a sealed record of every call, and one ask across Slack and another system.

What do I need to connect Slack?

Slack bot token (xoxb-…). The free call account { op: "connections.requirements", service: "slack" } lists exactly what to paste.

Can an AI agent delete or change things in Slack?

Only if its key allows it, and only with an explicit confirmation. 53 Slack actions are destructive, including delete — chat, delete scheduled message — chat and delete — files. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my Slack API limit?

actionlake paces every call to the limits in the Slack service file: 20 calls a minute per connection. Repeated reads are answered from cache (122 Slack actions can be), which never reaches Slack.

What does a Slack action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (334 Slack actions page). Cache hits, searches, dry runs and calls Slack refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which Slack API does it cover?

The Slack API 1 at slack.com/api. It is built from Slack's documentation as read on 15 September 2026. 334 actions in 16 areas, each one in the signed service file (version 2.0.0).

Does actionlake keep my Slack data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Slack credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent Slack today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.