Slack MCP Actor avatar

Slack MCP Actor

Pricing

from $0.01 / 1,000 result items

Go to Apify Store
Slack MCP Actor

Slack MCP Actor

Slack MCP for AI agents — 66 tools for messaging, channels, users, files, and analytics. Wraps the Slack PP CLI as a standby MCP server.

Pricing

from $0.01 / 1,000 result items

Rating

0.0

(0)

Developer

AutomateLab

AutomateLab

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Categories

Share

Slack Messaging, Channels, and User Data — MCP Server

Get Slack messages, channels, users, files, reactions, and team analytics via the Slack PP CLI wrapped as an Apify MCP server. 66 tools for AI agents building Slack-aware workflows, from fetching conversation history to managing pins, stars, reminders, and Do Not Disturb status.

Features

  • 66 Slack tools covering messaging, channels, users, files, reactions, pins, stars, reminders, usergroups, DND, search, team analytics, and emoji
  • MCP protocol — standard tools/list and tools/call interface compatible with Claude, Cursor, and other MCP clients
  • Batch mode — run single tool calls via Apify actor input with INPUT_STORE=1 apify run
  • Standby mode — long-running HTTP server on /mcp for persistent agent connections
  • Pay-per-event pricing — granular per-tool billing, no monthly commitments
  • Auth toolsauth_test, auth_revoke, about to verify and manage token lifecycle
  • Conversations — list, history, info, create, archive, unarchive, invite, set purpose/topic, mark, members, replies
  • Messaging — post, update, delete, scheduled messages, permalink retrieval
  • Users — list, info, presence, profile get/set, lookup by email
  • Files — upload, list, info, delete with full metadata
  • Reactions — add, remove, list, get for any message
  • Pins & Stars — list, add, remove for channels and items
  • Reminders — add, list, complete, delete, info
  • Usergroups — create, update, list, manage members
  • Search — full Slack search across messages and content
  • Team — billable info, access logs, billing data
  • DND — Do Not Disturb status for self and team members
  • Emoji — list custom emoji across the workspace

Quick Start

Prerequisites

  • Apify account
  • Slack bot token (SLACK_BOT_TOKEN) with appropriate scopes

Installation

$npm install

Build

$npm run build

Run (batch mode)

# Example: list all Slack channels
echo '{"tool": "conversations_list", "params": {}}' | INPUT_STORE=1 apify run
# Example: get conversation history
echo '{"tool": "conversations_history", "params": {"channel": "C012AB3CD"}}' | INPUT_STORE=1 apify run
# Example: post a message
echo '{"tool": "messages_post_message", "params": {"channel": "C012AB3CD", "text": "Hello from Slack MCP!"}}' | INPUT_STORE=1 apify run
# Example: get user info
echo '{"tool": "users_info", "params": {"user": "U012AB3CD"}}' | INPUT_STORE=1 apify run
# Example: search messages
echo '{"tool": "search_messages", "params": {"query": "deployment"}}' | INPUT_STORE=1 apify run
# Example: list files
echo '{"tool": "files_list", "params": {}}' | INPUT_STORE=1 apify run

Run (standby / MCP server mode)

Set SLACK_BOT_TOKEN as an Apify secret, then:

$apify run --use-model=stay-alive

The actor starts an HTTP server on port 3000 exposing /mcp for MCP initialize, tools/list, and tools/call requests.

MCP Client Example

# Call tools/call directly
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"conversations_list","arguments":{}}}'

Input

ParameterTypeRequiredDescription
toolstringyesSlack tool name to call (e.g. conversations_list)
paramsobjectyesTool arguments as a JSON object

Tools

Auth

about

Returns information about the authenticated user and team.

auth_test

Verifies the Slack bot token is valid and returns team info.

auth_revoke

Revokes the current token, ending the session.


Conversations

conversations_list

Lists all channels in the workspace. Supports filtering by type (public_channel, private_channel, im, mpim).

conversations_history

Fetches message history for a channel. Requires channel parameter.

conversations_info

Returns detailed metadata for a specific channel.

conversations_create

Creates a new public or private channel.

conversations_archive

Archives a channel, removing it from the channel list.

conversations_unarchive

Reactivates a previously archived channel.

conversations_invite

Invites one or more users to a channel.

conversations_set_purpose

Sets the channel purpose/description.

conversations_set_topic

Sets the channel topic.

conversations_mark

Marks a channel as read up to a specific timestamp.

conversations_members

Lists all members of a channel.

conversations_replies

Fetches a thread's reply history (replies to a specific message).


Messages

messages_post_message

Sends a message to a channel, DM, or thread.

messages_update_message

Updates the text or metadata of an existing message.

messages_delete_message

Deletes a message from a channel or thread.

Returns a shareable permalink URL for a specific message.

messages_list_scheduled

Lists scheduled messages pending delivery.

messages_schedule_message

Schedules a message for future delivery.


Files

files_list

Lists files uploaded to Slack, optionally filtered by channel or user.

files_info

Returns metadata for a specific file.

files_upload

Uploads a file to a channel or DM. Supports initial comment and thread targeting.

files_delete

Deletes a file from Slack.


Reactions

reactions_list

Lists all reactions to a message or item.

reactions_add

Adds a reaction emoji to a message.

reactions_remove

Removes a reaction emoji from a message.

reactions_get

Gets all reactions for a specific message.


Users

users_list

