| name | access |
| description | Manage Slack channel access control — pairing, allowlist, channel opt-in |
| version | 1.0.0 |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| license | MIT |
| user-invocable | true |
| argument-hint | pair <code> | policy <mode> | add <user_id> | remove <user_id> | channel <id> [opts] | status |
| allowed-tools | Read, Write, Edit |
| compatible-with | claude-code |
| tags | ["mcp","access"] |
/slack-channel:access
Overview
Manage who can reach your Claude Code session through Slack. Controls DM pairing, user allowlists, and channel opt-in policies via a local access.json state file with strict file permissions.
Prerequisites
- The
slack-channel MCP plugin must be installed and configured (run /slack-channel:configure first)
- State directory
~/.claude/channels/slack/ must exist (created by configure)
- Write access to
~/.claude/channels/slack/access.json
Usage
/slack-channel:access pair <code> # Approve a pending pairing
/slack-channel:access policy <pairing|allowlist|disabled> # Set DM policy
/slack-channel:access add <slack_user_id> # Add user to allowlist
/slack-channel:access remove <slack_user_id> # Remove from allowlist
/slack-channel:access channel <channel_id> [--mention] [--allow <user_id,...>] # Opt in a channel
/slack-channel:access channel remove <channel_id> # Remove channel opt-in
/slack-channel:access status # Show current config
State File
~/.claude/channels/slack/access.json
Instructions
Parse $ARGUMENTS and execute the matching subcommand:
pair <code>
- Load
access.json
- Find the pending entry matching
<code> (case-insensitive)
- If not found or expired: show "No pending pairing with that code."
- If found:
- Add
entry.senderId to allowFrom
- Remove the pending entry
- Save
access.json with permissions 0o600
- Show:
Approved! User <senderId> can now DM this session.
- Send a confirmation message to the user in Slack (via the reply tool if the MCP server is running)
policy <mode>
- Validate mode is one of:
pairing, allowlist, disabled
- Update
dmPolicy in access.json
- Save with 0o600
- Show the new policy and what it means:
pairing: New DMs get a code to approve (default)