@jtalk22/slack-mcp 1.2.3 → 2.0.0

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.
Files changed (39) hide show
  1. package/README.md +23 -7
  2. package/docs/API.md +11 -4
  3. package/docs/COMMUNICATION-STYLE.md +1 -0
  4. package/docs/COMPATIBILITY.md +19 -0
  5. package/docs/HN-LAUNCH.md +32 -32
  6. package/docs/INDEX.md +10 -1
  7. package/docs/INSTALL-PROOF.md +18 -0
  8. package/docs/LAUNCH-COPY-v2.0.0.md +59 -0
  9. package/docs/LAUNCH-MATRIX.md +20 -0
  10. package/docs/LAUNCH-OPS.md +70 -0
  11. package/docs/RELEASE-HEALTH.md +81 -0
  12. package/docs/SETUP.md +2 -0
  13. package/docs/TROUBLESHOOTING.md +6 -4
  14. package/docs/WEB-API.md +12 -1
  15. package/docs/release-health/2026-02-25.md +33 -0
  16. package/docs/release-health/2026-02-26.md +33 -0
  17. package/docs/release-health/24h-delta.md +21 -0
  18. package/docs/release-health/24h-end.md +33 -0
  19. package/docs/release-health/24h-start.md +33 -0
  20. package/docs/release-health/latest.md +33 -0
  21. package/docs/release-health/launch-log-template.md +21 -0
  22. package/docs/release-health/version-parity.md +21 -0
  23. package/lib/handlers.js +121 -85
  24. package/lib/slack-client.js +37 -17
  25. package/lib/token-store.js +103 -30
  26. package/package.json +26 -39
  27. package/public/demo-claude.html +4 -4
  28. package/public/demo-video.html +2 -2
  29. package/public/demo.html +2 -2
  30. package/scripts/build-release-health-delta.js +201 -0
  31. package/scripts/check-public-language.sh +25 -0
  32. package/scripts/check-version-parity.js +162 -0
  33. package/scripts/collect-release-health.js +150 -0
  34. package/scripts/setup-wizard.js +35 -9
  35. package/scripts/token-cli.js +6 -4
  36. package/scripts/verify-install-flow.js +107 -2
  37. package/src/server-http.js +26 -4
  38. package/src/server.js +23 -7
  39. package/src/web-server.js +61 -23
package/README.md CHANGED
@@ -32,11 +32,14 @@
32
32
  <a href="https://github.com/jtalk22/slack-mcp-server/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/jtalk22/slack-mcp-server/ci.yml?label=build" alt="Build Status"></a>
33
33
  <a href="https://smithery.ai/server/jtalk22/slack-mcp-server"><img src="https://img.shields.io/badge/Smithery-Registry-4A154B" alt="Smithery"></a>
34
34
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
35
- <a href="https://github.com/sponsors/jtalk22"><img src="https://img.shields.io/badge/Sponsor-♡-ea4aaa?logo=github" alt="Sponsor"></a>
36
35
  </p>
37
36
 
38
37
  ---
39
38
 
39
+ > **Release:** `v2.0.0` is live with deterministic diagnostics and no MCP tool renames/removals.
40
+ > Release notes: [.github/v2.0.0-release-notes.md](.github/v2.0.0-release-notes.md)
41
+ > Install proof: [docs/INSTALL-PROOF.md](docs/INSTALL-PROOF.md)
42
+
40
43
  > Free local-first path: install with `npx -y @jtalk22/slack-mcp`, run on your own machine, and keep full control of session tokens.
41
44
 
42
45
  ### Why This Exists
@@ -45,7 +48,7 @@ I built this because I was working with someone to help me manage a complex work
45
48
 
46
49
  Screenshotting messages is not a workflow.
47
50
 
48
- This server bridges the gap. It creates a secure, local bridge between Claude and your Slack web session. It gives your AI the same access **you** already have in the browser—search history, summarize threads, find that thing someone sent you three weeks ago—without fighting the platform.
51
+ This server bridges the gap. It creates a secure, local bridge between Claude and your Slack web session. It gives your MCP client the same access **you** already have in the browser—search history, summarize threads, and retrieve prior context—without fighting the platform.
49
52
 
50
53
  ![Slack MCP Server Web UI](docs/images/demo-main.png)
51
54
 
