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/mcpdo { 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.
- 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 - 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 - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates 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 1
slack.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
Administration
11541 read · 53 write · 21 destructive
List — admin users · Get expiration — admin users · Set expiration — admin users · Lookup — admin conversations
Chat
7321 read · 41 write · 11 destructive
List — conversations · History — conversations · Me message — chat · Post ephemeral — chat
Files
339 read · 15 write · 9 destructive
List — files · List — files remote · Get upload u r l external — files · Info — files
Apps
2913 read · 11 write · 5 destructive
Info — apps permissions · Create — apps manifest · List — apps permissions resources · List — apps permissions scopes
Automation
195 read · 11 write · 3 destructive
Update step — workflows · List — functions workflows steps · Add — workflows featured · List — workflows featured
People
138 read · 4 write · 1 destructive
List — users · Lookup — users discoverableContacts · Get presence — users · Info — users
Auth
133 read · 8 write · 2 destructive
Test — auth · Access — oauth · Token — oauth · User info — openid connect
Tenant
98 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.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
slack.users_listList — users | Calls the Slack Web API method `users.list`. | read | identity.user.list474 connectors |
slack.usergroups_listList — usergroups | Calls the Slack Web API method `usergroups.list`. | read | identity.group.list262 connectors |
slack.users_discoverablecontacts_lookupLookup — users discoverableContacts | Calls the Slack Web API method `users.discoverableContacts.lookup`. | read | identity.user.list474 connectors |
slack.usergroups_createCreate — usergroups | Calls the Slack Web API method `usergroups.create`. | write | identity.group.create205 connectors |
slack.usergroups_enableEnable — usergroups | Calls the Slack Web API method `usergroups.enable`. | write | identity.group.update189 connectors |
slack.usergroups_updateUpdate — usergroups | usergroups.users.list | write | identity.group.update189 connectors |
slack.conversations_listList — conversations | conversations.listConnectInvites | read | comm.channel.list27 connectors |
slack.files_listList — files | Calls the Slack Web API method `files.list`. | read | content.file.list77 connectors |
slack.users_identityIdentity — users | Calls the Slack Web API method `users.identity`. | read | identity.current_user.get307 connectors |
slack.conversations_historyHistory — conversations | can also be used to find a single message from the archive. | read | comm.message.list42 connectors |
slack.search_messagesMessages — search | Calls the Slack Web API method `search.messages`. | read | comm.message.search5 connectors |
slack.chat_deleteDelete — chat | chat.deleteScheduledMessage | destructive | comm.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.
- Readread
Which Slack files changed this week, and who changed them?
calls
slack.files_list - Planwrite
Create a project channel and set it up in Slack.
calls
slack.conversations_createslack.conversations_setpurposeslack.admin_conversations_inviteslack.conversations_canvases_createslack.chat_postmessage+1 more - Plandestructive
Offboard a departing person from Slack in Slack. Ask me before anything is sent or changed.
calls
slack.users_lookupbyemailslack.users_profile_getslack.users_conversationsslack.admin_users_session_clearsettingsslack.admin_users_session_reset+1 more - Writewrite
Create — usergroups in Slack. Show me exactly what you will send before you save it.
calls
slack.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.
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 decides
Approve number of app requests pending Slack app install requests for team team id, with the scopes each app asked for.
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 decides
Archive number of channels Slack channels that have had no messages since inactive before.
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.
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.
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.
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.
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 decides
Replace the members of user group usergroup (currently users) and add it to channel ids.
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 decides
Offboard real name (email) from Slack: clear sessions, force sign-out and set expiry expiration ts.
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 decides
Uninstall app app id from team team id and strip all of its permissions. This breaks anything relying on it.
account { op: "plans.install", slug: "slack-approve-app-requests" }
# then ask for it by name; a schedule can run it on a timetableGovernance for Slack
Destructive actions wait for a yes.
53 Slack actions are destructive. The first 10:
- Delete — chat
slack.chat_delete - Delete scheduled message — chat
slack.chat_deletescheduledmessage - Delete — files
slack.files_delete - Remove — files remote
slack.files_remote_remove - Delete photo — users
slack.users_deletephoto - Uninstall — apps
slack.apps_uninstall - Remove — admin users
slack.admin_users_remove - Close — conversations
slack.conversations_close - Delete — admin conversations
slack.admin_conversations_delete - Bulk delete — admin conversations
slack.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.
Delete — chat?
intent: the user asked me to delete — chat
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]" } ]}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
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 analyticsreadslack.admin_analytics_messages_activityActivity — admin analytics messagesreadslack.admin_analytics_messages_metadataMetadata — admin analytics messagesreadslack.admin_apps_activities_listList — admin apps activitiesreadslack.admin_apps_approveApprove — admin appswriteslack.admin_apps_approved_listList — admin apps approvedreadslack.admin_apps_clearresolutionClear resolution — admin appsdestructiveslack.admin_apps_config_lookupLookup — admin apps configreadslack.admin_apps_config_setSet — admin apps configwriteslack.admin_apps_mcp_servers_listList — admin apps mcp serversreadslack.admin_apps_mcp_servers_permissions_listList — admin apps mcp servers permissionsreadslack.admin_apps_mcp_servers_permissions_setSet — admin apps mcp servers permissionswriteslack.admin_apps_permissions_addAdd — admin apps permissionswriteslack.admin_apps_permissions_listList — admin apps permissionsreadslack.admin_apps_permissions_removeRemove — admin apps permissionsdestructiveslack.admin_apps_permissions_setSet — admin apps permissionswriteslack.admin_apps_requests_cancelCancel — admin apps requestsdestructiveslack.admin_apps_requests_listList — admin apps requestsreadslack.admin_apps_restrictRestrict — admin appswriteslack.admin_apps_restricted_listList — admin apps restrictedreadslack.admin_apps_uninstallUninstall — admin appsdestructiveslack.admin_audit_anomaly_allow_getitemGet item — admin audit anomaly allowreadslack.admin_audit_anomaly_allow_updateitemUpdate item — admin audit anomaly allowwriteslack.admin_auth_policy_assignentitiesAssign entities — admin auth policywriteslack.admin_auth_policy_getentitiesGet entities — admin auth policyreadslack.admin_auth_policy_removeentitiesRemove entities — admin auth policydestructiveslack.admin_barriers_createCreate — admin barrierswriteslack.admin_barriers_deleteDelete — admin barriersdestructiveslack.admin_barriers_listList — admin barriersreadslack.admin_barriers_updateUpdate — admin barrierswriteslack.admin_conversations_archiveArchive — admin conversationswriteslack.admin_conversations_bulkarchiveBulk archive — admin conversationswriteslack.admin_conversations_bulkdeleteBulk delete — admin conversationsdestructiveslack.admin_conversations_bulkmoveBulk move — admin conversationswriteslack.admin_conversations_bulksetexcludefromslackaiBulk set exclude from slack ai — admin conversationswriteslack.admin_conversations_bulksetpropertiesBulk set properties — admin conversationswriteslack.admin_conversations_converttoprivateConvert to private — admin conversationswriteslack.admin_conversations_converttopublicConvert to public — admin conversationswriteslack.admin_conversations_createCreate — admin conversationswriteslack.admin_conversations_createforobjectsCreate for objects — admin conversationswriteslack.admin_conversations_deleteDelete — admin conversationsdestructiveslack.admin_conversations_disconnectsharedDisconnect shared — admin conversationswriteslack.admin_conversations_ekm_listoriginalconnectedchannelinfoList original connected channel info — admin conversations ekmreadslack.admin_conversations_getconversationprefsGet conversation prefs — admin conversationsreadslack.admin_conversations_getcustomretentionGet custom retention — admin conversationsreadslack.admin_conversations_getteamsGet teams — admin conversationsreadslack.admin_conversations_inviteInvite — admin conversationswriteslack.admin_conversations_linkobjectsLink objects — admin conversationswriteslack.admin_conversations_lookupLookup — admin conversationsreadslack.admin_conversations_removecustomretentionRemove custom retention — admin conversationsdestructiveslack.admin_conversations_renameRename — admin conversationswriteslack.admin_conversations_restrictaccess_addgroupAdd group — admin conversations restrictAccesswriteslack.admin_conversations_restrictaccess_listgroupsList groups — admin conversations restrictAccessreadslack.admin_conversations_restrictaccess_removegroupRemove group — admin conversations restrictAccessdestructiveslack.admin_conversations_searchSearch — admin conversationsreadslack.admin_conversations_setconversationprefsSet conversation prefs — admin conversationswriteslack.admin_conversations_setcustomretentionSet custom retention — admin conversationswriteslack.admin_conversations_setteamsSet teams — admin conversationswriteslack.admin_conversations_unarchiveUnarchive — admin conversationswriteslack.admin_conversations_unlinkobjectsUnlink objects — admin conversationsdestructiveslack.admin_emoji_addAdd — admin emojiwriteslack.admin_emoji_addaliasAdd alias — admin emojiwriteslack.admin_emoji_listList — admin emojireadslack.admin_emoji_removeRemove — admin emojidestructiveslack.admin_emoji_renameRename — admin emojiwriteslack.admin_functions_listList — admin functionsreadslack.admin_functions_permissions_lookupLookup — admin functions permissionsreadslack.admin_functions_permissions_setSet — admin functions permissionswriteslack.admin_inviterequests_approveApprove — admin inviteRequestswriteslack.admin_inviterequests_approved_listList — admin inviteRequests approvedreadslack.admin_inviterequests_denied_listList — admin inviteRequests deniedreadslack.admin_inviterequests_denyDeny — admin inviteRequestswriteslack.admin_inviterequests_listList — admin inviteRequestsreadslack.admin_roles_addassignmentsAdd assignments — admin roleswriteslack.admin_roles_listassignmentsList assignments — admin rolesreadslack.admin_roles_removeassignmentsRemove assignments — admin rolesdestructiveslack.admin_teams_admins_listList — admin teams adminsreadslack.admin_teams_createCreate — admin teamswriteslack.admin_teams_listList — admin teamsreadslack.admin_teams_owners_listList — admin teams ownersreadslack.admin_teams_settings_infoInfo — admin teams settingsreadslack.admin_teams_settings_setdefaultchannelsSet default channels — admin teams settingswriteslack.admin_teams_settings_setdescriptionSet description — admin teams settingswriteslack.admin_teams_settings_setdiscoverabilitySet discoverability — admin teams settingswriteslack.admin_teams_settings_seticonSet icon — admin teams settingswriteslack.admin_teams_settings_setnameSet name — admin teams settingswriteslack.admin_usergroups_addchannelsAdd channels — admin usergroupswriteslack.admin_usergroups_addteamsAdd teams — admin usergroupswriteslack.admin_usergroups_listchannelsList channels — admin usergroupsreadslack.admin_usergroups_removechannelsRemove channels — admin usergroupsdestructiveslack.admin_usergroups_removeteamsRemove teams — admin usergroupsdestructiveslack.admin_users_assignAssign — admin userswriteslack.admin_users_getexpirationGet expiration — admin usersreadslack.admin_users_inviteInvite — admin userswriteslack.admin_users_listList — admin usersreadslack.admin_users_removeRemove — admin usersdestructiveslack.admin_users_session_clearsettingsClear settings — admin users sessiondestructiveslack.admin_users_session_getsettingsGet settings — admin users sessionreadslack.admin_users_session_invalidateInvalidate — admin users sessiondestructiveslack.admin_users_session_listList — admin users sessionreadslack.admin_users_session_resetReset — admin users sessiondestructiveslack.admin_users_session_resetbulkReset bulk — admin users sessiondestructiveslack.admin_users_session_setsettingsSet settings — admin users sessionwriteslack.admin_users_setadminSet admin — admin userswriteslack.admin_users_setexpirationSet expiration — admin userswriteslack.admin_users_setownerSet owner — admin userswriteslack.admin_users_setregularSet regular — admin userswriteslack.admin_users_unsupportedversions_exportExport — admin users unsupportedVersionsreadslack.admin_workflows_collaborators_addAdd — admin workflows collaboratorswriteslack.admin_workflows_collaborators_removeRemove — admin workflows collaboratorsdestructiveslack.admin_workflows_permissions_lookupLookup — admin workflows permissionsreadslack.admin_workflows_searchSearch — admin workflowsreadslack.admin_workflows_triggers_types_permissions_lookupLookup — admin workflows triggers types permissionsreadslack.admin_workflows_triggers_types_permissions_setSet — admin workflows triggers types permissionswriteslack.admin_workflows_unpublishUnpublish — admin workflowswrite
Chat73
slack.bookmarks_addAdd — bookmarkswriteslack.bookmarks_editEdit — bookmarkswriteslack.bookmarks_listList — bookmarksreadslack.bookmarks_removeRemove — bookmarksdestructiveslack.bots_infoInfo — botsreadslack.calls_addAdd — callswriteslack.calls_endEnd — callswriteslack.calls_infoInfo — callsreadslack.calls_participants_addAdd — calls participantswriteslack.calls_participants_removeRemove — calls participantsdestructiveslack.calls_updateUpdate — callswriteslack.chat_appendstreamAppend stream — chatwriteslack.chat_deleteDelete — chatdestructiveslack.chat_deletescheduledmessageDelete scheduled message — chatdestructiveslack.chat_getpermalinkGet permalink — chatreadslack.chat_memessageMe message — chatwriteslack.chat_postephemeralPost ephemeral — chatwriteslack.chat_postmessagePost message — chatwriteslack.chat_scheduledmessages_listList — chat scheduledMessagesreadslack.chat_schedulemessageSchedule message — chatwriteslack.chat_startstreamStart stream — chatwriteslack.chat_stopstreamStop stream — chatwriteslack.chat_unfurlUnfurl — chatwriteslack.chat_updateUpdate — chatwriteslack.conversations_acceptsharedinviteAccept shared invite — conversationswriteslack.conversations_approvesharedinviteApprove shared invite — conversationswriteslack.conversations_archiveArchive — conversationswriteslack.conversations_canvases_createCreate — conversations canvaseswriteslack.conversations_closeClose — conversationsdestructiveslack.conversations_createCreate — conversationswriteslack.conversations_declinesharedinviteDecline shared invite — conversationswriteslack.conversations_externalinvitepermissions_setSet — conversations externalInvitePermissionswriteslack.conversations_historyHistory — conversationsreadslack.conversations_infoInfo — conversationsreadslack.conversations_inviteInvite — conversationswriteslack.conversations_invitesharedInvite shared — conversationswriteslack.conversations_joinJoin — conversationswriteslack.conversations_kickKick — conversationsdestructiveslack.conversations_leaveLeave — conversationsdestructiveslack.conversations_listList — conversationsreadslack.conversations_listconnectinvitesList connect invites — conversationsreadslack.conversations_markMark — conversationswriteslack.conversations_membersMembers — conversationsreadslack.conversations_openOpen — conversationswriteslack.conversations_renameRename — conversationswriteslack.conversations_repliesReplies — conversationsreadslack.conversations_requestsharedinvite_approveApprove — conversations requestSharedInvitewriteslack.conversations_requestsharedinvite_denyDeny — conversations requestSharedInvitewriteslack.conversations_requestsharedinvite_listList — conversations requestSharedInvitereadslack.conversations_setpurposeSet purpose — conversationswriteslack.conversations_settopicSet topic — conversationswriteslack.conversations_unarchiveUnarchive — conversationswriteslack.dnd_enddndEnd dnd — dndwriteslack.dnd_endsnoozeEnd snooze — dndwriteslack.dnd_infoInfo — dndreadslack.dnd_setsnoozeSet snooze — dndwriteslack.dnd_teaminfoTeam info — dndreadslack.emoji_listList — emojireadslack.pins_addAdd — pinswriteslack.pins_listList — pinsreadslack.pins_removeRemove — pinsdestructiveslack.reactions_addAdd — reactionswriteslack.reactions_getGet — reactionsreadslack.reactions_listList — reactionsreadslack.reactions_removeRemove — reactionsdestructiveslack.reminders_addAdd — reminderswriteslack.reminders_completeComplete — reminderswriteslack.reminders_deleteDelete — remindersdestructiveslack.reminders_infoInfo — remindersreadslack.reminders_listList — remindersreadslack.stars_addAdd — starswriteslack.stars_listList — starsreadslack.stars_removeRemove — starsdestructive
Files33
slack.canvases_access_deleteDelete — canvases accessdestructiveslack.canvases_access_setSet — canvases accesswriteslack.canvases_createCreate — canvaseswriteslack.canvases_deleteDelete — canvasesdestructiveslack.canvases_editEdit — canvaseswriteslack.canvases_sections_lookupLookup — canvases sectionsreadslack.files_comments_deleteDelete — files commentsdestructiveslack.files_completeuploadexternalComplete upload external — fileswriteslack.files_deleteDelete — filesdestructiveslack.files_getuploadurlexternalGet upload u r l external — filesreadslack.files_infoInfo — filesreadslack.files_listList — filesreadslack.files_remote_addAdd — files remotewriteslack.files_remote_infoInfo — files remotereadslack.files_remote_listList — files remotereadslack.files_remote_removeRemove — files remotedestructiveslack.files_remote_shareShare — files remotewriteslack.files_remote_updateUpdate — files remotewriteslack.files_revokepublicurlRevoke public u r l — filesdestructiveslack.files_sharedpublicurlShared public u r l — fileswriteslack.files_uploadUpload — fileswriteslack.slacklists_access_deleteDelete — slackLists accessdestructiveslack.slacklists_access_setSet — slackLists accesswriteslack.slacklists_createCreate — slackListswriteslack.slacklists_download_getGet — slackLists downloadreadslack.slacklists_download_startStart — slackLists downloadwriteslack.slacklists_items_createCreate — slackLists itemswriteslack.slacklists_items_deleteDelete — slackLists itemsdestructiveslack.slacklists_items_deletemultipleDelete multiple — slackLists itemsdestructiveslack.slacklists_items_infoInfo — slackLists itemsreadslack.slacklists_items_listList — slackLists itemsreadslack.slacklists_items_updateUpdate — slackLists itemswriteslack.slacklists_updateUpdate — slackListswrite
Apps29
slack.apps_activities_listList — apps activitiesreadslack.apps_auth_external_deleteDelete — apps auth externaldestructiveslack.apps_auth_external_getGet — apps auth externalreadslack.apps_connections_openOpen — apps connectionswriteslack.apps_datastore_bulkdeleteBulk delete — apps datastoredestructiveslack.apps_datastore_bulkgetBulk get — apps datastorereadslack.apps_datastore_bulkputBulk put — apps datastorewriteslack.apps_datastore_countCount — apps datastorereadslack.apps_datastore_deleteDelete — apps datastoredestructiveslack.apps_datastore_getGet — apps datastorereadslack.apps_datastore_putPut — apps datastorewriteslack.apps_datastore_queryQuery — apps datastorereadslack.apps_datastore_updateUpdate — apps datastorewriteslack.apps_event_authorizations_listList — apps event authorizationsreadslack.apps_icon_setSet — apps iconwriteslack.apps_managed_permissions_setSet — apps managed permissionswriteslack.apps_manifest_createCreate — apps manifestwriteslack.apps_manifest_deleteDelete — apps manifestdestructiveslack.apps_manifest_exportExport — apps manifestreadslack.apps_manifest_updateUpdate — apps manifestwriteslack.apps_manifest_validateValidate — apps manifestreadslack.apps_permissions_infoInfo — apps permissionsreadslack.apps_permissions_requestRequest — apps permissionswriteslack.apps_permissions_resources_listList — apps permissions resourcesreadslack.apps_permissions_scopes_listList — apps permissions scopesreadslack.apps_permissions_users_listList — apps permissions usersreadslack.apps_permissions_users_requestRequest — apps permissions userswriteslack.apps_uninstallUninstall — appsdestructiveslack.apps_user_connection_updateUpdate — apps user connectionwrite
Automation19
slack.functions_completeerrorComplete error — functionswriteslack.functions_completesuccessComplete success — functionswriteslack.functions_distributions_permissions_addAdd — functions distributions permissionswriteslack.functions_distributions_permissions_listList — functions distributions permissionsreadslack.functions_distributions_permissions_removeRemove — functions distributions permissionsdestructiveslack.functions_distributions_permissions_setSet — functions distributions permissionswriteslack.functions_workflows_steps_listList — functions workflows stepsreadslack.functions_workflows_steps_responses_exportExport — functions workflows steps responsesreadslack.workflows_featured_addAdd — workflows featuredwriteslack.workflows_featured_listList — workflows featuredreadslack.workflows_featured_removeRemove — workflows featureddestructiveslack.workflows_featured_setSet — workflows featuredwriteslack.workflows_stepcompletedStep completed — workflowswriteslack.workflows_stepfailedStep failed — workflowswriteslack.workflows_triggers_permissions_addAdd — workflows triggers permissionswriteslack.workflows_triggers_permissions_listList — workflows triggers permissionsreadslack.workflows_triggers_permissions_removeRemove — workflows triggers permissionsdestructiveslack.workflows_triggers_permissions_setSet — workflows triggers permissionswriteslack.workflows_updatestepUpdate step — workflowswrite
People13
slack.users_conversationsConversations — usersreadslack.users_deletephotoDelete photo — usersdestructiveslack.users_discoverablecontacts_lookupLookup — users discoverableContactsreadslack.users_getpresenceGet presence — usersreadslack.users_identityIdentity — usersreadslack.users_infoInfo — usersreadslack.users_listList — usersreadslack.users_lookupbyemailLookup by email — usersreadslack.users_profile_getGet — users profilereadslack.users_profile_setSet — users profilewriteslack.users_setactiveSet active — userswriteslack.users_setphotoSet photo — userswriteslack.users_setpresenceSet presence — userswrite
Auth13
slack.auth_revokeRevoke — authdestructiveslack.auth_teams_listList — auth teamsreadslack.auth_testTest — authreadslack.oauth_accessAccess — oauthwriteslack.oauth_tokenToken — oauthwriteslack.oauth_v2_accessAccess — oauth v2writeslack.oauth_v2_beginshorttokenrotationBegin short token rotation — oauth v2writeslack.oauth_v2_completeshorttokenrotationComplete short token rotation — oauth v2writeslack.oauth_v2_exchangeExchange — oauth v2writeslack.oauth_v2_user_accessAccess — oauth v2 userwriteslack.openid_connect_tokenToken — openid connectwriteslack.openid_connect_userinfoUser info — openid connectreadslack.tooling_tokens_rotateRotate — tooling tokensdestructive
Tenant9
slack.team_accesslogsAccess logs — teamreadslack.team_billableinfoBillable info — teamreadslack.team_billing_infoInfo — team billingreadslack.team_externalteams_disconnectDisconnect — team externalTeamsdestructiveslack.team_externalteams_listList — team externalTeamsreadslack.team_infoInfo — teamreadslack.team_integrationlogsIntegration logs — teamreadslack.team_preferences_listList — team preferencesreadslack.team_profile_getGet — team profileread
Groups7
slack.usergroups_createCreate — usergroupswriteslack.usergroups_disableDisable — usergroupswriteslack.usergroups_enableEnable — usergroupswriteslack.usergroups_listList — usergroupsreadslack.usergroups_updateUpdate — usergroupswriteslack.usergroups_users_listList — usergroups usersreadslack.usergroups_users_updateUpdate — usergroups userswrite
Assistant7
slack.agents_sessions_renameRename — agents sessionswriteslack.agents_sessions_setstatusSet status — agents sessionswriteslack.assistant_search_contextContext — assistant searchreadslack.assistant_search_infoInfo — assistant searchreadslack.assistant_threads_setstatusSet status — assistant threadswriteslack.assistant_threads_setsuggestedpromptsSet suggested prompts — assistant threadswriteslack.assistant_threads_settitleSet title — assistant threadswrite
UI6
slack.blocks_validateValidate — blocksreadslack.dialog_openOpen — dialogwriteslack.views_openOpen — viewswriteslack.views_publishPublish — viewswriteslack.views_pushPush — viewswriteslack.views_updateUpdate — viewswrite
Search3
slack.search_allAll — searchreadslack.search_filesFiles — searchreadslack.search_messagesMessages — searchread
Entities3
slack.entity_acknowledgecommentactionAcknowledge comment action — entitywriteslack.entity_presentcommentsPresent comments — entityreadslack.entity_presentdetailsPresent details — entityread
Events2
slack.rtm_connectConnect — rtmreadslack.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.