Enables operations-first management of Slack workspaces, featuring tools for incident tracking, SLA breach monitoring, automated follow-up replies, message broadcasting, and granular access control policies.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Slack Max API MCPSearch for messages about 'Q4 planning' and summarize the main points."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Slack Max API MCP
Operations-first Slack MCP server for Codex/Claude Code over stdio.
Package:
slack-max-api-mcpRuntime: pure CLI MCP over stdio
HTTP Slack API gateway/proxy: removed
Local HTTP callback is still used only for OAuth code return
Tool exposure
operations(default): 21 operations-first tools onlydeveloper: operations tools +gateway_*+ core Slack API toolslegacy: fixed core tools + optional catalog method tools (final count depends on method-tool settings)
Environment:
SLACK_TOOL_EXPOSURE_MODE=operations|developer|legacySLACK_SMART_COMPAT_CORE_TOOLS=true|falseSLACK_ENABLE_METHOD_TOOLS=true|falseSLACK_MAX_METHOD_TOOLS=<number>
smart is still accepted as an alias for developer.
Operations-first tools
The default surface is now operations-first and keeps raw API wrappers out of the main tool list:
ops_policy_info: runtime policy/audit guardrailsops_access_policy_info: active access profile, effective rules, pending requests, active grantsops_access_policy_set: switch active access-control profile (open,readonly,restricted)ops_access_request: create a scoped elevation request for read/write/admin/delete accessops_access_approve: approve a pending elevation request and activate a time-boxed grantops_access_revoke: revoke one grant or all active grantsops_playbook_list: built-in operations playbooksops_state_overview: inspect local operations state (incidents,digests,broadcasts,followups)ops_incident_create: create + optionally announce a tracked incidentops_incident_update: persist a status change and optionally post a thread updateops_incident_close: close a tracked incident with stored resolutionops_broadcast_prepare: prepare and store a broadcast draft before sendingops_playbook_run: run standardized workflows (incident_open,support_digest,release_broadcast)ops_channel_snapshot: activity/participant/thread snapshot for a channelops_unanswered_threads: find stale or unanswered question-like threadsops_sla_breach_scan: detect SLA breach threads across multiple channelsops_sla_followup: auto follow-up replies for SLA breaches with duplicate-suppression stateops_broadcast_message: send a prepared draft or direct operational announcementops_recent_failures: list recent human-readable failures from local diagnostics stateops_explain_error: explain one recorded failure with troubleshooting hintsops_audit_log_read: inspect local JSONL audit logs
These tools let teams run repeatable Slack operations without rebuilding multi-step API call chains, and they persist local operational state to make incidents/broadcasts/followups first-class records.
Config and state
Operations config file:
config/operations.jsonOverride path:
SLACK_OPERATIONS_CONFIG_PATH=<path>Local state path:
~/.slack-max-api-mcp/operations-state.jsonOverride path:
SLACK_OPERATIONS_STATE_PATH=<path>
The operations config controls incident templates, digest defaults, broadcast templates, and follow-up suppression windows.
Access control and diagnostics
Access control is enforced inside the MCP server, not only by prompt instructions.
Default profiles are
open,readonly, andrestricted.Elevation is two-step: create a scoped request with
ops_access_request, then explicitly approve it withops_access_approve.Recorded failures are stored in operations state and can be inspected with
ops_recent_failuresandops_explain_error.
Playbook examples
Codex, run ops_playbook_run with playbook=incident_open on #incident-war-room.
title is "DB Latency Spike", severity is "sev2", owner is "@oncall-db", dry_run=true.Codex, run ops_playbook_run with playbook=support_digest for channels #support-kor and #support-global.
lookback_hours=24, sla_minutes=60, report_channel=#support-ops, dry_run=true.Codex, run ops_sla_followup for channels #support-kor and #support-global.
sla_minutes=90, lookback_hours=24, max_messages=20, dry_run=true.Codex, run ops_incident_create on #incident-war-room.
title is "API Error Spike", summary is "5xx rate above threshold", owner is "@oncall-api", dry_run=true.Codex, run ops_state_overview with collection=incidents and limit=10.Governance settings
SLACK_ENABLE_AUDIT_LOG=true|false(default:true)SLACK_AUDIT_LOG_PATH=<path>(default:~/.slack-max-api-mcp/audit.log)SLACK_METHOD_ALLOWLIST=chat.postMessage,conversations.historySLACK_METHOD_DENYLIST=users.deletePhotoSLACK_METHOD_ALLOW_PREFIXES=chat.,conversations.SLACK_METHOD_DENY_PREFIXES=admin.
If allowlist/allow-prefix is set, methods outside that policy are blocked.
Install
npm install -g slack-max-api-mcp@latestRegister MCP
Codex:
codex mcp add slack-max -- npx -y slack-max-api-mcp
codex mcp listClaude Code:
claude mcp add slack-max -- npx -y slack-max-api-mcp
claude mcp listAuth options
1) Local OAuth (single machine)
setx SLACK_CLIENT_ID "YOUR_CLIENT_ID"
setx SLACK_CLIENT_SECRET "YOUR_CLIENT_SECRET"
npx -y slack-max-api-mcp oauth login --profile my-workspace --team T1234567890Helper commands:
npx -y slack-max-api-mcp oauth list
npx -y slack-max-api-mcp oauth use <profile_key_or_name>
npx -y slack-max-api-mcp oauth current2) Central onboarding server (team onboarding, no client secret on team PCs)
Run on central server:
setx SLACK_CLIENT_ID "YOUR_CLIENT_ID"
setx SLACK_CLIENT_SECRET "YOUR_CLIENT_SECRET"
setx SLACK_ONBOARD_SERVER_HOST "0.0.0.0"
setx SLACK_ONBOARD_SERVER_PORT "8790"
setx SLACK_ONBOARD_PUBLIC_BASE_URL "https://onboard.example.com"
npx -y slack-max-api-mcp onboard-server startRun on team member PC:
npx -y slack-max-api-mcp onboard runThis flow opens browser OAuth via central server and saves tokens to local token store.
Default onboard server URL is https://43.202.54.65.sslip.io.
Use --server (or SLACK_ONBOARD_SERVER_URL) only when overriding it.
3) Manual token mode
setx SLACK_BOT_TOKEN "xoxb-..."
setx SLACK_USER_TOKEN "xoxp-..."Token precedence
token_overridein tool inputenv tokens:
SLACK_BOT_TOKEN/SLACK_USER_TOKEN/SLACK_TOKENactive OAuth profile from token store (
SLACK_PROFILEor default profile).env.examplefallback ifSLACK_ALLOW_ENV_EXAMPLE_FALLBACK=true
Development
npm install
npm run check
npm run build:catalog
npm run start
node src/slack-mcp-server.js helpThis server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.