@@ -102,7 +105,7 @@ Instead of authenticating as a bot, this server leverages your existing Chrome s
102
105
 
103
106
  **Runtime:** Node.js 20+
104
107
 
105
- ### 30-Second Proof
108
+ ### 30-Second Compatibility Check
106
109
 
107
110
  ```bash
108
111
  npx -y @jtalk22/slack-mcp --version
@@ -111,7 +114,7 @@ npx -y @jtalk22/slack-mcp --setup
111
114
  ```
112
115
 
113
116
  Expected:
114
- - `--version` prints `slack-mcp-server v1.2.x`
117
+ - `--version` prints `slack-mcp-server v2.0.x`
115
118
  - `--doctor` returns one clear next action with exit code:
116
119
  - `0` ready
117
120
  - `1` missing credentials
@@ -119,7 +122,17 @@ Expected:
119
122
  - `3` connectivity/runtime issue
120
123
  - `--setup` launches the interactive wizard
121
124
 
122
- Proof script for launch threads: [docs/HN-LAUNCH.md](docs/HN-LAUNCH.md)
125
+ Command reference: [docs/HN-LAUNCH.md](docs/HN-LAUNCH.md)
126
+
127
+ ### Known Working Clients
128
+
129
+ - Claude Desktop (macOS/Windows/Linux)
130
+ - Claude Code CLI
131
+ - Local browser mode (`web`)
132
+ - Hosted Node runtime (`http`)
133
+ - Cloudflare Worker / Smithery transport
134
+
135
+ Compatibility matrix: [docs/COMPATIBILITY.md](docs/COMPATIBILITY.md)
123
136
 
124
137
  ### Option A: npm (Recommended)
125
138
 
@@ -154,6 +167,7 @@ npx -y @jtalk22/slack-mcp --status
154
167
  Expected:
155
168
  - `--version` and `--help` exit `0`
156
169
  - `--status` exits non-zero until credentials are configured
170
+ - `--status` is read-only and never attempts Chrome extraction
157
171
 
158
172
  ---
159
173
 
@@ -325,7 +339,7 @@ npm run web
325
339
 
326
340
  ```
327
341
  ════════════════════════════════════════════════════════════
328
- Slack Web API Server v1.2.3
342
+ Slack Web API Server v2.0.0
329
343
  ════════════════════════════════════════════════════════════
330
344
 
331
345
  Dashboard: http://localhost:3000/?key=smcp_xxxxxxxxxxxx
@@ -350,6 +364,7 @@ Just click the link - no copy-paste needed. The key is saved to your browser and
350
364
  - [Deployment Modes](docs/DEPLOYMENT-MODES.md) - Choose the right operating model (`stdio`, `web`, hosted HTTP, Smithery/Worker)
351
365
  - [Use Case Recipes](docs/USE_CASE_RECIPES.md) - 12 copy/paste prompts mapped to current tool contracts
352
366
  - [Support Boundaries](docs/SUPPORT-BOUNDARIES.md) - Scope, response targets, and solo-maintainer capacity limits
367
+ - [Release Health](docs/RELEASE-HEALTH.md) - Track setup reliability and support-load targets through this release cycle
353
368
 
354
369
  If you're evaluating team rollout, start with [Deployment Modes](docs/DEPLOYMENT-MODES.md) before exposing remote endpoints.
355
370
 
@@ -401,6 +416,7 @@ This caches DM channel IDs for 24 hours.
401
416
  - Chrome must be **running** (not minimized to Dock)
402
417
  - Slack tab must be open at `app.slack.com`
403
418
  - You must be logged in
419
+ - In Chrome menu, enable `View > Developer > Allow JavaScript from Apple Events`
404
420
 
405
421
  ### Claude Desktop Not Seeing Tools
406
422
  1. Verify JSON syntax in config file
@@ -456,7 +472,7 @@ slack-mcp-server/
456
472
 
457
473
  PRs welcome. Run `node --check` on modified files before submitting.
458
474
 
459
- If you find this project useful, consider [sponsoring](https://github.com/sponsors/jtalk22) or starring the repo.
475
+ If you find this project useful, consider starring the repo.
460
476
 
461
477
  ---
462
478
 
package/docs/API.md CHANGED
@@ -11,7 +11,9 @@ Check if Slack tokens are valid.
11
11
  **Returns:**
12
12
  ```json