Lists all users in the workspace with their profiles and presence.

users_info

Returns detailed profile information for a specific user.

users_get_presence

Gets the current presence status (active, away) of a user.

users_profile_get

Retrieves a user's full profile including custom fields.

users_profile_set

Updates a user's profile fields.

users_set_presence

Sets your own presence status (active or away).

users_lookup_by_email

Looks up a user by their verified email address.


Usergroups

usergroups_list

Lists all usergroups in the workspace.

usergroups_create

Creates a new usergroup.

usergroups_update

Updates an existing usergroup's name, description, or handle.

usergroups_users_list

Lists the users in a usergroup.

usergroups_users_update

Updates the user list for a usergroup.


DND (Do Not Disturb)

dnd_info

Gets your own Do Not Disturb status.

dnd_team_info

Gets DND status for all team members.

dnd_set_snooze

Enables Do Not Disturb for a specified number of minutes.

dnd_end_dnd

Ends your own Do Not Disturb session immediately.

dnd_end_snooze

Ends the current snooze period.


Reminders

reminders_list

Lists all reminders for the authenticated user.

reminders_add

Creates a new reminder.

reminders_complete

Marks a reminder as complete.

reminders_delete

Deletes a reminder.

reminders_info

Returns details for a specific reminder.


Pins

pins_list

Lists all pinned items in a channel.

pins_add

Pins a message or file to a channel.

pins_remove

Removes a pin from a channel.


Stars

stars_list

Lists all starred items for the authenticated user.

stars_add

Stars an item (message, file, channel, or DM).

stars_remove

Removes a star from an item.


Full Slack search across messages and files.

search_messages

Search specifically within message content.


Team

team_info

Returns information about the workspace.

team_access_logs

Returns the access logs for the workspace.

team_billable_info

Returns billing info for each workspace member.


Bots

bots_info

Returns information about bot users integrated into the workspace.


Emoji

emoji_list

Lists all custom emoji in the workspace.


SQL / Sync

sql

Executes a SQL query against Slack data (if configured on your workspace).

sync

Synchronizes Slack data with an external system.


Output

All tools return a JSON object with the Slack API response. In batch mode, results are stored in the actor's default key-value store under OUTPUT and pushed as a dataset object:

{
"tool": "conversations_list",
"result": { ... },
"timestamp": "2026-05-19T12:00:00.000Z"
}

In standby MCP mode, tools return the raw Slack API response via the MCP tools/call result schema.


Pricing

All tools use Pay-Per-Event (PPE) billing. Each tool invocation costs a fixed amount in USD:

ToolPPE Price
about$0.01/call
auth_test$0.01/call
auth_revoke$0.03/call
conversations_list$0.03/call
conversations_history$0.03/call
conversations_info$0.03/call
conversations_create$0.05/call
conversations_archive$0.05/call
conversations_unarchive$0.05/call
conversations_invite$0.05/call
conversations_set_purpose$0.05/call
conversations_set_topic$0.05/call
conversations_mark$0.03/call
conversations_members$0.03/call
conversations_replies$0.03/call
messages_post_message$0.05/call
messages_update_message$0.05/call
messages_delete_message$0.05/call
messages_get_permalink$0.03/call
messages_list_scheduled$0.03/call
messages_schedule_message$0.05/call
files_list$0.03/call
files_info$0.03/call
files_upload$0.08/call
files_delete$0.05/call
reactions_list$0.03/call
reactions_add$0.05/call
reactions_remove$0.03/call
reactions_get$0.03/call
users_list$0.03/call
users_info$0.03/call
users_get_presence$0.03/call
users_profile_get$0.03/call
users_profile_set$0.05/call
users_set_presence$0.05/call
users_lookup_by_email$0.03/call
usergroups_list$0.03/call
usergroups_create$0.05/call
usergroups_update$0.05/call
usergroups_users_list$0.03/call
usergroups_users_update$0.05/call
dnd_info$0.03/call
dnd_team_info$0.03/call
dnd_set_snooze$0.03/call
dnd_end_dnd$0.03/call
dnd_end_snooze$0.03/call
reminders_list$0.03/call
reminders_add$0.05/call
reminders_complete$0.03/call
reminders_delete$0.05/call
reminders_info$0.03/call
pins_list$0.03/call
pins_add$0.05/call
pins_remove$0.03/call
stars_list$0.03/call
stars_add$0.05/call
stars_remove$0.03/call
search$0.05/call
search_messages$0.05/call
team_info$0.03/call
team_access_logs$0.05/call
team_billable_info$0.03/call
bots_info$0.03/call
emoji_list$0.03/call
sql$0.05/call
sync$0.03/call

Troubleshooting

SLACK_BOT_TOKEN not set error Ensure SLACK_BOT_TOKEN is set as an Apify secret in your actor configuration. The token must have the channels:read, channels:write, users:read, and files:read scopes at minimum.

channel not found or permission errors Your bot token needs additional scopes. Use the Slack OAuth permissions tool to add scopes and re-install the app to your workspace.

Actor times out in standby mode Set APIFY_ACTOR_MAX_DURATION or use apify run --use-model=stay-alive to keep the actor running indefinitely.

conversations_history returns empty Some channels restrict history access. Verify the bot is a member of the channel or that the channel has history_disclosed enabled.

files_upload fails with large files The Slack API limits file uploads to 256MB. For larger files, upload to external storage and post the link via messages_post_message.


License

MIT