Everything is addressed by ID and timestamp, so most real tasks start with a lookup call before the one you actually wanted.
There is no tool that resolves #general to a channel ID, so slack_list_channels is the entry point for almost every flow, and slack_get_users plays the same role for people. The six bot scopes are public-channel scopes — nothing here reaches private channels or DMs.
What it is
A Model Context Protocol server for the Slack API, run as a Slack app with a bot token. It lists channels and workspace users, reads channel history and thread replies, and writes back by posting messages, replying in threads and adding emoji reactions.
What you get
- List public or pre-defined channels, paginated by cursor, up to 200 per call
- Read recent messages from a channel, 10 by default
- Read every reply in a thread from the parent message timestamp
- Post a new message to a channel by channel ID
- Reply into an existing thread using the parent
thread_ts - Add an emoji reaction to a message by channel and timestamp
- List workspace users with basic profiles, paginated, up to 200 per call
- Fetch one user's detailed profile by user ID
Requirements
A Slack app you create at api.slack.com and install to your workspace, plus the Bot User OAuth Token it issues, which starts with xoxb-. Two environment variables are required: SLACK_BOT_TOKEN and SLACK_TEAM_ID, the workspace ID starting with T. SLACK_CHANNEL_IDS is optional — a comma-separated list that limits which channels are accessible; without it all public channels are listed. The bot token scopes to add are channels:history, channels:read, chat:write, reactions:write, users:read and users.profile:read. The app also has to be added to the channels it needs to reach, which is a separate step from installing it to the workspace.
