Slack Bot MCP server
87 operations10 webhooks
Slack workspace access with a bot token for messages, conversations, files, users, user groups, reminders, calls, canvases, and team info, plus Events API webhooks.
Try Slack Bot with your agent
Connect Slack Bot, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Slack Bot on my account, then run one read-only example and show me the result.
Slack Bot tools and triggers
Tools are what your agent can do in Slack Bot through Corsair's MCP server. Triggers are the Slack Bot events a routine can start from.
Conversations
- ArchiveDestructive
Archive a conversation
conversations.archive
- CloseWrite
Close a direct message or group conversation
conversations.close
- CreateWrite
Create a public or private channel
conversations.create
- FindRead-only
Search conversations by name
conversations.find
- InfoRead-only
Retrieve information about a conversation
conversations.info
- InviteWrite
Invite users to a channel
conversations.invite
- JoinWrite
Join a public channel
conversations.join
- KickDestructive
Remove a user from a conversation
conversations.kick
- LeaveWrite
Leave a conversation
conversations.leave
- ListRead-only
List conversations in the workspace
conversations.list
- List For UserRead-only
List the conversations a user belongs to
conversations.listForUser
- MarkWrite
Move a conversation read cursor
conversations.mark
- MembersRead-only
List the members of a conversation
conversations.members
- RenameWrite
Rename a conversation
conversations.rename
- Set PurposeWrite
Set a conversation purpose
conversations.setPurpose
- Set TopicWrite
Set a conversation topic
conversations.setTopic
- UnarchiveWrite
Unarchive a conversation
conversations.unarchive
Messages
- DeleteDestructive
Delete a message from a conversation
messages.delete
- Delete ScheduledDestructive
Cancel a scheduled message before it sends
messages.deleteScheduled
- HistoryRead-only
Fetch a conversation message history
messages.history
- Pin AddWrite
Pin a message to a channel
messages.pinAdd
- Pin RemoveDestructive
Unpin a message from a channel
messages.pinRemove
- Pins ListRead-only
List the pinned items in a channel
messages.pinsList
- PostWrite
Send a message to a channel, DM or thread
messages.post
- Post EphemeralWrite
Send a message visible only to a single user
messages.postEphemeral
- Post MeWrite
Send a me-style message to a channel
messages.postMe
- Reaction AddWrite
Add an emoji reaction to a message
messages.reactionAdd
- Reaction RemoveDestructive
Remove an emoji reaction from a message
messages.reactionRemove
- Reactions GetRead-only
Fetch the reactions on a message or file
messages.reactionsGet
- Reactions ListRead-only
List the items a user has reacted to
messages.reactionsList
- RepliesRead-only
Fetch the replies in a message thread
messages.replies
- ScheduleWrite
Schedule a message to be sent at a future time
messages.schedule
- UpdateWrite
Update the text or blocks of an existing message
messages.update
Files
- Comments DeleteDestructive
Delete a comment on a file
files.commentsDelete
- DeleteDestructive
Delete a file by ID
files.delete
- DownloadRead-only
Download the contents of a Slack file
files.download
- InfoRead-only
Retrieve detailed information about a file
files.info
- ListRead-only
List files in the workspace, filtered by channel, user or type
files.list
- Remote AddWrite
Register an externally hosted file with Slack
files.remoteAdd
- Remote InfoRead-only
Retrieve a remote file metadata
files.remoteInfo
- Remote ListRead-only
List remote files
files.remoteList
- Remote RemoveDestructive
Remove a remote file
files.remoteRemove
- Remote ShareWrite
Share a remote file into one or more channels
files.remoteShare
- Remote UpdateWrite
Update an existing remote file
files.remoteUpdate
- Revoke Public UrlWrite
Revoke a file public URL
files.revokePublicUrl
- Share Public UrlWrite
Create a public URL for a file
files.sharePublicUrl
- UploadWrite
Upload a file to Slack and optionally share it to a channel
files.upload
Users
- Bots InfoRead-only
Retrieve information about a bot user
users.botsInfo
- Dnd InfoRead-only
Retrieve a user do-not-disturb status
users.dndInfo
- Dnd Team InfoRead-only
Retrieve do-not-disturb status for several users
users.dndTeamInfo
- FindRead-only
Search users by name, display name or email
users.find
- Get PresenceRead-only
Retrieve a user presence
users.getPresence
- Get ProfileRead-only
Retrieve a user profile
users.getProfile
- InfoRead-only
Retrieve detailed information about a user
users.info
- ListRead-only
List the users in the workspace
users.list
- Lookup By EmailRead-only
Look up a user by email address (deprecated by Slack)
users.lookupByEmail
- Set ActiveWrite
Mark the calling user as active
users.setActive
- Set PresenceWrite
Set the calling user presence
users.setPresence
User Groups
- CreateWrite
Create a user group
userGroups.create
- DisableWrite
Disable a user group
userGroups.disable
- EnableWrite
Enable a user group
userGroups.enable
- ListRead-only
List the workspace user groups
userGroups.list
- UpdateWrite
Update a user group name, handle or channels
userGroups.update
- Users ListRead-only
List the members of a user group
userGroups.usersList
- Users UpdateWrite
Replace a user group membership
userGroups.usersUpdate
Calls
- AddWrite
Register a call with Slack
calls.add
- EndWrite
End an in-progress call
calls.end
- InfoRead-only
Retrieve information about a call
calls.info
- Participants AddWrite
Add participants to a call
calls.participantsAdd
- Participants RemoveWrite
Remove participants from a call
calls.participantsRemove
- UpdateWrite
Update a call title or join URLs
calls.update
Canvases
- CreateWrite
Create a standalone or channel canvas
canvases.create
- DeleteDestructive
Delete a canvas
canvases.delete
- EditWrite
Apply changes to a canvas
canvases.edit
- GetRead-only
Retrieve a canvas and its content
canvases.get
- ListRead-only
List canvases in the workspace
canvases.list
- Sections LookupRead-only
Look up section ids within a canvas
canvases.sectionsLookup
Reminders
- AddWrite
Create a reminder
reminders.add
- CompleteWrite
Mark a reminder complete (deprecated by Slack)
reminders.complete
- DeleteDestructive
Delete a reminder
reminders.delete
- InfoRead-only
Retrieve information about a reminder
reminders.info
- ListRead-only
List the reminders visible to the token
reminders.list
Team
- Emoji ListRead-only
List the workspace custom emoji
team.emojiList
- InfoRead-only
Fetch workspace information
team.info
- Open DmWrite
Open a direct or multi-person direct message
team.openDm
- Profile GetRead-only
Fetch the workspace profile field definitions
team.profileGet
- UnfurlWrite
Attach a custom preview to a link in a message
team.unfurl
Connect Slack Bot to Claude, ChatGPT or Cursor
- 1
Connect Slack Bot in Corsair
Sign in to Slack Bot once in Corsair. Corsair stores the credential encrypted and makes the Slack Bot API calls for your agent, so it never goes into a prompt or a config file. Connect Slack Bot
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Slack Bot. On a ChatGPT personal plan, connect Slack Bot here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Slack Bot's read and write operations run right away and its 11 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/slackbot, add the Slack Bot plugin, and connect with OAuth. Then call methods like corsair.slackbot.api.calls.add() from your app. Corsair verifies webhooks, stores tokens, and syncs data per tenant.
Yes. Slack Bot needs an OAuth app with scopes that match what you automate. Register the app in Slack Bot, configure redirect URLs, then connect through Corsair or managed OAuth in Hub.
Yes. One Corsair client can hit Slack Bot, GitHub, Notion, Stripe, and the rest. Trigger Slack Bot from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for slack workspace access with a bot token for messages, conversations, files, users, user groups, reminders, calls, canvases, and team info, plus events api webhooks. Common builds include sync jobs, admin tooling, and agents that call Slack Bot APIs from your backend. Webhook handlers react to Slack Bot events and fan out to Slack, email, or other plugins in the same tenant. Local DB entities let you query synced Slack Bot records without hitting the API on every read.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Slack Bot API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/slackbot in the open repo. When Slack Bot ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Slack Bot data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Slack Bot data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Slack Bot on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 11 destructive Slack Bot operations. You can change a link's mode at hub.corsair.dev/me.