4.3 KiB
4.3 KiB
description
| description |
|---|
| Configure Slack MCP tokens |
Slack Tools Setup
Source: ubie-oss/slack-mcp-server
Configure the Slack MCP server with your tokens.
Step 1: Check Current Status
Read the MCP configuration from ${CLAUDE_PLUGIN_ROOT}/.mcp.json.
Check if Slack is configured:
- If any of these contain placeholder values, it needs configuration:
slack.env.GITHUB_TOKENcontainsREPLACE_WITH_GITHUB_PATslack.env.SLACK_BOT_TOKENcontainsREPLACE_WITH_BOT_TOKENslack.env.SLACK_USER_TOKENcontainsREPLACE_WITH_USER_TOKEN
- If all contain actual tokens (ghp_, xoxb-, xoxp-), already configured
Report status:
- "Slack MCP is not configured - needs tokens"
- OR "Slack MCP is already configured"
Step 2: Show Setup Guide
Tell the user:
To configure Slack MCP, you need 3 tokens:
1. GitHub PAT (ghp_...) - For npm package access
Get it at: https://github.com/settings/tokens
Required scope: read:packages
2. Bot Token (xoxb-...) - From your Slack app
3. User Token (xoxp-...) - From your Slack app
Get both at: https://api.slack.com/apps
Required scopes: channels:history, channels:read, chat:write, users:read
Don't need Slack MCP? Disable it via /mcp command.
Step 3: Ask for GitHub PAT
Use AskUserQuestion:
- question: "Do you have your GitHub PAT ready?"
- header: "GitHub PAT"
- options:
- label: "Yes, I have it" description: "I have my GitHub PAT ready to paste (starts with ghp_)"
- label: "No, skip for now" description: "I'll configure it later"
If user selects "No, skip for now":
- Tell them they can run
/slack-tools:setupagain when ready - Remind them they can disable Slack MCP via
/mcpif not needed - Exit
If user selects "Yes" or provides token via "Other":
- If they provided token in "Other" response, use that
- Otherwise, ask them to paste the token
Step 4: Ask for Bot Token
Use AskUserQuestion:
- question: "Do you have your Slack Bot Token ready?"
- header: "Bot Token"
- options:
- label: "Yes, I have it" description: "I have my Slack bot token ready (starts with xoxb-)"
- label: "No, skip for now" description: "I'll configure it later"
If user selects "No, skip for now":
- Tell them they can run
/slack-tools:setupagain when ready - Exit
If user selects "Yes" or provides token via "Other":
- If they provided token in "Other" response, use that
- Otherwise, ask them to paste the token
Step 5: Ask for User Token
Use AskUserQuestion:
- question: "Do you have your Slack User Token ready?"
- header: "User Token"
- options:
- label: "Yes, I have it" description: "I have my Slack user token ready (starts with xoxp-)"
- label: "No, skip for now" description: "I'll configure it later"
If user selects "No, skip for now":
- Tell them they can run
/slack-tools:setupagain when ready - Exit
If user selects "Yes" or provides token via "Other":
- If they provided token in "Other" response, use that
- Otherwise, ask them to paste the token
Step 6: Validate Tokens
Validate the provided tokens:
- GitHub PAT must start with
ghp_ - Bot Token must start with
xoxb- - User Token must start with
xoxp-
If any invalid:
- Show error with specific token that failed validation
- Ask if they want to try again or skip
Step 7: Update Configuration
- Read current
${CLAUDE_PLUGIN_ROOT}/.mcp.json - Create backup at
${CLAUDE_PLUGIN_ROOT}/.mcp.json.backup - Update these values:
slack.env.GITHUB_TOKENto the GitHub PATslack.env.SLACK_BOT_TOKENto the bot tokenslack.env.SLACK_USER_TOKENto the user token
- Write updated configuration back to
${CLAUDE_PLUGIN_ROOT}/.mcp.json
Step 8: Confirm Success
Tell the user:
Slack MCP configured successfully!
IMPORTANT: Restart Claude Code for changes to take effect.
- Exit Claude Code
- Run `claude` again
To verify after restart, run /mcp and check that 'slack' server is connected.
Troubleshooting
If Slack MCP fails after configuration:
Common fixes:
1. invalid_auth - Token expired or invalid, regenerate from api.slack.com
2. missing_scope - Re-install app with required OAuth scopes
3. Token format - Bot tokens start with xoxb-, user tokens with xoxp-
4. Channel not found - Ensure bot is invited to the channel
5. Rate limited - Wait and retry, reduce request frequency