slack-max-api-mcp 1.0.9 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.example CHANGED
@@ -41,9 +41,19 @@ SLACK_CLIENT_SECRET=
41
41
  # SLACK_API_BASE_URL=https://slack.com/api
42
42
 
43
43
  # Tool exposure settings
44
- # SLACK_TOOL_EXPOSURE_MODE=smart
45
- # SLACK_SMART_COMPAT_CORE_TOOLS=true
44
+ # SLACK_TOOL_EXPOSURE_MODE=operations
45
+ # SLACK_SMART_COMPAT_CORE_TOOLS=true # developer mode only; keep raw core tools visible
46
46
  # SLACK_ENABLE_METHOD_TOOLS=false
47
47
  # SLACK_METHOD_TOOL_PREFIX=slack_method
48
48
  # SLACK_MAX_METHOD_TOOLS=50
49
49
  # SLACK_CATALOG_PATH=C:\code_test\test22\data\slack-catalog.json
50
+
51
+ # Governance / operations settings
52
+ # SLACK_OPERATIONS_CONFIG_PATH=C:\code_test\test22\config\operations.json
53
+ # SLACK_OPERATIONS_STATE_PATH=C:\Users\<you>\.slack-max-api-mcp\operations-state.json
54
+ # SLACK_ENABLE_AUDIT_LOG=true
55
+ # SLACK_AUDIT_LOG_PATH=C:\Users\<you>\.slack-max-api-mcp\audit.log
56
+ # SLACK_METHOD_ALLOWLIST=chat.postMessage,conversations.history
57
+ # SLACK_METHOD_DENYLIST=users.deletePhoto
58
+ # SLACK_METHOD_ALLOW_PREFIXES=chat.,conversations.
59
+ # SLACK_METHOD_DENY_PREFIXES=admin.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Slack Max API MCP
2
2
 
3
- Slack Web API MCP server for Codex/Claude Code over `stdio`.
3
+ Operations-first Slack MCP server for Codex/Claude Code over `stdio`.
4
4
 
5
5
  - Package: `slack-max-api-mcp`
6
6
  - Runtime: pure CLI MCP over stdio
@@ -9,16 +9,86 @@ Slack Web API MCP server for Codex/Claude Code over `stdio`.
9
9
 
10
10
  ## Tool exposure
11
11
 
12
- - `smart` (default): 16 tools (`gateway_*` router names + core tools)
12
+ - `operations` (default): 14 operations-first tools only
13
+ - `developer`: operations tools + `gateway_*` + core Slack API tools
13
14
  - `legacy`: fixed core tools + optional catalog method tools
14
15
 
15
16
  Environment:
16
17
 
17
- - `SLACK_TOOL_EXPOSURE_MODE=smart|legacy`
18
+ - `SLACK_TOOL_EXPOSURE_MODE=operations|developer|legacy`
18
19
  - `SLACK_SMART_COMPAT_CORE_TOOLS=true|false`
19
20
  - `SLACK_ENABLE_METHOD_TOOLS=true|false`
20
21
  - `SLACK_MAX_METHOD_TOOLS=<number>`
21
22
 
23
+ `smart` is still accepted as an alias for `developer`.
24
+
25
+ ## Operations-first tools
26
+
27
+ The default surface is now operations-first and keeps raw API wrappers out of the main tool list:
28
+
29
+ - `ops_policy_info`: runtime policy/audit guardrails
30
+ - `ops_playbook_list`: built-in operations playbooks
31
+ - `ops_state_overview`: inspect local operations state (`incidents`, `digests`, `broadcasts`, `followups`)
32
+ - `ops_incident_create`: create + optionally announce a tracked incident
33
+ - `ops_incident_update`: persist a status change and optionally post a thread update
34
+ - `ops_incident_close`: close a tracked incident with stored resolution
35
+ - `ops_broadcast_prepare`: prepare and store a broadcast draft before sending
36
+ - `ops_playbook_run`: run standardized workflows (`incident_open`, `support_digest`, `release_broadcast`)
37
+ - `ops_channel_snapshot`: activity/participant/thread snapshot for a channel
38
+ - `ops_unanswered_threads`: find stale or unanswered question-like threads
39
+ - `ops_sla_breach_scan`: detect SLA breach threads across multiple channels
40
+ - `ops_sla_followup`: auto follow-up replies for SLA breaches with duplicate-suppression state
41
+ - `ops_broadcast_message`: send a prepared draft or direct operational announcement
42
+ - `ops_audit_log_read`: inspect local JSONL audit logs
43
+
44
+ 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.
45
+
46
+ ## Config and state
47
+
48
+ - Operations config file: `config/operations.json`
49
+ - Override path: `SLACK_OPERATIONS_CONFIG_PATH=<path>`
50
+ - Local state path: `~/.slack-max-api-mcp/operations-state.json`
51
+ - Override path: `SLACK_OPERATIONS_STATE_PATH=<path>`
52
+
53
+ The operations config controls incident templates, digest defaults, broadcast templates, and follow-up suppression windows.
54
+
55
+ ### Playbook examples
56
+
57
+ ```text
58
+ Codex, run ops_playbook_run with playbook=incident_open on #incident-war-room.
59
+ title is "DB Latency Spike", severity is "sev2", owner is "@oncall-db", dry_run=true.
60
+ ```
61
+
62
+ ```text
63
+ Codex, run ops_playbook_run with playbook=support_digest for channels #support-kor and #support-global.
64
+ lookback_hours=24, sla_minutes=60, report_channel=#support-ops, dry_run=true.
65
+ ```
66
+
67
+ ```text
68
+ Codex, run ops_sla_followup for channels #support-kor and #support-global.
69
+ sla_minutes=90, lookback_hours=24, max_messages=20, dry_run=true.
70
+ ```
71
+
72
+ ```text
73
+ Codex, run ops_incident_create on #incident-war-room.
74
+ title is "API Error Spike", summary is "5xx rate above threshold", owner is "@oncall-api", dry_run=true.
75
+ ```
76
+
77
+ ```text
78
+ Codex, run ops_state_overview with collection=incidents and limit=10.
79
+ ```
80
+
81
+ ## Governance settings
82
+
83
+ - `SLACK_ENABLE_AUDIT_LOG=true|false` (default: `true`)
84
+ - `SLACK_AUDIT_LOG_PATH=<path>` (default: `~/.slack-max-api-mcp/audit.log`)
85
+ - `SLACK_METHOD_ALLOWLIST=chat.postMessage,conversations.history`
86
+ - `SLACK_METHOD_DENYLIST=users.deletePhoto`
87
+ - `SLACK_METHOD_ALLOW_PREFIXES=chat.,conversations.`
88
+ - `SLACK_METHOD_DENY_PREFIXES=admin.`
89
+
90
+ If allowlist/allow-prefix is set, methods outside that policy are blocked.
91
+
22
92
  ## Install
