@jtalk22/slack-mcp 2.0.0 → 3.1.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 (65) hide show
  1. package/README.md +118 -67
  2. package/docs/CLOUDFLARE-BROWSER-TOOLKIT.md +67 -0
  3. package/docs/DEPLOYMENT-MODES.md +10 -3
  4. package/docs/HN-LAUNCH.md +47 -36
  5. package/docs/INDEX.md +9 -5
  6. package/docs/INSTALL-PROOF.md +5 -5
  7. package/docs/LAUNCH-COPY-v3.0.0.md +101 -0
  8. package/docs/LAUNCH-MATRIX.md +4 -2
  9. package/docs/LAUNCH-OPS.md +25 -24
  10. package/docs/RELEASE-HEALTH.md +44 -48
  11. package/docs/TROUBLESHOOTING.md +27 -0
  12. package/docs/WEB-API.md +13 -4
  13. package/docs/images/demo-channel-messages.png +0 -0
  14. package/docs/images/demo-channels.png +0 -0
  15. package/docs/images/demo-claude-mobile-360x800.png +0 -0
  16. package/docs/images/demo-claude-mobile-390x844.png +0 -0
  17. package/docs/images/demo-claude-mobile-poster.png +0 -0
  18. package/docs/images/demo-main-mobile-360x800.png +0 -0
  19. package/docs/images/demo-main-mobile-390x844.png +0 -0
  20. package/docs/images/demo-main.png +0 -0
  21. package/docs/images/demo-poster.png +0 -0
  22. package/docs/images/demo-sidebar.png +0 -0
  23. package/docs/images/social-preview-v3.png +0 -0
  24. package/docs/images/web-api-mobile-360x800.png +0 -0
  25. package/docs/images/web-api-mobile-390x844.png +0 -0
  26. package/package.json +31 -31
  27. package/public/demo-claude.html +100 -11
  28. package/public/demo-video.html +45 -7
  29. package/public/demo.html +138 -4
  30. package/public/index.html +132 -69
  31. package/public/share.html +127 -0
  32. package/scripts/build-mobile-demo.js +168 -0
  33. package/scripts/build-release-health-delta.js +2 -2
  34. package/scripts/build-social-preview.js +189 -0
  35. package/scripts/capture-screenshots.js +109 -53
  36. package/scripts/check-owner-attribution.sh +53 -2
  37. package/scripts/check-public-language.sh +1 -0
  38. package/scripts/check-version-parity.js +70 -14
  39. package/scripts/cloudflare-browser-tool.js +237 -0
  40. package/scripts/collect-release-health.js +14 -2
  41. package/scripts/impact-push-v3.js +781 -0
  42. package/scripts/record-demo.js +26 -12
  43. package/scripts/release-preflight.js +247 -0
  44. package/scripts/setup-wizard.js +1 -1
  45. package/scripts/update-github-social-preview.js +208 -0
  46. package/scripts/verify-install-flow.js +2 -1
  47. package/scripts/verify-web.js +53 -1
  48. package/server.json +47 -0
  49. package/smithery.yaml +34 -0
  50. package/src/server-http.js +98 -5
  51. package/src/server.js +18 -6
  52. package/src/web-server.js +7 -3
  53. package/docs/LAUNCH-COPY-v2.0.0.md +0 -59
  54. package/docs/images/demo-claude-v1.2.gif +0 -0
  55. package/docs/images/demo-readme.gif +0 -0
  56. package/docs/release-health/2026-02-25.md +0 -33
  57. package/docs/release-health/2026-02-26.md +0 -33
  58. package/docs/release-health/24h-delta.md +0 -21
  59. package/docs/release-health/24h-end.md +0 -33
  60. package/docs/release-health/24h-start.md +0 -33
  61. package/docs/release-health/latest.md +0 -33
  62. package/docs/release-health/launch-log-template.md +0 -21
  63. package/docs/release-health/version-parity.md +0 -21
  64. package/docs/videos/.gitkeep +0 -0
  65. package/docs/videos/demo-claude-v1.2.webm +0 -0
@@ -1,12 +1,14 @@
1
- # Capability Matrix (v2.0.0)
1
+ # Capability Matrix (v3.0.0)
2
2
 
3
3
  Comparison matrix for release notes and channel posts. Keep competitor references unnamed.
4
4
 
5
- | Capability | This Release (`v2.0.0`) | Typical Session-Based Alternatives |
5
+ | Capability | This Release (`v3.0.0`) | Typical Session-Based Alternatives |
6
6
  |---|---|---|
7
7
  | Read-only status checks | Enforced and verified in install flow | Often undocumented or mixed with refresh side effects |
8
8
  | Deterministic doctor exits | Enforced (`0/1/2/3`) with install-path coverage | Often ad-hoc or text-only |
