# Slack

MCP server for Slack Web API — send messages, manage channels, search content, and automate your workspace.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add node2flow/slack

# Browse available tools
npx -y @smithery/cli@latest tool list node2flow/slack

# Get full schema for a tool
npx -y @smithery/cli@latest tool get node2flow/slack slack_send_message

# Call a tool
npx -y @smithery/cli@latest tool call node2flow/slack slack_send_message '{}'
```

## Direct MCP Connection

Endpoint: `https://slack--node2flow.run.tools`

**Required config:**
- `SLACK_BOT_TOKEN` (query) — Slack Bot User OAuth Token (starts with xoxb-). Create at https://api.slack.com/apps

## Tools (38)

- `slack_send_message` — Send a message to a Slack channel, DM, or thread. Supports Block Kit for rich formatting. Always provide "text" as noti…
- `slack_update_message` — Update an existing message. Bot can only update messages it posted. Provide new text and/or blocks.
- `slack_delete_message` — Delete a message. Bot can only delete messages it posted.
- `slack_schedule_message` — Schedule a message for future delivery. Max 120 days in the future. Max 30 scheduled messages per channel per 5 minutes.
- `slack_delete_scheduled_message` — Delete a pending scheduled message before it is sent. Cannot delete messages posting within 60 seconds.
- `slack_list_scheduled_messages` — List pending scheduled messages. Optionally filter by channel or time range.
- `slack_get_permalink` — Get a permanent URL for a specific message.
- `slack_list_channels` — List channels in the workspace. Filter by type: public_channel, private_channel, im, mpim.
- `slack_get_channel_info` — Get detailed information about a channel including topic, purpose, member count.
- `slack_get_channel_history` — Get message history from a channel. Returns messages in reverse chronological order. Free plan: 90-day history limit.
- `slack_get_thread_replies` — Get replies in a message thread. Returns the parent message and all replies.
- `slack_get_channel_members` — List all members of a channel. Returns user IDs with cursor-based pagination.
- `slack_create_channel` — Create a new public or private channel. Name must be lowercase, numbers, hyphens, underscores (max 80 chars).
- `slack_archive_channel` — Archive a channel. Archived channels can be unarchived later.
- `slack_invite_to_channel` — Invite one or more users to a channel. Supports up to 1000 user IDs.
- `slack_kick_from_channel` — Remove a user from a channel.
- `slack_join_channel` — Join a public channel. Bot must have channels:join scope.
- `slack_set_channel_topic` — Set or update the topic of a channel.
- `slack_open_conversation` — Open a DM or multi-person DM. Pass 1 user ID for DM, 2-8 for group DM.
- `slack_list_users` — List all users in the workspace including deactivated users. Supports cursor-based pagination.
- `slack_get_user_info` — Get detailed information about a user including profile, status, admin flags.
- `slack_add_reaction` — Add an emoji reaction to a message. Use emoji name without colons (e.g. "thumbsup" not ":thumbsup:").
- `slack_remove_reaction` — Remove an emoji reaction from a message.
- `slack_get_reactions` — Get all reactions for a specific message, including emoji names, counts, and user IDs.
- `slack_search_messages` — Search for messages matching a query. Supports modifiers: in:#channel, from:@user, has:reaction, before:date, after:dat…
- `slack_search_files` — Search for files matching a query. Supports same modifiers as message search.
- `slack_upload_file` — Upload a text file to Slack. Uses the 2-step upload process (getUploadURLExternal + completeUploadExternal). For text/c…
- `slack_list_files` — List files in the workspace. Filter by channel, user, or type. Free plan: files older than 90 days are deleted.
- `slack_delete_file` — Delete a file from the workspace.
- `slack_pin_message` — Pin a message to a channel. Cannot pin channel join messages or files.
- `slack_unpin_message` — Unpin a message from a channel.
- `slack_list_pins` — List all pinned items in a channel.
- `slack_add_bookmark` — Add a bookmark (link) to a channel. Max 100 bookmarks per channel.
- `slack_edit_bookmark` — Update an existing bookmark in a channel.
- `slack_remove_bookmark` — Remove a bookmark from a channel.
- `slack_list_bookmarks` — List all bookmarks in a channel.
- `slack_get_team_info` — Get information about the workspace/team: name, domain, icon, etc.
- `slack_list_emoji` — List all custom emoji in the workspace. Returns emoji name-to-URL mapping. Aliases use "alias:emoji_name" format.

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get node2flow/slack <tool-name>
```

## Resources

- `slack://server-info` — Connection status and available tools for this Slack MCP server

## Prompts (2)

- `send-and-manage-messages` — Guide for sending and managing Slack messages
- `search-and-navigate` — Guide for searching messages/files and navigating channels

---

License: MIT
