Slack
8 tools using the Slack Web API — channels, messages, and threads. Implemented in
tools/slackOps.js.
Setup
- Go to api.slack.com/apps and create a new app (or use an existing one) for your workspace
- Under OAuth & Permissions, add these bot token scopes:
channels:read,groups:read— list channelsgroups:write— required specifically forslack_create_channelwithis_private: truechat:write— send messages and thread repliesusers:read— look up user infochannels:history,groups:history— read message history
- Install the app to your workspace
- Copy the Bot User OAuth Token (
xoxb-...) into.envasSLACK_BOT_TOKEN
Tools
| Tool | Risk | What it does |
|---|---|---|
slack_get_user | READ | Look up a user's info by user ID |
slack_list_channels | READ | List channels in the workspace |
slack_get_channel | READ | Get details of a single channel |
slack_read_messages | READ | Read recent message history from a channel |
slack_search_messages | READ | Search messages across the workspace |
slack_send_message | HIGH | Post a message to a channel |
slack_reply_thread | HIGH | Reply in a thread |
slack_create_channel | HIGH | Create a new channel |
slack_list_channels paginates automatically via Slack's response_metadata.next_cursor up to
the limit you request, so large workspaces don't silently get truncated to the first page.
Example
"Check the #incidents channel for anything from the last hour, and post a summary
in #eng-updates."
Claude calls slack_read_messages on #incidents → slack_send_message (confirm: true) on
#eng-updates.
Known limitation
slack_search_messages requires a Slack user token (search:read scope), not a bot token
— bot tokens return not_allowed_token_type for search specifically. Every other Slack tool
here works fine with a bot token.