Slack MCP Actor
Pricing
from $0.01 / 1,000 result items
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
Maintained by CommunityActor 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/listandtools/callinterface 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
/mcpfor persistent agent connections - Pay-per-event pricing — granular per-tool billing, no monthly commitments
- Auth tools —
auth_test,auth_revoke,aboutto 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 channelsecho '{"tool": "conversations_list", "params": {}}' | INPUT_STORE=1 apify run# Example: get conversation historyecho '{"tool": "conversations_history", "params": {"channel": "C012AB3CD"}}' | INPUT_STORE=1 apify run# Example: post a messageecho '{"tool": "messages_post_message", "params": {"channel": "C012AB3CD", "text": "Hello from Slack MCP!"}}' | INPUT_STORE=1 apify run# Example: get user infoecho '{"tool": "users_info", "params": {"user": "U012AB3CD"}}' | INPUT_STORE=1 apify run# Example: search messagesecho '{"tool": "search_messages", "params": {"query": "deployment"}}' | INPUT_STORE=1 apify run# Example: list filesecho '{"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 directlycurl -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
| Parameter | Type | Required | Description |
|---|---|---|---|
| tool | string | yes | Slack tool name to call (e.g. conversations_list) |
| params | object | yes | Tool 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.
messages_get_permalink
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.
Search
search
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:
| Tool | PPE 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