Help us improve
Share bugs, ideas, or general feedback.
From slack-mcp
Guides users through setting up the redhat-community-ai-tools Slack MCP server for Claude Code using browser session tokens.
npx claudepluginhub redhat-community-ai-tools/slack-mcpHow this skill is triggered — by the user, by Claude, or both
Slash command
/slack-mcp:setup-slack-mcpThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guide the user step-by-step through setting up the [redhat-community-ai-tools/slack-mcp](https://github.com/redhat-community-ai-tools/slack-mcp) server for Claude Code.
Guides integration of Model Context Protocol (MCP) servers into Claude Code plugins via .mcp.json or plugin.json for external service tools, with scope management (local, project, user).
Bootstraps an aweek-branded Slack app via API, provisions Socket-Mode and bot tokens, and persists credentials to enable Claude chats through `aweek serve` SlackAdapter.
Guides integration of Model Context Protocol (MCP) servers into Claude Code plugins via .mcp.json or plugin.json. Covers stdio, SSE, and HTTP server types.
Share bugs, ideas, or general feedback.
Guide the user step-by-step through setting up the redhat-community-ai-tools/slack-mcp server for Claude Code.
The server uses browser session tokens (xoxc/xoxd) extracted from a logged-in Slack session — no Slack admin approval or OAuth app required.
Check if the plugin is already installed:
cat ~/.claude/plugins/installed_plugins.json 2>/dev/null || echo '{}'
If slack-mcp does not appear in the output, the plugin needs to be registered as a marketplace source first. Read ~/.claude/settings.json and add redhat-community-ai-tools under extraKnownMarketplaces (create the key if it doesn't exist, preserve all existing content):
"extraKnownMarketplaces": {
"redhat-community-ai-tools": {
"source": {
"source": "settings",
"name": "redhat-community-ai-tools",
"plugins": [
{
"name": "slack-mcp",
"source": {
"source": "github",
"repo": "redhat-community-ai-tools/slack-mcp"
}
}
]
}
}
}
Then tell the user:
I've updated your
~/.claude/settings.json. Please run these two commands in the Claude Code prompt box, then come back:
/reload-plugins/plugin install slack-mcp@redhat-community-ai-toolsOnce installed, tell me and I'll continue the setup.
Wait for the user to confirm before proceeding.
python3 --version # needs 3.8+
podman --version # or: docker --version
If podman/docker is missing, tell the user to install it and stop here.
The setup script handles everything from here: venv creation, Playwright install, token extraction, wrapper script generation, and Claude Code registration.
Download and run it in a separate terminal (it cannot run inside Claude Code because it opens a browser window):
python3 <(curl -fsSL https://raw.githubusercontent.com/redhat-community-ai-tools/slack-mcp/main/scripts/setup-slack-mcp.py)
Or if the user has already cloned this repo:
python3 /path/to/slack-mcp/scripts/setup-slack-mcp.py
Tell the user:
Run the script in a separate terminal. It will:
- Install Playwright and Chromium (one-time, ~2 min)
- Pull the
quay.io/redhat-ai-tools/slack-mcpcontainer image- Open a Chromium browser — log in to Slack, then press Enter in the terminal
- Prompt you for a Slack channel ID to receive server logs (a self-DM or DM with Slackbot works well — navigate there in https://app.slack.com and copy the last segment of the URL)
- Write the wrapper script and update
~/.claude/settings.jsonautomaticallyCome back here when the script prints "Setup complete!"
Wait for the user to confirm the script finished before proceeding.
Tell the user:
Please fully restart Claude Code now. The
slackMCP tools will not be available until the next session.
Wait for the user to confirm they have restarted.
The slack MCP server should now appear in the available tools. Suggest they test it by asking: "What channels do I have access to in Slack?"
Tokens expire when the Slack browser session ends (typically weeks to months). When they stop working, run:
python3 /path/to/slack-mcp/scripts/setup-slack-mcp.py --refresh-tokens
No other changes needed — the wrapper script picks up the new tokens automatically.