23
93
 
24
94
  ```powershell
@@ -0,0 +1,75 @@
1
+ {
2
+ "playbooks": {
3
+ "incident_open": {
4
+ "summary": "Post an incident opening message with a standard operations template.",
5
+ "required_inputs": ["channel", "title"],
6
+ "supports_dry_run": true
7
+ },
8
+ "support_digest": {
9
+ "summary": "Build and optionally publish a support digest from channel activity.",
10
+ "required_inputs": ["channels"],
11
+ "supports_dry_run": true
12
+ },
13
+ "release_broadcast": {
14
+ "summary": "Broadcast a release announcement to multiple channels.",
15
+ "required_inputs": ["channels", "title", "summary"],
16
+ "supports_dry_run": true
17
+ }
18
+ },
19
+ "incidents": {
20
+ "default_channel": "",
21
+ "default_owner": "TBD",
22
+ "default_severity": "sev2",
23
+ "update_interval_minutes": 15,
24
+ "open_template": [
25
+ ":rotating_light: Incident Open - {{title}}",
26
+ "Severity: {{severity_upper}}",
27
+ "Owner: {{owner}}",
28
+ "Summary: {{summary}}",
29
+ "{{details_line}}",
30
+ "Next update: {{next_update_text}}"
31
+ ],
32
+ "update_template": [
33
+ ":information_source: Incident Update - {{title}}",
34
+ "Status: {{status_upper}}",
35
+ "Severity: {{severity_upper}}",
36
+ "Owner: {{owner}}",
37
+ "Summary: {{summary}}",
38
+ "{{details_line}}",
39
+ "Next update: {{next_update_text}}"
40
+ ],
41
+ "close_template": [
42
+ ":white_check_mark: Incident Resolved - {{title}}",
43
+ "Severity: {{severity_upper}}",
44
+ "Owner: {{owner}}",
45
+ "Resolution: {{resolution}}",
46
+ "{{details_line}}"
47
+ ]
48
+ },
49
+ "support_digest": {
50
+ "default_lookback_hours": 24,
51
+ "default_sla_minutes": 60,
52
+ "default_max_threads": 10,
53
+ "header_template": "Support Digest ({{lookback_hours}}h)",
54
+ "sla_template": "SLA threshold: {{sla_minutes}}m"
55
+ },
56
+ "broadcasts": {
57
+ "default_template": "release_default",
58
+ "default_mrkdwn": true,
59
+ "templates": {
60
+ "release_default": [
61
+ ":rocket: Release - {{title}}",
62
+ "{{summary}}",
63
+ "{{details}}"
64
+ ]
65
+ }
66
+ },
67
+ "followups": {
68
+ "default_sla_minutes": 60,
69
+ "default_lookback_hours": 24,
70
+ "default_max_threads_per_channel": 20,
71
+ "default_max_messages": 30,
72
+ "suppress_hours": 6,
73
+ "reminder_template": "Friendly reminder: this thread appears to be pending for more than {{sla_minutes}} minutes. Please provide an update."
74
+ }
75
+ }
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "slack-max-api-mcp",
3
- "version": "1.0.9",
4
- "description": "Slack MCP server (stdio) for Codex and Claude Code",
3
+ "version": "1.0.10",
4
+ "description": "Operations-first Slack MCP server (stdio) for Codex and Claude Code",
5
5
  "main": "src/slack-mcp-server.js",
6
6
  "bin": {
7
7
  "slack-max-api-mcp": "src/slack-mcp-server.js"
8
8
  },
9
9
  "files": [
10
10
  "src",
11
+ "config",
11
12
  "data/slack-catalog.json",
12
13
  "README.md",
13
14
  ".env.example"