9
9
  | Structured diagnostics | Shared fields in MCP/web error payloads | Mixed payload shapes |
10
+ | Hosted HTTP auth default | Bearer required on `/mcp` by default | Often permissive by default |
11
+ | Hosted HTTP CORS | Explicit allowlist (`SLACK_MCP_HTTP_ALLOWED_ORIGINS`) | Often wildcard/implicit |
10
12
  | Unknown token age handling | Explicit `unknown_age` semantics | Missing timestamp may appear as stale/failing |
11
13
  | Tool contract stability | No MCP tool rename/removal | Varies by release |
12
14
  | Local-first operator path | First-class (`stdio`, `web`) | Varies by runtime emphasis |
@@ -1,18 +1,18 @@
1
- # Launch Ops Runbook (v2.0.0)
1
+ # Launch Ops Runbook (v3.0.0)
2
2
 
3
- This runbook defines launch-day monitoring, response rules, and reinforcement loops.
3
+ This runbook defines launch-day monitoring and distribution for technical/operator channels (no X/Reddit dependency).
4
4
 
5
- ## Same-Day Fanout Order
5
+ ## Same-Day Fanout Order (9 Channels)
6
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
7
+ 1. GitHub release page refresh (`v3.0.0` copy + install-proof block)
8
+ 2. npm parity confirm (`@jtalk22/slack-mcp@3.0.0`)
9
+ 3. MCP registry parity confirm (`3.0.0`)
10
+ 4. Smithery listing metadata/parity update (or timestamped propagation note)
11
+ 5. `awesome-mcp-servers` listing PR refresh
12
+ 6. Glama metadata sync and canonical link verification
13
+ 7. HN thread update comment (high-signal install proof + support path)
14
+ 8. GitHub Discussions announcement/support threads update
15
+ 9. GitHub Pages/docs surface publish + link verification
16
16
 
17
17
  ## Monitoring Cadence
18
18
 
@@ -21,9 +21,10 @@ This runbook defines launch-day monitoring, response rules, and reinforcement lo
21
21
 
22
22
  Track:
23
23
  - install reports and blocker count
24
- - npm version/install confirmation
25
- - registry parity status
26
- - inbound issue volume and severity
24
+ - npm/MCP parity state
25
+ - listing propagation status (Smithery/Glama)
26
+ - inbound issue and discussion severity
27
+ - hosted migration questions (`SLACK_MCP_HTTP_AUTH_TOKEN`, CORS allowlist)
27
28
 
28
29
  ## Triage Rules
29
30
 
@@ -33,38 +34,38 @@ P1 install blocker:
33
34
  - add fix to patch queue
34
35
 
35
36
  Non-blocking request:
36
- - acknowledge and route to issue template
37
+ - acknowledge and route to issue/discussion template
37
38
  - provide timeline as best effort
38
39
 
39
40
  ## Escalation Triggers
40
41
 
41
42
  1. If install failures exceed 3 unique reports in 24h:
42
- - pause outbound posting
43
+ - pause outbound promotion
43
44
  - prioritize hotfix
44
45
 
45
46
  2. If support load exceeds 2 hours/day for 2 days:
46
- - move to stability-only mode
47
+ - switch to stability-only mode
47
48
  - defer non-critical requests
48
49
 
49
50
  ## 24h / 48h / 72h Follow-Up
50
51
 
51
52
  24h:
52
- - publish release-health delta and short technical update
53
+ - publish release-health delta and short technical summary
53
54
 
54
55
  48h:
55
- - answer top 5 recurring questions in docs
56
+ - patch docs for top recurring setup questions
56
57
 
57
58
  72h:
58
- - publish `v2.0.1` only if launch defects are confirmed
59
+ - ship `v3.0.1` only if launch defects are confirmed
59
60
 
60
61
  ## Evidence Log
61
62
 
62
63
  Use:
63
- - `docs/release-health/launch-log-template.md`
64
+ - local `output/release-health/launch-log-template.md` (private by default)
64
65
 
65
66
  Capture:
66
67
  - channel
67
68
  - UTC timestamp
68
- - URL
69
+ - URL or command evidence
69
70
  - action taken
70
- - observed result
71
+ - observed result (`success|partial|blocked`)
@@ -1,81 +1,77 @@
1
1
  # Release Health Tracking
2
2
 
3
- Use this to track installation reliability and operational load during the current release cycle.
3
+ Operator telemetry is private-by-default in this repo.
4
4
 
5
- ## One-command snapshot
5
+ By default, release-health scripts write to local gitignored files under:
6
+
7
+ - `output/release-health/`
8
+
9
+ Use public docs output only when explicitly needed.
10
+
11
+ ## Snapshot (local default)
6
12
 
7
13
  ```bash
8
14
  node scripts/collect-release-health.js
9
15
  ```
10
16
 
11
17
  Outputs:
