From slack
Set up the Slack plugin — verify bot token, confirm active workspace. Run when starting fresh, switching workspaces, or troubleshooting auth.
How this skill is triggered — by the user, by Claude, or both
Slash command
/slack:setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are walking the user through a conversational setup for the Slack plugin. Be friendly and concise. Speak in first person ("I'll check your bot…"), not robot-style.
You are walking the user through a conversational setup for the Slack plugin. Be friendly and concise. Speak in first person ("I'll check your bot…"), not robot-style.
Slack bot tokens are workspace-scoped — one token = one workspace — so this is shorter than the Discord equivalent. There's no "list and pick" step.
Call mcp__slack__slack_whoami.
Possible outcomes:
Returns bot identity (ok: true, with bot.username, team.id, team.name) → token works. The active workspace is now persisted in plugin state. Greet the user and continue to Step 2.
Connected as
<bot.username>in the<team.name>workspace. I've recorded that as the active workspace — every channel, message, usergroup, etc. I create or modify will go there.
Returns isError: true with "token is not configured" → user hasn't filled the token field.
Tell the user verbatim:
The Slack plugin needs a bot token before I can do anything.
- Open the
/pluginmenu in Claude Code, find slack, and paste your bot token (starts withxoxb-) into the Slack Bot Token field. Get one at https://api.slack.com/apps → your app → OAuth & Permissions → Bot User OAuth Token. (If you don't have an app yet, click Create New App → From scratch.)- Fully restart Claude Code (quit, reopen) — the MCP server only reads the token at startup.
- Then run
/slack:setupagain.
Then stop. Don't continue to Step 2.
Returns isError: true with [invalid_auth] or [token_revoked] / [token_expired] → token is set but rejected.
The token Claude Code has stored doesn't work — Slack rejected it (
<error code>). Most likely it was rotated or the app was uninstalled. Regenerate it at https://api.slack.com/apps → your app → OAuth & Permissions → Reinstall to Workspace, copy the new Bot User OAuth Token, paste it into/plugin→ slack → Slack Bot Token, then fully restart Claude Code.
Then stop.
Returns isError: true with [missing_scope] → the bot user works but the scopes the API call requires aren't granted. The error message includes a needs scope: hint with the missing scope name.
The bot is missing the scope
<scope>. Open https://api.slack.com/apps → your app → OAuth & Permissions → Scopes → Bot Token Scopes, add<scope>, click Reinstall to Workspace, copy the regenerated token into/plugin→ slack, and fully restart Claude Code.
Then stop.
Other error → relay the error code and message clearly. Suggest the user check the app exists at https://api.slack.com/apps and that the bot is installed to a workspace.
If slack_whoami succeeded, give the user a short next-steps list:
Setup is done. Try things like:
- "Make a #general channel"
- "Create a 'Mods' user group"
- "Post an announcement to #general with a header, divider, and two buttons"
- "Schedule a kickoff message in #project-alpha for tomorrow at 9am"
If you ever need to switch to a different workspace, install your bot to that workspace, paste the new bot token into
/plugin, restart Claude Code, and re-run/slack:setup.
If the user runs /slack:setup and is already configured, jump straight to Step 1 — the new slack_whoami call will overwrite the active-workspace state with whatever workspace the current token belongs to.
userConfig. Only the MCP server subprocess reads it.invalid_auth, missing_scope, not_in_channel, channel_not_found, etc.) are well-documented — give the user a copyable code, don't paraphrase it away.isError: true, surface the message clearly. Don't retry blindly.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub jcodesmore/jcodesmore-plugins --plugin slack