Files
QwenClaw-with-Auth/skills/claude-codex-settings/plugins/slack-tools/commands/setup.md

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_TOKEN contains REPLACE_WITH_GITHUB_PAT
    • slack.env.SLACK_BOT_TOKEN contains REPLACE_WITH_BOT_TOKEN
    • slack.env.SLACK_USER_TOKEN contains REPLACE_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:setup again when ready
  • Remind them they can disable Slack MCP via /mcp if 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:setup again 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:setup again 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

  1. Read current ${CLAUDE_PLUGIN_ROOT}/.mcp.json
  2. Create backup at ${CLAUDE_PLUGIN_ROOT}/.mcp.json.backup
  3. Update these values:
    • slack.env.GITHUB_TOKEN to the GitHub PAT
    • slack.env.SLACK_BOT_TOKEN to the bot token
    • slack.env.SLACK_USER_TOKEN to the user token
  4. 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