13
13
  {
14
- "status": "OK",
14
+ "status": "ok",
15
+ "code": "ok",
16
+ "message": "Slack auth valid",
15
17
  "user": "james",
16
18
  "team": "Rêvasser",
17
19
  "token_source": "environment",
@@ -30,12 +32,15 @@ Get detailed token health, age, and cache statistics.
30
32
  **Returns:**
31
33
  ```json
32
34
  {
35
+ "status": "healthy",
36
+ "code": "ok",
37
+ "message": "Token is healthy",
38
+ "next_action": null,
33
39
  "token": {
34
40
  "status": "healthy",
35
41
  "age_hours": 2.5,
36
42
  "source": "file",
37
- "updated_at": "2026-01-08T12:00:00Z",
38
- "message": "Token is healthy"
43
+ "updated_at": "2026-01-08T12:00:00Z"
39
44
  },
40
45
  "auto_refresh": {
41
46
  "enabled": true,
@@ -62,7 +67,9 @@ Force refresh tokens from Chrome.
62
67
  **Returns:**
63
68
  ```json
64
69
  {
65
- "status": "SUCCESS",
70
+ "status": "ok",
71
+ "code": "refreshed",
72
+ "message": "Tokens refreshed from Chrome.",
66
73
  "user": "james",
67
74
  "team": "Rêvasser"
68
75
  }
@@ -9,6 +9,7 @@ Use this guide for release notes, issue replies, and changelog entries.
9
9
  3. Do not include co-author trailers from tooling.
10
10
  4. State exact versions and commands when relevant.
11
11
  5. Avoid speculative claims.
12
+ 6. Release titles use `vX.Y.Z — <concrete operational outcome>`.
12
13
 
13
14
  ## Issue Reply Template
14
15
 
@@ -0,0 +1,19 @@
1
+ # Compatibility Matrix
2
+
3
+ Use this matrix to choose a known working client/runtime path before rollout.
4
+
5
+ | Client | Mode | Token path | Status | Quick verify command |
6
+ |---|---|---|---|---|
7
+ | Claude Desktop (macOS) | `stdio` | `~/.slack-mcp-tokens.json` via `--setup` auto-extract | Supported | `npx -y @jtalk22/slack-mcp --setup && npx -y @jtalk22/slack-mcp --status` |
8
+ | Claude Desktop (Windows) | `stdio` | `env` (`SLACK_TOKEN`, `SLACK_COOKIE`) in config | Supported | `npx -y @jtalk22/slack-mcp --status` |
9
+ | Claude Desktop (Linux) | `stdio` | `env` or token file via guided setup | Supported | `npx -y @jtalk22/slack-mcp --status` |
10
+ | Claude Code CLI | `stdio` | `~/.slack-mcp-tokens.json` or `env` | Supported | `npx -y @jtalk22/slack-mcp --version && npx -y @jtalk22/slack-mcp --status` |
11
+ | Local Browser UI | `web` | token file or `env` | Supported | `npx -y @jtalk22/slack-mcp web` |
12
+ | Hosted Node Runtime | `http` | `env` in host runtime | Supported with operator controls | `node src/server-http.js` then `curl -s http://localhost:8080/health` |
13
+ | Cloudflare Worker / Smithery transport | `worker` | runtime env/query handoff per deployment config | Supported with deployment validation | `wrangler deploy --config workers/wrangler.toml` and verify `/health` |
14
+
15
+ ## Notes
16
+
17
+ 1. Runtime baseline is Node 20+.
18
+ 2. `--doctor` is the fastest first check when setup status is unknown.
19
+ 3. For hosted/team deployment, use [DEPLOYMENT-MODES.md](DEPLOYMENT-MODES.md) before production rollout.
package/docs/HN-LAUNCH.md CHANGED
@@ -1,26 +1,29 @@
1
- # HN Launch Kit
1
+ # HN Launch Kit (v2.0.0)
2
2
 
3
- Use this file as copy/paste launch material with no extra edits.
3
+ Use this file for Show HN posting and first-comment follow-up.
4
4
 
5
- ## Launch Post Draft
5
+ ## Title Options
6
6
 
7
- Title idea: `Show HN: Slack MCP Server (local-first, session-based Slack access for Claude)`
7
+ - `Show HN: Slack MCP Server v2.0.0 (deterministic Slack MCP diagnostics)`
8
+ - `Show HN: Slack MCP Server v2.0.0 (session-based Slack access, stable contracts)`
9
+ - `Show HN: Slack MCP Server v2.0.0 (local-first Slack context for Claude)`
8
10
 
9
- Post body:
11
+ ## Launch Post Template
10
12
 
11
13
  ```md
12
- Built a local-first Slack MCP server so Claude can use the same Slack access already available in your browser session.
14
+ Released `@jtalk22/slack-mcp@2.0.0` today.
13
15
 
14
- What it does:
15
- - DMs/channels/thread reads
16
- - workspace search
17
- - message send + user lookups
18
- - local web mode when MCP is unavailable
16
+ This release focuses on install reliability and deterministic diagnostics:
17
+ - read-only `--status` behavior enforced in install-path verification
18
+ - deterministic `--doctor` exits (`0/1/2/3`)
19
+ - structured MCP/web error payloads for triage consistency
20
+ - token health handles missing timestamp as unknown age, not false critical
21
+ - no MCP tool renames or removals
19
22
 
20
- Quick proof:
23
+ Verify:
21
24
  - `npx -y @jtalk22/slack-mcp --version`
25
+ - `npx -y @jtalk22/slack-mcp --doctor`
22
26
  - `npx -y @jtalk22/slack-mcp --status`
23
- - `npx -y @jtalk22/slack-mcp --setup`
24
27
 
25
28
  Repo: https://github.com/jtalk22/slack-mcp-server
26
29
  npm: https://www.npmjs.com/package/@jtalk22/slack-mcp
@@ -29,33 +32,30 @@ npm: https://www.npmjs.com/package/@jtalk22/slack-mcp
29
32
  ## First Comment Draft
30
33
 
31
34
  ```md
32
- Notes up front:
33
- - Local-first usage is fully supported.
34
- - Tokens are your Slack session credentials and are stored locally by default.
35
- - macOS supports automatic Chrome extraction; Linux/Windows use guided manual setup.
36
- - Current docs include deployment modes, support boundaries, and troubleshooting.
35
+ Quick notes:
36
+ - Default path is local-first (`stdio`) and remains fully supported.
37
+ - `--status` is read-only by design in this release.
38
+ - `--doctor` has deterministic exit codes for automation and triage.
39
+ - If registry pages lag, metadata is propagating; npm and GitHub release are authoritative first.
37
40
 
38
- If install fails, include OS, Node version, runtime mode (`stdio|web|http|worker`), and exact error output.
41
+ If anything fails, include OS, Node version, runtime mode (`stdio|web|http|worker`), and exact output.
39
42
  ```
40
43
 
41
- ## Rebuttal Mini-FAQ
44
+ ## FAQ Macro
42
45
 
43
- ### Is this bypassing Slack app scopes?
44
- It does not use Slack app OAuth scopes. It uses your existing signed-in session permissions.
46
+ ### Why session-based instead of OAuth app scopes?
47
+ Session mirroring provides the same access visible in the signed-in Slack web session.
45
48
 
46
- ### What about token expiry?
47
- Session tokens expire. `--setup` refreshes credentials, and macOS supports automatic extraction from Chrome.
49
+ ### Is hosted deployment required?
50
+ No. Local operator path is primary. Hosted paths are optional.
48
51
 
49
- ### Is this intended as a stealth hosted proxy?
50
- No. The free path is local/self-hosted first. Deployment docs describe tradeoffs and support boundaries before team rollout.
51
-
52
- ### Is this safe for production teams?
53
- Treat as operator-managed infrastructure. Validate with your own risk/compliance controls before broader rollout.
54
-
55
- ## Install Proof Block
52
+ ### Are tool contracts changed in v2.0.0?
53
+ No. This release keeps existing MCP tool names.
56
54
 
55
+ ### What should I run first?
56
+ Use:
57
57
  ```bash
58
58
  npx -y @jtalk22/slack-mcp --version
59
+ npx -y @jtalk22/slack-mcp --doctor
59
60
  npx -y @jtalk22/slack-mcp --status
60
- npx -y @jtalk22/slack-mcp --setup
61
61
  ```
package/docs/INDEX.md CHANGED
@@ -1,10 +1,11 @@
1
1
  # Documentation Index
2
2
 
3
- Start here for setup, validation, operations, and support.
3
+ Start here for setup, compatibility checks, operations, and support.
4
4
 
5
5
  ## Core
6
6
 
7
7
  - [Setup Guide](SETUP.md)
8
+ - [Compatibility Matrix](COMPATIBILITY.md)
8
9
  - [API Reference](API.md)
9
10
  - [Web API Reference](WEB-API.md)
10
11
  - [Troubleshooting](TROUBLESHOOTING.md)
@@ -18,7 +19,15 @@ Start here for setup, validation, operations, and support.
18
19
  ## Launch and Communication
19
20
 
20
21
  - [HN Launch Kit](HN-LAUNCH.md)
22
+ - [Launch Copy (v2.0.0)](LAUNCH-COPY-v2.0.0.md)
23
+ - [Launch Ops Runbook](LAUNCH-OPS.md)
24
+ - [Capability Matrix](LAUNCH-MATRIX.md)
25
+ - [Install Proof Block](INSTALL-PROOF.md)
21
26
  - [Communication Style](COMMUNICATION-STYLE.md)
27
+ - [Release Health Guide](RELEASE-HEALTH.md)
28
+ - [Latest Release Health Snapshot](release-health/latest.md)
29
+ - [Version Parity Report](release-health/version-parity.md)
30
+ - [Launch Log Template](release-health/launch-log-template.md)
22
31
  - [Changelog](../CHANGELOG.md)
23
32
 
24
33
  ## Issue Intake
@@ -0,0 +1,18 @@
1
+ # Install Proof Block (v2.0.0)
2
+
3
+ Use this command block in release notes, HN/X/Reddit follow-ups, and issue replies.
4
+
5
+ ```bash
6
+ npx -y @jtalk22/slack-mcp --version
7
+ npx -y @jtalk22/slack-mcp --doctor
8
+ npx -y @jtalk22/slack-mcp --status
9
+ ```
10
+
11
+ Expected:
12
+ - `--version` prints `slack-mcp-server v2.0.0`
13
+ - `--doctor` exits with:
14
+ - `0` ready
15
+ - `1` missing credentials
16
+ - `2` invalid or expired credentials
17
+ - `3` runtime or connectivity issue
18
+ - `--status` is read-only and does not trigger Chrome extraction.
@@ -0,0 +1,59 @@
1
+ # Launch Copy (v2.0.0)
2
+
3
+ Use this file for channel-specific copy with consistent technical claims.
4
+
5
+ ## Short Release Summary (150 words)
6
+
7
+ `@jtalk22/slack-mcp v2.0.0` is out with a focus on deterministic diagnostics and clean operator workflows. This release enforces read-only `--status` behavior in install-path verification, expands `--doctor` coverage to a strict `0/1/2/3` exit matrix, and standardizes structured error envelopes across MCP tool failures and web API validation/runtime paths. Token health handling now reports explicit unknown-age semantics when timestamps are missing, so operators do not get false critical warnings. Metadata is aligned for distribution parity with updated registry-facing server metadata and a new parity checker (`npm run verify:version-parity`) that reports local/npm/registry alignment. MCP tool contracts stay compatible: no renames, no removals. If you use Claude Desktop, Claude Code, or local web mode, this is a drop-in upgrade focused on faster triage and fewer install surprises.
8
+
9
+ ## X Thread (7 posts)
10
+
11
+ 1. `Slack MCP Server v2.0.0 is live.`
12
+ `Focus: deterministic diagnostics + install reliability.`
13
+ 2. `No MCP tool renames/removals in this release.`
14
+ `Compatibility stays stable.`
15
+ 3. `Install-path checks now enforce read-only --status behavior.`
16
+ `No token extraction side effects during status checks.`
17
+ 4. `--doctor now enforces deterministic exits:`
18
+ `0 ready / 1 missing creds / 2 invalid creds / 3 runtime issue.`
19
+ 5. `Token health now reports unknown-age semantics when timestamp is missing.`
20
+ `No false critical warning from missing metadata.`
21
+ 6. `Parity checker added: npm/local/registry view in one report.`
22
+ `npm run verify:version-parity`
23
+ 7. `Try it:`
24
+ `npx -y @jtalk22/slack-mcp --version`
25
+ `npx -y @jtalk22/slack-mcp --doctor`
26
+ `Repo: https://github.com/jtalk22/slack-mcp-server`
27
+
28
+ ## Reddit Post (Technical Variant)
29
+
30
+ Title:
31
+ - `Slack MCP Server v2.0.0: deterministic install diagnostics, stable tool contracts`
32
+
33
+ Body:
34
+ ```md
35
+ Released `@jtalk22/slack-mcp@2.0.0` today.
36
+
37
+ Main changes are reliability-focused:
38
+ - install-path verification enforces read-only `--status`
39
+ - `--doctor` exit matrix enforced (`0/1/2/3`)
40
+ - standardized structured error payloads for MCP tool failures and web API errors
41
+ - token health handles missing timestamp as unknown age (no false critical)
42
+ - new version parity report script for npm/local/registry checks
43
+
44
+ No MCP tool renames or removals in this release.
45
+
46
+ Verify:
47
+ `npx -y @jtalk22/slack-mcp --version`
48
+ `npx -y @jtalk22/slack-mcp --doctor`
49
+ `npx -y @jtalk22/slack-mcp --status`
50
+
51
+ Repo: https://github.com/jtalk22/slack-mcp-server
52
+ npm: https://www.npmjs.com/package/@jtalk22/slack-mcp
53
+ ```
54
+
55
+ ## Registry Propagation Note
56
+
57
+ If registry versions are still syncing right after publish, use this sentence:
58
+
59
+ `Release is published; registry metadata is propagating. Timestamp: <UTC timestamp>.`
@@ -0,0 +1,20 @@
1
+ # Capability Matrix (v2.0.0)
2
+
3
+ Comparison matrix for release notes and channel posts. Keep competitor references unnamed.
4
+
5
+ | Capability | This Release (`v2.0.0`) | Typical Session-Based Alternatives |
6
+ |---|---|---|
7
+ | Read-only status checks | Enforced and verified in install flow | Often undocumented or mixed with refresh side effects |
8
+ | Deterministic doctor exits | Enforced (`0/1/2/3`) with install-path coverage | Often ad-hoc or text-only |
9
+ | Structured diagnostics | Shared fields in MCP/web error payloads | Mixed payload shapes |
10
+ | Unknown token age handling | Explicit `unknown_age` semantics | Missing timestamp may appear as stale/failing |
11
+ | Tool contract stability | No MCP tool rename/removal | Varies by release |
12
+ | Local-first operator path | First-class (`stdio`, `web`) | Varies by runtime emphasis |
13
+ | Version parity check | Scripted local/npm/registry report | Often manual |
14
+ | Smithery/registry alignment | Metadata prepared in release wave | Often delayed post-release |
15
+
16
+ ## Usage Guidance
17
+
18
+ 1. Use this table in release notes and social threads.
19
+ 2. Do not name external projects.
20
+ 3. Keep claims tied to verifiable commands and docs.
@@ -0,0 +1,70 @@
1
+ # Launch Ops Runbook (v2.0.0)
2
+
3
+ This runbook defines launch-day monitoring, response rules, and reinforcement loops.
4
+
5
+ ## Same-Day Fanout Order
6
+
7
+ 1. GitHub release publish (`v2.0.0`)
8
+ 2. npm publish confirm (`@jtalk22/slack-mcp@2.0.0`)
9
+ 3. MCP registry metadata update
10
+ 4. Smithery listing metadata parity update
11
+ 5. `awesome-mcp-servers` version update PR
12
+ 6. Glama listing refresh/update
13
+ 7. HN post + first comment
14
+ 8. X thread
15
+ 9. Reddit technical post
16
+
17
+ ## Monitoring Cadence
18
+
19
+ - First 4 hours: every 30 minutes
20
+ - Up to 24 hours: every 60 minutes
21
+
22
+ Track:
23
+ - install reports and blocker count
24
+ - npm version/install confirmation
25
+ - registry parity status
26
+ - inbound issue volume and severity
27
+
28
+ ## Triage Rules
29
+
30
+ P1 install blocker:
31
+ - acknowledge within 30-60 minutes
32
+ - provide immediate workaround
33
+ - add fix to patch queue
34
+
35
+ Non-blocking request:
36
+ - acknowledge and route to issue template
37
+ - provide timeline as best effort
38
+
39
+ ## Escalation Triggers
40
+
41
+ 1. If install failures exceed 3 unique reports in 24h:
42
+ - pause outbound posting
43
+ - prioritize hotfix
44
+
45
+ 2. If support load exceeds 2 hours/day for 2 days:
46
+ - move to stability-only mode
47
+ - defer non-critical requests
48
+
49
+ ## 24h / 48h / 72h Follow-Up
50
+
51
+ 24h:
52
+ - publish release-health delta and short technical update
53
+
54
+ 48h:
55
+ - answer top 5 recurring questions in docs
56
+
57
+ 72h:
58
+ - publish `v2.0.1` only if launch defects are confirmed
59
+
60
+ ## Evidence Log
61
+
62
+ Use:
63
+ - `docs/release-health/launch-log-template.md`
64
+
65
+ Capture:
66
+ - channel
67
+ - UTC timestamp
68
+ - URL
69
+ - action taken
70
+ - observed result
@@ -0,0 +1,81 @@
1
+ # Release Health Tracking
2
+
3
+ Use this to track installation reliability and operational load during the current release cycle.
4
+
5
+ ## One-command snapshot
6
+
7
+ ```bash
8
+ node scripts/collect-release-health.js
9
+ ```
10
+
11
+ Outputs:
12
+ - `docs/release-health/latest.md`
13
+ - `docs/release-health/YYYY-MM-DD.md`
14
+ - `docs/release-health/automation-delta.md` (when delta script is run)
15
+
16
+ ## Version parity report
17
+
18
+ ```bash
19
+ npm run verify:version-parity
20
+ ```
21
+
22
+ Output:
23
+ - `docs/release-health/version-parity.md`
24
+
25
+ If external registries are still propagating immediately after publish:
26
+
27
+ ```bash
28
+ npm run verify:version-parity -- --allow-propagation
29
+ ```
30
+
31
+ 24-hour loop artifacts:
32
+ - `docs/release-health/24h-start.md`
33
+ - `docs/release-health/24h-end.md`
34
+ - `docs/release-health/24h-delta.md`
35
+
36
+ ## What it captures automatically
37
+
38
+ - npm downloads (last week, last month)
39
+ - npm latest version
40
+ - GitHub stars, forks, open issues
41
+ - GitHub 14-day traffic views/clones (owner token required via `gh auth`)
42
+ - Count of `deployment-intake` issues
43
+
44
+ ## 14-day targets
45
+
46
+ - weekly downloads: `>= 180`
47
+ - qualified deployment-intake submissions: `>= 2`
48
+ - support load: `<= 2 hours/week`
49
+
50
+ ## Manual fields to track alongside snapshots
51
+
52
+ - Weekly support minutes spent.
53
+ - Deployment-intake quality (clear use case, owner, timeline).
54
+ - Traffic source notes (search, referrals, docs traffic).
55
+ - External \"first run succeeded\" confirmations (issues/discussions).
56
+
57
+ ## Recommended cadence
58
+
59
+ - Days 1-7: daily snapshot
60
+ - Days 8-14: every 2-3 days
61
+
62
+ ## Automated cadence (low-touch)
63
+
64
+ - Workflow: `.github/workflows/release-health.yml`
65
+ - Triggers:
66
+ - scheduled at `07:15` and `19:15` UTC
67
+ - manual `workflow_dispatch`
68
+ - Outputs per run:
69
+ - workflow summary with current snapshot and baseline delta
70
+ - artifacts: `docs/release-health/latest.md`, `docs/release-health/automation-delta.md`
71
+
72
+ ## Local delta command
73
+
74
+ If you want to compare two explicit snapshots locally:
75
+
76
+ ```bash
77
+ node scripts/build-release-health-delta.js \
78
+ --before docs/release-health/24h-start.md \
79
+ --after docs/release-health/24h-end.md \
80
+ --out docs/release-health/24h-delta.md
81
+ ```
package/docs/SETUP.md CHANGED
@@ -40,6 +40,7 @@ Expected:
40
40
  - `1` missing credentials
41
41
  - `2` invalid/expired credentials
42
42
  - `3` connectivity/runtime issue
43
+ - `--status` is read-only and never performs Chrome extraction.
43
44
 
44
45
  ### 3. Get Slack Tokens
45
46
 
@@ -156,3 +157,4 @@ Make sure:
156
157
  - Chrome is running (not just in dock)
157
158
  - You have a Slack tab open (not the desktop app)
158
159
  - You're logged into Slack in that tab
160
+ - In Chrome menu, enable `View > Developer > Allow JavaScript from Apple Events`
@@ -23,6 +23,7 @@ Expected:
23
23
  - `1` missing credentials
24
24
  - `2` invalid/expired credentials
25
25
  - `3` connectivity/runtime issue
26
+ - `--status` is read-only and never attempts Chrome extraction.
26
27
 
27
28
  If `--version` fails here, the issue is install/runtime path, not Slack credentials.
28
29
 
@@ -81,13 +82,13 @@ slack_refresh_tokens
81
82
  # Option 2: Package setup wizard
82
83
  npx -y @jtalk22/slack-mcp --setup
83
84
 
84
- # Option 3: Doctor diagnostics
85
+ # Option 3: Diagnostics check
85
86
  npx -y @jtalk22/slack-mcp --doctor
86
87
 
87
- # Option 3: Repo CLI
88
+ # Option 4: Repo CLI
88
89
  npm run tokens:auto
89
90
 
90
- # Option 4: Manual
91
+ # Option 5: Manual
91
92
  npm run tokens:refresh
92
93
  ```
93
94
 
@@ -212,7 +213,8 @@ tail -50 ~/Library/Logs/Claude/mcp-server-slack.log
212
213
  1. Google Chrome must be running (not just in Dock)
213
214
  2. Have a Slack tab open at `app.slack.com` (not desktop app)
214
215
  3. Be logged into Slack in that tab
215
- 4. Grant accessibility permissions to Terminal/Claude
216
+ 4. In Chrome menu, enable `View > Developer > Allow JavaScript from Apple Events`
217
+ 5. Grant accessibility permissions to Terminal/Claude
216
218
 
217
219
  **Check permissions:**
218
220
  System Preferences → Privacy & Security → Accessibility → Ensure Terminal is enabled
package/docs/WEB-API.md CHANGED
@@ -99,7 +99,9 @@ curl -H "Authorization: Bearer $API_KEY" http://localhost:3000/health
99
99
  **Response:**
100
100
  ```json
101
101
  {
102
- "status": "OK",
102
+ "status": "ok",
103
+ "code": "ok",
104
+ "message": "Slack auth valid",
103
105
  "user": "james",
104
106
  "team": "Rêvasser"
105
107
  }
@@ -107,6 +109,15 @@ curl -H "Authorization: Bearer $API_KEY" http://localhost:3000/health
107
109
 
108
110
  ---
109
111
 
112
+ ### GET /token-status
113
+ Read-only token diagnostics (age/health/cache stats). This endpoint does not trigger Chrome extraction.
114
+
115
+ ```bash
116
+ curl -H "Authorization: Bearer $API_KEY" http://localhost:3000/token-status
117
+ ```
118
+
119
+ ---
120
+
110
121
  ### POST /refresh
111
122
  Force token refresh from Chrome.
112
123
 
@@ -0,0 +1,33 @@
1
+ # Release Health Snapshot
2
+
3
+ - Generated: 2026-02-25T06:14:12.948Z
4
+ - Repo: `jtalk22/slack-mcp-server`
5
+ - Package: `@jtalk22/slack-mcp`
6
+
7
+ ## Install Signals
8
+
9
+ - npm downloads (last week): 139
10
+ - npm downloads (last month): 632
11
+ - npm latest version: 1.2.3
12
+
13
+ ## GitHub Reach
14
+
15
+ - stars: 13
16
+ - forks: 8
17
+ - open issues: 0
18
+ - 14d views: 497
19
+ - 14d unique visitors: 259
20
+ - 14d clones: 118
21
+ - 14d unique cloners: 67
22
+ - deployment-intake submissions (all-time): 1
23
+
24
+ ## 14-Day Reliability Targets (v1.2.3 Cycle)
25
+
26
+ - weekly downloads: >= 180
27
+ - qualified deployment-intake submissions: >= 2
28
+ - maintainer support load: <= 2 hours/week
29
+
30
+ ## Notes
31
+
32
+ - Update this snapshot daily during the first week, then every 2-3 days.
33
+ - Track deployment-intake quality and support load manually in issue notes.