Slackbot
Slackbot gives agents workspace-wide read access to a Slack workspace on behalf of the installing user — search messages and files, browse channel and thread history, and look up users and channels — while continuing to post and react as the bot. Includes direct messages and user email addresses so agents can search across DMs and resolve users by email.
Verdict
Common use cases
- Post daily standup summaries to team channels
- Add reactions to flag messages for review
- Archive completed project channels at sprint end
- Star high-priority threads for quick reference
- Upload meeting notes as Slack files
Integration
- Vendor
- Slackbot
- Category
- communication
- Auth
- OAUTH2
- Tools
- 50
- Composio slug
slackbot
Tools
- Add a custom emoji to a Slack team
Deprecated: adds a custom emoji to a slack workspace given a unique name and an image url. use `add emoji` instead.
- Add an emoji alias
Adds an alias for an existing custom emoji in a slack enterprise grid organization.
- Add a remote file
Adds a reference to an external file (e.g., google drive, dropbox) to slack for discovery and sharing, requiring a unique `external id` and an `external url` accessible by slack.
- Add a star to an item
Stars a channel, file, file comment, or a specific message in slack.
- Add call participants
Registers new participants added to a slack call.
- Add emoji
Adds a custom emoji to a slack workspace given a unique name and an image url; subject to workspace emoji limits.
- Add reaction to message
Adds a specified emoji reaction to an existing message in a slack channel, identified by its timestamp; does not remove or retrieve reactions.
- Archive a public or private channel
Archives a slack public or private channel, making it read-only; the primary 'general' channel cannot be archived.
- Archive a Slack conversation
Archives a slack conversation by its id, rendering it read-only and hidden while retaining history, ideal for cleaning up inactive channels; be aware that some channels (like #general or certain dms) cannot be archived and this may impact c
- Close conversation channel
Closes a slack direct message (dm) or multi-person direct message (mpdm) channel, removing it from the user's sidebar without deleting history; this action affects only the calling user's view.
- Create a channel-based conversation
Creates a new public or private slack channel with a unique name; the channel can be org-wide, or team-specific if `team id` is given (required if `org wide` is false or not provided).
- Create a reminder
Creates a slack reminder with specified text and time; time accepts unix timestamps, seconds from now, or natural language (e.g., 'in 15 minutes', 'every thursday at 2pm').
- Create a Slack user group
Creates a new user group (often referred to as a subteam) in a slack workspace.
- Create channel
Initiates a public or private channel-based conversation
- Create conversation
Deprecated: initiates a public or private channel-based conversation. use `create channel` instead.
- Customize URL unfurl
Customizes url previews (unfurling) in a specific slack message using a url-encoded json in `unfurls` to define custom content or remove existing previews.
- Customize URL unfurling in messages
Deprecated: customizes url previews (unfurling) in a specific slack message. use `customize url unfurl` instead.
- Delete a file by IDdestructive
Permanently deletes an existing file from a slack workspace using its unique file id; this action is irreversible and also removes any associated comments or shares.
- Delete a message from a chatdestructive
Deletes a message, identified by its channel id and timestamp, from a slack channel, private group, or direct message conversation; the authenticated user or bot must be the original poster.
- Delete a public or private channeldestructive
Permanently and irreversibly deletes a specified public or private channel, including all its messages and files, within a slack enterprise grid organization.
- Delete a Slack reminderdestructive
Deletes an existing slack reminder, typically when it is no longer relevant or a task is completed; this operation is irreversible.
- Delete file commentdestructive
Deletes a specific comment from a file in slack; this action is irreversible.
- Delete scheduled chat messagedestructive
Deletes a pending, unsent scheduled message from the specified slack channel, identified by its `scheduled message id`.
- Delete user profile photodestructive
Deletes the slack profile photo for the user identified by the token, reverting them to the default avatar; this action is irreversible and succeeds even if no custom photo was set.
- Disable a Slack user group
Disables a specified, currently enabled slack user group by its unique id, effectively archiving it by setting its 'date delete' timestamp; the group is not permanently deleted and can be re-enabled.
- Enable a user group
Enables a disabled user group in slack using its id, reactivating it for mentions and permissions; this action only changes the enabled status and cannot create new groups or modify other properties.
- End a call
Ends an ongoing slack call, identified by its id (obtained from `calls.add`), optionally specifying the call's duration.
- End DND session
Ends the authenticated user's current do not disturb (dnd) session in slack, affecting only dnd status and making them available; if dnd is not active, slack acknowledges the request without changing status.
- End snooze
Ends the current user's snooze mode immediately.
- End snooze mode immediately
Deprecated: ends the current user's snooze mode immediately. use `end snooze` instead.
- Fetch bot user information
Fetches information for a specified, existing slack bot user; will not work for regular user accounts or other integration types.
- Fetch conversation history
Fetches a chronological list of messages and events from a specified slack conversation, accessible by the authenticated user/bot, with options for pagination and time range filtering.
- Fetch item reactions
Fetches reactions for a slack message, file, or file comment, requiring one of: channel and timestamp; file id; or file comment id.
- Fetch team info
Fetches comprehensive metadata about the current slack team, or a specified team if the provided id is accessible.
- Fetch team information
Deprecated: fetches comprehensive metadata about the current slack team. use `fetch team info` instead.
- Fetch workspace settings information
Retrieves detailed settings for a specific slack workspace, primarily for administrators in an enterprise grid organization to view or audit workspace configurations.
- Find channels
Find channels in a slack workspace by any criteria - name, topic, purpose, or description.
- Find users
Find users in a slack workspace by any criteria - email, name, display name, or other text. includes optimized email lookup for exact email matches.
- Get channel conversation preferences
Retrieves conversation preferences (e.g., who can post, who can thread) for a specified channel, primarily for use within slack enterprise grid environments.
- Get Do Not Disturb status for users
Deprecated: retrieves a user's current do not disturb status. use `get team dnd status` instead.
- Get reminder information
Retrieves detailed information for an existing slack reminder specified by its id; this is a read-only operation.
- Get remote file
Retrieve information about a remote file added to slack.
- Get team DND status
Retrieves a user's current do not disturb status.
- Invite users to a Slack channel
Invites users to an existing slack channel using their valid slack user ids.
- Lookup users by email
Retrieves the slack user object for an active user by their registered email address; fails with 'users not found' if the email is unregistered or the user is inactive.
- Post message to channel
Deprecated: posts a message to a slack channel, direct message, or private channel. use `send message` instead.
- Retrieve conversation replies
Retrieves replies to a specific parent message in a slack conversation, using the channel id and the parent message's timestamp (`ts`).
- Retrieve user presence
Retrieves a slack user's current real-time presence (e.g., 'active', 'away') to determine their availability, noting this action does not provide historical data or status reasons.
- Set snooze duration
Deprecated: turns on do not disturb mode for the current user, or changes its duration. use `set dnd duration` instead.
- Share file public url
Enables public sharing for an existing slack file by generating a publicly accessible url; this action does not create new files.
Setup
Setup guide
- 11. In Switchy, open your workspace settings and navigate to the Integrations tab. 2. Find Slackbot in the MCP directory and click Connect. 3. You'll be redirected to Slack's OAuth consent screen — sign in to the workspace you want to connect. 4. Grant the requested scopes: channels:read, channels:write, chat:write, reactions:write, emoji:read, files:write, and stars:write. 5. Slack redirects you back to Switchy with a success confirmation. 6. Open any Space and type '@Slackbot list channels' to verify the connection — you should see a list of your workspace's channels. 7. To invoke a tool, @mention Slackbot in a message and describe the action, like '@Slackbot add a thumbs-up reaction to the message at 1672531200.123456 in #engineering'. 8. If a tool fails, check that the bot user has been invited to the relevant channel.
What teammates see: by default, memories from Slackbot are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Spaces have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Summarize Active Threads
@Slackbot read the last 50 messages in #product and summarize the three most active threads, including who's involved and what decisions are pending.Open in a Space →
React to Urgent Messages
@Slackbot find any messages in #support from the last two hours that mention 'outage' or 'down' and add a fire emoji reaction to each one.Open in a Space →
Archive Old Channels
@Slackbot list all channels with no messages in the past 90 days and archive any that start with 'project-' in the name.Open in a Space →
Star Key Decisions
@Slackbot search #leadership for messages from this week that include the word 'approved' and star each one.Open in a Space →
Post Weekly Recap
@Slackbot review #engineering, #design, and #marketing from the past week, then post a bullet-point recap of major updates to #general.Open in a Space →
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@Slackbot what are the most recent messages in #engineering-standup from the last 24 hours?
Here are the 8 most recent messages from #engineering-standup in the last 24 hours: (1) @sarah posted at 9:47 AM: 'Deployed v2.3.1 to staging, ready for QA review.' (2) @mike replied at 10:12 AM: 'Running smoke tests now, will report back in 30.' (3) @jordan posted at 11:03 AM: 'Database migration script tested locally, looks good.' Messages continue through the afternoon standup updates. This illustrative example shows how the MCP retrieves channel history; actual message count and content will vary by your workspace activity.
This example uses the conversations.history tool to fetch recent channel messages. Requires channels:history OAuth scope. The MCP returns message text, author, and timestamp but does not include thread replies or file attachments by default. Rate limits apply: Tier 3 methods allow ~50 requests per minute per workspace.
@Slackbot send a message to #releases saying 'Version 3.1.0 is now live in production. Release notes: https://docs.example.com/v3.1.0'
Message posted successfully to #releases at 2:34 PM. The message reads: 'Version 3.1.0 is now live in production. Release notes: https://docs.example.com/v3.1.0' and is visible to all 47 members of the channel. This illustrative example demonstrates posting a message; the actual timestamp and member count will reflect your workspace state at send time.
This example uses the chat.postMessage tool to write to a public channel. Requires chat:write OAuth scope. The MCP posts as the authenticated bot user, not as you personally. Be cautious: this creates a permanent message in the channel that all members will see. Consider testing in a private sandbox channel first.
@Slackbot summarize all messages in #customer-feedback from this week where someone mentioned 'billing' or 'invoice', then draft a short report for the finance team
I searched #customer-feedback for messages containing 'billing' or 'invoice' from the past 7 days and found 12 relevant messages. Key themes: (1) Three customers reported confusion about pro-rated charges after plan upgrades. (2) Two customers requested PDF invoices instead of email-only receipts. (3) One customer flagged a duplicate charge that was later resolved. Draft report: 'This week's feedback highlights recurring questions about pro-rated billing logic and a preference for downloadable invoice formats. Recommend updating help docs and exploring PDF export options.' This illustrative synthesis combines message retrieval with AI reasoning to surface patterns.
This example chains the conversations.history tool with keyword filtering and AI summarization. Requires channels:history scope. The MCP retrieves raw messages; the AI performs the analysis and drafting. Message search is substring-based, not semantic, so exact keyword matches matter. Large channels may hit pagination limits requiring multiple API calls.
Use-case deep-dives
When Slackbot MCP makes sense for ticket routing at scale
A 6-person support team uses emoji reactions to route customer questions in a shared Slack channel. Each emoji maps to a product area—🔐 for auth issues, 📊 for analytics bugs. The Slackbot MCP's `add reaction to message` tool lets an AI agent auto-tag incoming messages based on keyword analysis, then star urgent threads for follow-up. This works if your team already lives in Slack and the reaction taxonomy is stable. If you're routing more than 200 messages a day or need audit trails, a proper ticketing system beats emoji-based triage. The OAuth2 setup is straightforward, but you'll need workspace admin approval to add custom emoji. Best for teams under 15 people who want lightweight automation without leaving Slack.
Using Slackbot MCP to surface Google Drive links in conversation
A 10-person product team stores specs in Google Drive but discusses them in Slack. The Slackbot MCP's `add a remote file` tool lets an AI agent drop Drive links into channels when someone asks about a feature—no manual searching. The agent uses the external URL and a unique ID to register the file, making it discoverable in Slack's search. This saves 5-10 minutes per lookup if your team references the same 30-40 docs weekly. The catch: Slack's remote file API requires the URL to be publicly accessible or already shared with the workspace, so private Drive folders need permission tuning. If your team is under 20 people and you're not ready for a full knowledge base, this MCP bridges the gap.
When Slackbot MCP's call tools help async teams stay synced
A 4-person engineering team runs daily standups over Slack Huddles, but half the team is remote across 3 time zones. The Slackbot MCP's `add call participants` tool logs who joined each huddle, feeding a dashboard that tracks attendance patterns. An AI agent can post a summary thread after each call, tagging people who missed it and linking the recording. This works if your team uses Slack Huddles as the single source of truth for sync meetings. If you're running standups in Zoom or Google Meet, this MCP won't help—it only hooks into Slack's native call infrastructure. For small teams who live in Slack and want lightweight attendance tracking without Zapier, this is a 10-minute setup.
Frequently asked
What does the Slackbot MCP let Switchy do in my workspace?
It lets Switchy post messages, add reactions, star items, manage custom emoji, archive channels, and register call participants — basically anything a bot user can do via Slack's Web API. It can't read DMs or private channels unless your workspace admin explicitly grants those OAuth scopes during setup.
Which OAuth scopes does Slackbot MCP request when I connect it?
The exact scopes depend on which of the 50 tools you enable, but typical grants include `chat:write`, `reactions:write`, `emoji:read`, `channels:manage`, and `files:write`. You'll see the full list in Slack's OAuth consent screen before authorising. A workspace admin must approve scopes that touch private channels or user data.
Can the Slackbot MCP send messages to private channels?
Only if the bot user is invited to that private channel and your OAuth token includes `chat:write` for private channels. By default, most Slack bots can only post to public channels or channels they've been explicitly added to. Check your workspace's app permissions if messages aren't appearing.
Why use this MCP instead of Slack's built-in webhooks or API?
Webhooks are one-way and can't react to messages, star items, or manage emoji. The raw API requires you to write auth refresh logic and handle rate limits yourself. This MCP wraps 50 common bot actions with OAuth built in, so your Switchy agents can interact with Slack without custom code.
Who on my team should connect the Slackbot MCP in Switchy?
Whoever connects it becomes the OAuth token owner, so pick someone who won't leave the company soon. If you need the bot to post in private channels or manage workspace emoji, that person must be a workspace admin or have explicit permission to install apps with those scopes.