communicationoauth2

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

The Slackbot MCP connects your Switchy workspace to Slack, letting your team's AI read channels, post messages, manage reactions, and handle files without leaving the conversation. @mention it to pull thread summaries, star important messages, add emoji reactions, or archive channels. Most useful for teams that coordinate work in Slack and want AI to act on their behalf — posting standup notes, triaging threads, or surfacing context from channels. Requires OAuth with scopes for channels, messages, emoji, and files; setup takes about three minutes.

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 ID
    destructive

    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 chat
    destructive

    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 channel
    destructive

    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 reminder
    destructive

    Deletes an existing slack reminder, typically when it is no longer relevant or a task is completed; this operation is irreversible.

  • Delete file comment
    destructive

    Deletes a specific comment from a file in slack; this action is irreversible.

  • Delete scheduled chat message
    destructive

    Deletes a pending, unsent scheduled message from the specified slack channel, identified by its `scheduled message id`.

  • Delete user profile photo
    destructive

    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

  1. 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

Not enough Spaces yet to publish anonymised usage stats (we require ≥ 50 Spaces per week).

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.

Prompt

@Slackbot what are the most recent messages in #engineering-standup from the last 24 hours?

Output

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.

Notes

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.

Prompt

@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'

Output

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.

Notes

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.

Prompt

@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

Output

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.

Notes

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

Support team emoji triage workflow

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.

Remote file indexing for distributed teams

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.

Standup call participant tracking

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.

Data last verified 607 hours ago.Sources aggregated hourly to weekly. See docs/architecture/model-directory.md.