18
+
19
+ - `output/release-health/latest.md`
20
+ - `output/release-health/YYYY-MM-DD.md`
21
+
22
+ Optional public output:
23
+
24
+ ```bash
25
+ node scripts/collect-release-health.js --public
26
+ ```
27
+
28
+ Outputs:
29
+
12
30
  - `docs/release-health/latest.md`
13
31
  - `docs/release-health/YYYY-MM-DD.md`
14
- - `docs/release-health/automation-delta.md` (when delta script is run)
15
32
 
16
- ## Version parity report
33
+ ## Version Parity (local default)
17
34
 
18
35
  ```bash
19
36
  npm run verify:version-parity
20
37
  ```
21
38
 
22
39
  Output:
23
- - `docs/release-health/version-parity.md`
24
40
 
25
- If external registries are still propagating immediately after publish:
41
+ - `output/release-health/version-parity.md`
42
+
43
+ Optional public output:
26
44
 
27
45
  ```bash
28
- npm run verify:version-parity -- --allow-propagation
46
+ node scripts/check-version-parity.js --public
29
47
  ```
30
48
 
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
49
+ ## Delta Report (local default)
43
50
 
44
- ## 14-day targets
45
-
46
- - weekly downloads: `>= 180`
47
- - qualified deployment-intake submissions: `>= 2`
48
- - support load: `<= 2 hours/week`
51
+ ```bash
52
+ node scripts/build-release-health-delta.js
53
+ ```
49
54
 
50
- ## Manual fields to track alongside snapshots
55
+ Defaults:
51
56
 
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).
57
+ - `--after output/release-health/latest.md`
58
+ - `--out output/release-health/automation-delta.md`
56
59
 
57
- ## Recommended cadence
60
+ ## Prepublish Dry Run (local default)
58
61
 
59
- - Days 1-7: daily snapshot
60
- - Days 8-14: every 2-3 days
62
+ ```bash
63
+ npm run verify:release-dry-run
64
+ ```
61
65
 
62
- ## Automated cadence (low-touch)
66
+ Output:
63
67
 
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`
68
+ - `output/release-health/prepublish-dry-run.md`
71
69
 
72
- ## Local delta command
70
+ ## CI Workflow
73
71
 
74
- If you want to compare two explicit snapshots locally:
72
+ Workflow: `.github/workflows/release-health.yml`
75
73
 
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
- ```
74
+ - collects local snapshots in `output/release-health/`
75
+ - publishes workflow summary
76
+ - uploads artifacts for maintainers
77
+ - does not commit telemetry files back to the repo
@@ -161,6 +161,33 @@ cat /tmp/slack-web-api.log
161
161
  cat /tmp/slack-web-api.error.log
