Slack MCP Server for Cloudflare Workers
68 tools available in the Slack MCP server. Each tool can be called by AI assistants to perform specific actions.
slack_set_dnd_snoozeTurn on Do Not Disturb for a specified duration.
Args:
Temporarily silences notifications.
{
"type": "object",
"required": [
"num_minutes"
],
"properties": {
"num_minutes": {
"type": "integer",
"minimum": 1,
"description": "Minutes to snooze"
}
}
}slack_end_dnd_snoozeTurn off Do Not Disturb snooze early.
Ends snooze immediately and returns to normal notification status.
{
"type": "object",
"properties": {}
}slack_end_dndEnd Do Not Disturb mode completely.
Ends all DND settings and returns to normal status.
{
"type": "object",
"properties": {}
}slack_list_emojiList all custom emoji in the workspace.
Args:
Returns: Map of custom emoji names to their URLs/aliases.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}slack_add_pinPin a message to a channel.
Args:
Pinned messages appear in the channel's pinned items.
{
"type": "object",
"required": [
"channel",
"timestamp"
],
"properties": {
"channel": {
"type": "string",
"description": "Channel ID"
},
"timestamp": {
"type": "string",
"description": "Message timestamp to pin"
}
}
}slack_add_bookmarkAdd a bookmark to a channel.
Args:
Bookmarks appear at the top of the channel.
{
"type": "object",
"required": [
"channel_id",
"title"
],
"properties": {
"link": {
"type": "string",
"description": "URL for link bookmarks"
},
"type": {
"enum": [
"link",
"folder"
],
"type": "string",
"default": "link"
},
"emoji": {
"type": "string",
"description": "Emoji for the bookmark"
},
"title": {
"type": "string",
"description": "Bookmark title"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_edit_bookmarkEdit an existing bookmark.
Args:
{
"type": "object",
"required": [
"channel_id",
"bookmark_id"
],
"properties": {
"link": {
"type": "string",
"description": "New URL"
},
"emoji": {
"type": "string",
"description": "New emoji"
},
"title": {
"type": "string",
"description": "New title"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
},
"bookmark_id": {
"type": "string",
"description": "Bookmark ID"
}
}
}slack_remove_bookmarkRemove a bookmark from a channel.
Args:
{
"type": "object",
"required": [
"channel_id",
"bookmark_id"
],
"properties": {
"channel_id": {
"type": "string",
"description": "Channel ID"
},
"bookmark_id": {
"type": "string",
"description": "Bookmark ID"
}
}
}slack_list_bookmarksList all bookmarks in a channel.
Args:
Returns: List of bookmarks in the channel.
{
"type": "object",
"required": [
"channel_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_list_conversationsList Slack channels and conversations with pagination.
Returns public channels, private channels, DMs, and group DMs based on the types parameter.
Args:
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1,
"description": "Number to return"
},
"cursor": {
"type": "string",
"description": "Pagination cursor"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"exclude_archived": {
"type": "boolean",
"default": true,
"description": "Exclude archived channels"
}
}
}slack_get_conversation_infoGet detailed information about a specific Slack channel or conversation.
Args:
Returns: Channel name, topic, purpose, member count, and metadata.
{
"type": "object",
"required": [
"channel_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_remove_pinUnpin a message from a channel.
Args:
{
"type": "object",
"required": [
"channel",
"timestamp"
],
"properties": {
"channel": {
"type": "string",
"description": "Channel ID"
},
"timestamp": {
"type": "string",
"description": "Message timestamp to unpin"
}
}
}slack_list_pinsList all pinned items in a channel.
Args:
Returns: List of pinned messages and files.
{
"type": "object",
"required": [
"channel"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"channel": {
"type": "string",
"description": "Channel ID"
}
}
}slack_get_conversation_historyFetch message history from a Slack channel or conversation.
Args:
Returns: Array of messages with user, text, timestamp, reactions, and thread info.
{
"type": "object",
"required": [
"channel_id"
],
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"latest": {
"type": "string",
"description": "Only messages before this Unix timestamp"
},
"oldest": {
"type": "string",
"description": "Only messages after this Unix timestamp"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_get_thread_repliesFetch replies in a message thread.
Args:
Returns: Array of messages in the thread, including the parent message.
{
"type": "object",
"required": [
"channel_id",
"thread_ts"
],
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"thread_ts": {
"type": "string",
"description": "Parent message timestamp"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_create_conversationCreate a new Slack channel.
Args:
Returns: The created channel object.
{
"type": "object",
"properties": {
"is_private": {
"type": "boolean",
"default": false,
"description": "Create as private channel"
}
}
}slack_archive_conversationArchive a Slack channel.
Args:
Note: Archived channels can be unarchived later.
{
"type": "object",
"required": [
"channel_id"
],
"properties": {
"channel_id": {
"type": "string",
"description": "Channel ID to archive"
}
}
}slack_unarchive_conversationUnarchive a Slack channel.
Args:
{
"type": "object",
"required": [
"channel_id"
],
"properties": {
"channel_id": {
"type": "string",
"description": "Channel ID to unarchive"
}
}
}slack_rename_conversationRename a Slack channel.
Args:
{
"type": "object",
"required": [
"channel_id",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "New channel name"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_set_conversation_topicSet the topic of a Slack channel.
Args:
{
"type": "object",
"required": [
"channel_id",
"topic"
],
"properties": {
"topic": {
"type": "string",
"description": "New topic"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_set_conversation_purposeSet the purpose/description of a Slack channel.
Args:
{
"type": "object",
"required": [
"channel_id",
"purpose"
],
"properties": {
"purpose": {
"type": "string",
"description": "New purpose"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_invite_to_conversationInvite users to a Slack channel.
Args:
{
"type": "object",
"required": [
"channel_id",
"user_ids"
],
"properties": {
"user_ids": {
"type": "string",
"description": "Comma-separated user IDs"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_kick_from_conversationRemove a user from a Slack channel.
Args:
{
"type": "object",
"required": [
"channel_id",
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "User ID to remove"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_join_conversationJoin a public Slack channel.
Args:
{
"type": "object",
"required": [
"channel_id"
],
"properties": {
"channel_id": {
"type": "string",
"description": "Channel ID to join"
}
}
}slack_leave_conversationLeave a Slack channel.
Args:
{
"type": "object",
"required": [
"channel_id"
],
"properties": {
"channel_id": {
"type": "string",
"description": "Channel ID to leave"
}
}
}slack_get_conversation_membersGet list of members in a Slack channel.
Args:
{
"type": "object",
"required": [
"channel_id"
],
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"channel_id": {
"type": "string",
"description": "Channel ID"
}
}
}slack_get_dnd_infoGet Do Not Disturb status for a user.
Args:
Returns: DND status, snooze info, and scheduled DND times.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"user_id": {
"type": "string",
"description": "User ID"
}
}
}slack_add_reactionAdd an emoji reaction to a message.
Args:
{
"type": "object",
"required": [
"channel",
"timestamp",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Emoji name without colons"
},
"channel": {
"type": "string",
"description": "Channel ID"
},
"timestamp": {
"type": "string",
"description": "Message timestamp"
}
}
}slack_list_filesList files shared in the workspace.
Args:
{
"type": "object",
"properties": {
"user": {
"type": "string",
"description": "Filter by user"
},
"limit": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1
},
"ts_to": {
"type": "number",
"description": "Files before this timestamp"
},
"types": {
"type": "string",
"description": "Filter by file types"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"channel": {
"type": "string",
"description": "Filter by channel"
},
"ts_from": {
"type": "number",
"description": "Files after this timestamp"
}
}
}slack_get_file_infoGet detailed information about a specific file.
Args:
Returns: File metadata, sharing info, and preview data.
{
"type": "object",
"required": [
"file_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"file_id": {
"type": "string",
"description": "File ID"
}
}
}slack_delete_fileDelete a file from Slack.
Args:
Note: You can only delete files uploaded by your app.
{
"type": "object",
"required": [
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "File ID to delete"
}
}
}slack_upload_fileUpload a file to Slack.
Args:
Returns: The uploaded file object.
{
"type": "object",
"required": [
"channels",
"content",
"filename"
],
"properties": {
"title": {
"type": "string",
"description": "File title"
},
"content": {
"type": "string",
"description": "File content (text)"
},
"channels": {
"type": "string",
"description": "Channel ID to share to"
},
"filename": {
"type": "string",
"description": "Filename"
},
"thread_ts": {
"type": "string",
"description": "Thread timestamp"
},
"initial_comment": {
"type": "string",
"description": "Comment to post with file"
}
}
}slack_post_messageSend a message to a Slack channel or conversation.
Args:
Returns: The posted message object with timestamp.
{
"type": "object",
"required": [
"channel",
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Message text"
},
"channel": {
"type": "string",
"description": "Channel ID or name"
},
"thread_ts": {
"type": "string",
"description": "Thread parent timestamp for replies"
},
"unfurl_links": {
"type": "boolean",
"default": true,
"description": "Enable URL previews"
},
"unfurl_media": {
"type": "boolean",
"default": true,
"description": "Enable media previews"
},
"reply_broadcast": {
"type": "boolean",
"default": false,
"description": "Also post to channel"
}
}
}slack_update_messageUpdate an existing Slack message.
Args:
Note: You can only update messages posted by your app/bot.
{
"type": "object",
"required": [
"channel",
"ts",
"text"
],
"properties": {
"ts": {
"type": "string",
"description": "Message timestamp to update"
},
"text": {
"type": "string",
"description": "New message text"
},
"channel": {
"type": "string",
"description": "Channel ID"
}
}
}slack_delete_messageDelete a Slack message.
Args:
Note: You can only delete messages posted by your app/bot.
{
"type": "object",
"required": [
"channel",
"ts"
],
"properties": {
"ts": {
"type": "string",
"description": "Message timestamp to delete"
},
"channel": {
"type": "string",
"description": "Channel ID"
}
}
}slack_schedule_messageSchedule a message to be sent at a future time.
Args:
Returns: Scheduled message ID that can be used to delete before sending.
{
"type": "object",
"required": [
"channel",
"text",
"post_at"
],
"properties": {
"text": {
"type": "string",
"description": "Message text"
},
"channel": {
"type": "string",
"description": "Channel ID"
},
"post_at": {
"type": "number",
"description": "Unix timestamp for when to send"
},
"thread_ts": {
"type": "string",
"description": "Thread parent timestamp"
}
}
}slack_delete_scheduled_messageDelete a scheduled message before it's sent.
Args:
{
"type": "object",
"required": [
"channel",
"scheduled_message_id"
],
"properties": {
"channel": {
"type": "string",
"description": "Channel ID"
},
"scheduled_message_id": {
"type": "string",
"description": "Scheduled message ID"
}
}
}slack_list_scheduled_messagesList all scheduled messages.
Args:
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"channel": {
"type": "string",
"description": "Filter by channel ID"
}
}
}slack_get_permalinkGet a permanent link to a specific message.
Args:
Returns: A permalink URL that can be shared.
{
"type": "object",
"required": [
"channel",
"message_ts"
],
"properties": {
"channel": {
"type": "string",
"description": "Channel ID"
},
"message_ts": {
"type": "string",
"description": "Message timestamp"
}
}
}slack_remove_reactionRemove an emoji reaction from a message.
Args:
{
"type": "object",
"required": [
"channel",
"timestamp",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Emoji name without colons"
},
"channel": {
"type": "string",
"description": "Channel ID"
},
"timestamp": {
"type": "string",
"description": "Message timestamp"
}
}
}slack_get_reactionsGet all reactions on a specific message.
Args:
Returns: Message with all reactions and who reacted.
{
"type": "object",
"required": [
"channel",
"timestamp"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"channel": {
"type": "string",
"description": "Channel ID"
},
"timestamp": {
"type": "string",
"description": "Message timestamp"
}
}
}slack_list_user_reactionsList items a user has reacted to.
Args:
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"user_id": {
"type": "string",
"description": "User ID"
}
}
}slack_add_reminderCreate a new reminder.
Args:
Returns: The created reminder object.
{
"type": "object",
"required": [
"text",
"time"
],
"properties": {
"text": {
"type": "string",
"description": "Reminder text"
},
"time": {
"type": "string",
"description": "When to remind"
},
"user_id": {
"type": "string",
"description": "User to remind"
}
}
}slack_complete_reminderMark a reminder as complete.
Args:
{
"type": "object",
"required": [
"reminder_id"
],
"properties": {
"reminder_id": {
"type": "string",
"description": "Reminder ID"
}
}
}slack_delete_reminderDelete a reminder.
Args:
{
"type": "object",
"required": [
"reminder_id"
],
"properties": {
"reminder_id": {
"type": "string",
"description": "Reminder ID"
}
}
}slack_get_reminderGet details about a specific reminder.
Args:
{
"type": "object",
"required": [
"reminder_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"reminder_id": {
"type": "string",
"description": "Reminder ID"
}
}
}slack_list_remindersList all reminders for the authenticated user.
Args:
Returns: List of all reminders.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}slack_search_messagesSearch for messages in Slack.
Args:
Example queries:
{
"type": "object",
"required": [
"query"
],
"properties": {
"sort": {
"enum": [
"score",
"timestamp"
],
"type": "string",
"default": "timestamp"
},
"count": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"description": "Search query"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"sort_dir": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "desc"
},
"highlight": {
"type": "boolean",
"default": false
}
}
}slack_search_filesSearch for files in Slack.
Args:
Example queries:
{
"type": "object",
"required": [
"query"
],
"properties": {
"sort": {
"enum": [
"score",
"timestamp"
],
"type": "string",
"default": "timestamp"
},
"count": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"description": "Search query"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"sort_dir": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "desc"
},
"highlight": {
"type": "boolean",
"default": false
}
}
}slack_search_allSearch for both messages and files in Slack.
Args:
Returns: Both message and file results in one response.
{
"type": "object",
"required": [
"query"
],
"properties": {
"sort": {
"enum": [
"score",
"timestamp"
],
"type": "string",
"default": "timestamp"
},
"count": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"description": "Search query"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"sort_dir": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "desc"
}
}
}slack_add_starStar (save) a message or file.
Args:
Starred items appear in the user's saved items.
{
"type": "object",
"required": [
"channel"
],
"properties": {
"channel": {
"type": "string",
"description": "Channel ID"
},
"file_id": {
"type": "string",
"description": "File ID"
},
"timestamp": {
"type": "string",
"description": "Message timestamp"
}
}
}slack_remove_starRemove star from a message or file.
Args:
{
"type": "object",
"required": [
"channel"
],
"properties": {
"channel": {
"type": "string",
"description": "Channel ID"
},
"file_id": {
"type": "string",
"description": "File ID"
},
"timestamp": {
"type": "string",
"description": "Message timestamp"
}
}
}slack_list_starsList starred items for the authenticated user.
Args:
Returns: List of starred messages, files, and channels.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}slack_get_team_infoGet information about the Slack workspace.
Args:
Returns: Team name, domain, icon, and enterprise info.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}slack_get_billable_infoGet billing status for users in the workspace.
Args:
Returns: Billing status for each user.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"user_id": {
"type": "string",
"description": "Specific user to check"
}
}
}slack_list_usergroupsList all user groups in the workspace.
Args:
Returns: List of user groups with handles and member counts.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"include_users": {
"type": "boolean",
"default": false
},
"include_disabled": {
"type": "boolean",
"default": false
}
}
}slack_create_usergroupCreate a new user group.
Args:
Returns: The created user group.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Group display name"
},
"handle": {
"type": "string",
"description": "Mention handle"
},
"channels": {
"type": "string",
"description": "Default channel IDs"
},
"description": {
"type": "string",
"description": "Description"
}
}
}slack_update_usergroupUpdate an existing user group.
Args:
{
"type": "object",
"required": [
"usergroup_id"
],
"properties": {
"name": {
"type": "string"
},
"handle": {
"type": "string"
},
"channels": {
"type": "string"
},
"description": {
"type": "string"
},
"usergroup_id": {
"type": "string",
"description": "User group ID"
}
}
}slack_disable_usergroupDisable a user group.
Args:
{
"type": "object",
"required": [
"usergroup_id"
],
"properties": {
"usergroup_id": {
"type": "string",
"description": "User group ID"
}
}
}slack_enable_usergroupEnable a disabled user group.
Args:
{
"type": "object",
"required": [
"usergroup_id"
],
"properties": {
"usergroup_id": {
"type": "string",
"description": "User group ID"
}
}
}slack_get_usergroup_membersGet list of users in a user group.
Args:
Returns: List of user IDs.
{
"type": "object",
"required": [
"usergroup_id"
],
"properties": {
"usergroup_id": {
"type": "string",
"description": "User group ID"
}
}
}slack_update_usergroup_membersReplace all members of a user group.
Args:
Note: This replaces all existing members.
{
"type": "object",
"required": [
"usergroup_id",
"user_ids"
],
"properties": {
"user_ids": {
"type": "string",
"description": "Comma-separated user IDs"
},
"usergroup_id": {
"type": "string",
"description": "User group ID"
}
}
}slack_list_usersList all users in the Slack workspace.
Args:
Returns: User objects with profile info, status, and metadata.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1
},
"cursor": {
"type": "string"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}slack_get_user_infoGet detailed information about a specific user.
Args:
Returns: User profile, status, timezone, admin status, and more.
{
"type": "object",
"required": [
"user_id"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"user_id": {
"type": "string",
"description": "User ID"
}
}
}slack_get_user_by_emailFind a user by their email address.
Args:
Returns: User object if found.
{
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"description": "Email address"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}slack_get_user_presenceGet the online/away status of a user.
Args:
Returns: Presence status (active/away) and connection info.
{
"type": "object",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "User ID"
}
}
}slack_set_presenceSet the bot's presence status.
Args:
{
"type": "object",
"required": [
"presence"
],
"properties": {
"presence": {
"enum": [
"auto",
"away"
],
"type": "string",
"description": "Presence to set"
}
}
}slack_get_user_conversationsList conversations a user is a member of.
Args:
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 100,
"minimum": 1
},
"types": {
"type": "string",
"default": "public_channel,private_channel,mpim,im"
},
"cursor": {
"type": "string"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"user_id": {
"type": "string",
"description": "User ID (default: current user)"
},
"exclude_archived": {
"type": "boolean",
"default": true
}
}
}