162
162
  ```
163
163
 
164
+ ### Hosted HTTP `/mcp` Returns 503 or 401
165
+
166
+ If you run `node src/server-http.js`, `/mcp` is protected by default.
167
+
168
+ `503 http_auth_token_missing` means you did not set:
169
+
170
+ ```bash
171
+ SLACK_MCP_HTTP_AUTH_TOKEN=change-this
172
+ ```
173
+
174
+ `401 unauthorized` means your request is missing or using the wrong bearer token.
175
+
176
+ Example request:
177
+
178
+ ```bash
179
+ curl http://localhost:3000/mcp \
180
+ -H "Authorization: Bearer $SLACK_MCP_HTTP_AUTH_TOKEN" \
181
+ -H "Content-Type: application/json" \
182
+ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}'
183
+ ```
184
+
185
+ For local-only testing (not remote exposure), you can opt out:
186
+
187
+ ```bash
188
+ SLACK_MCP_HTTP_INSECURE=1 node src/server-http.js
189
+ ```
190
+
164
191
  ---
165
192
 
166
193
  ## Claude Desktop Issues
package/docs/WEB-API.md CHANGED
@@ -1,6 +1,15 @@
1
1
  # Web API Reference
2
2
 
3
- The Slack Web Server exposes all MCP tools as REST endpoints, accessible from any browser or HTTP client. This is useful for accessing Slack from claude.ai (which doesn't support MCP).
3
+ The Slack Web Server exposes all MCP tools as REST endpoints, accessible from any browser or HTTP client.
4
+
5
+ Claude web now supports remote MCP connectors on paid plans, so this Web API mode is best used for:
6
+ - local localhost dashboard workflows
7
+ - REST/API integrations
8
+ - fallback operation when you do not want to host a remote MCP endpoint
9
+
10
+ References:
11
+ - https://support.anthropic.com/en/articles/11995447-connectors-in-claude
12
+ - https://support.anthropic.com/en/articles/11175166-about-custom-integrations-using-remote-mcp
4
13
 
5
14
  ## Starting the Server
6
15
 
@@ -269,9 +278,9 @@ The UI auto-connects with the default API key:
269
278
  4. Send messages directly from the browser
270
279
 
271
280
  **Using with claude.ai:**
272
- 1. Open the web UI alongside claude.ai
273
- 2. Browse/search for relevant conversations
274
- 3. Copy-paste message content into claude.ai as needed
281
+ 1. Preferred: add a remote MCP connector in Claude settings if you run a remote endpoint.
282
+ 2. Fallback: open the web UI alongside claude.ai for local browsing/search.
283
+ 3. Copy-paste relevant message content as needed.
275
284
 
276
285
  ---
277
286
 
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@jtalk22/slack-mcp",
3
3
  "mcpName": "io.github.jtalk22/slack-mcp-server",
4
- "version": "2.0.0",
5
- "description": "Session-based Slack access for Claude - DMs, channels, search, and threads. Local-first with your existing Slack session.",
4
+ "version": "3.1.0",
5
+ "description": "Session-based Slack MCP for Claude and MCP clients: local-first workflows, secure-default HTTP.",
6
6
  "type": "module",
7
7
  "main": "src/server.js",
8
8
  "bin": {
@@ -24,45 +24,40 @@
24
24
  "tokens:auto": "node scripts/token-cli.js auto",
25
25
  "tokens:clear": "node scripts/token-cli.js clear",
26
26
  "screenshot": "node scripts/capture-screenshots.js",
27
+ "build:social-preview": "node scripts/build-social-preview.js",
28
+ "build:demo-mobile": "node scripts/build-mobile-demo.js",
29
+ "build:demo-mobile:gif": "node scripts/build-mobile-demo.js --gif",
27
30
  "record-demo": "node scripts/record-demo.js",
31
+ "social-preview:update": "node scripts/update-github-social-preview.js --headed",
32
+ "cf:browser": "node scripts/cloudflare-browser-tool.js",
28
33
  "metrics:release-health": "node scripts/collect-release-health.js",
29
34
  "metrics:release-health:delta": "node scripts/build-release-health-delta.js",
30
- "verify:version-parity": "node scripts/check-version-parity.js"
35
+ "impact:push:v3": "node scripts/impact-push-v3.js --dry-run",
36
+ "impact:push:v3:apply": "node scripts/impact-push-v3.js --apply",
37
+ "verify:version-parity": "node scripts/check-version-parity.js",
38
+ "verify:release-dry-run": "node scripts/release-preflight.js"
31
39
  },
32
40
  "keywords": [
41
+ "claude",
33
42
  "mcp",
34
- "mcp-server",
35
43
  "model-context-protocol",
36
44
  "slack",
37
45
  "slack-api",
38
- "slack-mcp",
39
- "slack-integration",
40
- "claude",
41
46
  "claude-desktop",
42
- "claude-code",
43
- "cursor",
44
- "llm",
45
- "ai",
46
- "ai-assistant",
47
- "automation",
48
- "workflow-automation",
49
- "developer-tools",
50
47
  "cli",
51
- "productivity",
52
- "messaging",
53
- "message-search",
54
- "direct-messages",
55
- "channels",
56
- "workspace",
48
+ "developer-tools",
49
+ "mcp-server",
57
50
  "session-based",
51
+ "claude-code",
52
+ "local-first",
58
53
  "session-mirroring",
59
- "slack-dm",
60
- "slack-threads",
61
- "workspace-search",
62
- "mcp-tools",
63
- "mcp-stdio",
64
- "mcp-http",
65
- "open-source"
54
+ "slack-mcp",
55
+ "secure-by-default",
56
+ "llm",
57
+ "slack-integration",
58
+ "ai-agents",
59
+ "automation",
60
+ "productivity"
66
61
  ],
67
62
  "author": "jtalk22",
68
63
  "license": "MIT",
@@ -70,7 +65,7 @@
70
65
  "type": "git",
71
66
  "url": "git+https://github.com/jtalk22/slack-mcp-server.git"
72
67
  },
73
- "homepage": "https://jtalk22.github.io/slack-mcp-server/public/demo.html",
68
+ "homepage": "https://jtalk22.github.io/slack-mcp-server/",
74
69
  "bugs": {
75
70
  "url": "https://github.com/jtalk22/slack-mcp-server/issues"
76
71
  },
@@ -86,9 +81,14 @@
86
81
  "lib/",
87
82
  "public/",
88
83
  "scripts/",
89
- "docs/",
84
+ "docs/*.md",
85
+ "docs/assets/",
86
+ "docs/images/*.png",
87
+ "docs/images/*.svg",
90
88
  "README.md",
91
- "LICENSE"
89
+ "LICENSE",
90
+ "server.json",
91
+ "smithery.yaml"
92
92
  ],
93
93
  "devDependencies": {
94
94
  "playwright": "^1.57.0"