@jtalk22/slack-mcp 3.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.
package/README.md CHANGED
@@ -1,36 +1,28 @@
1
1
  # Slack MCP Server
2
2
 
3
- Use your existing Slack session with Claude and other MCP clients.
4
- Local-first by default (`stdio`/`web`), hosted HTTP when you need a remote endpoint.
3
+ Session-based Slack MCP for Claude and MCP clients. Local-first `stdio`/`web` with secure-default hosted HTTP in v3.
5
4
 
6
- [Live demo](https://jtalk22.github.io/slack-mcp-server/public/demo-video.html) · [npm package](https://www.npmjs.com/package/@jtalk22/slack-mcp) · [Compatibility matrix](https://github.com/jtalk22/slack-mcp-server/blob/main/docs/COMPATIBILITY.md)
7
-
8
- ![Slack MCP tools in action](https://jtalk22.github.io/slack-mcp-server/docs/images/demo-readme.gif)
9
-
10
- ## 30-Second Verify
5
+ ## Install + Verify
11
6
 
12
7
  ```bash
8
+ npx -y @jtalk22/slack-mcp --setup
13
9
  npx -y @jtalk22/slack-mcp@latest --version
14
10
  npx -y @jtalk22/slack-mcp@latest --doctor
15
11
  npx -y @jtalk22/slack-mcp@latest --status
16
12
  ```
17
13
 
18
- Expected:
19
- - `--version` prints `slack-mcp-server v3.0.0`
20
- - `--doctor` exits with deterministic `0|1|2|3`
21
- - `--status` is read-only and non-mutating
14
+ [Setup guide](https://github.com/jtalk22/slack-mcp-server/blob/main/docs/SETUP.md) · [30-second verify reference](https://github.com/jtalk22/slack-mcp-server/blob/main/README.md#install--verify) · [Autoplay demo landing](https://jtalk22.github.io/slack-mcp-server/) · [Latest release](https://github.com/jtalk22/slack-mcp-server/releases/latest) · [npm package](https://www.npmjs.com/package/@jtalk22/slack-mcp)
22
15
 
23
- ## Install
16
+ [![Live demo poster](https://jtalk22.github.io/slack-mcp-server/docs/images/demo-poster.png)](https://jtalk22.github.io/slack-mcp-server/public/demo-video.html)
24
17
 
25
- ```bash
26
- npm install -g @jtalk22/slack-mcp
27
- npx -y @jtalk22/slack-mcp --setup
28
- ```
18
+ Motion proof: [20-second mobile clip](https://jtalk22.github.io/slack-mcp-server/docs/videos/demo-claude-mobile-20s.mp4) · [Live demo walkthrough](https://jtalk22.github.io/slack-mcp-server/public/demo-video.html) · [Share card](https://jtalk22.github.io/slack-mcp-server/public/share.html)
29
19
 
30
- If this project saves you setup time, star the repo: https://github.com/jtalk22/slack-mcp-server
20
+ Hosted migration note: `v3.0.0` keeps local `stdio`/`web` flows unchanged; hosted `/mcp` requires `SLACK_MCP_HTTP_AUTH_TOKEN` and `SLACK_MCP_HTTP_ALLOWED_ORIGINS`.
31
21
 
32
22
  Maintainer/operator: `jtalk22` (`james@revasser.nyc`)
33
- Release notes: [v3.0.0 notes](https://github.com/jtalk22/slack-mcp-server/blob/main/.github/v3.0.0-release-notes.md)
23
+ Release: [`v3.1.0`](https://github.com/jtalk22/slack-mcp-server/releases/tag/v3.1.0) · Notes: [v3.1.0 notes](https://github.com/jtalk22/slack-mcp-server/blob/main/.github/v3.1.0-release-notes.md) · Support: [deployment intake](https://github.com/jtalk22/slack-mcp-server/issues/new?template=deployment-intake.md)
24
+
25
+ If this saved you setup time, consider starring the repo. Maintenance support: [GitHub Sponsors](https://github.com/sponsors/jtalk22) · [Ko-fi](https://ko-fi.com/jtalk22) · [Buy Me a Coffee](https://buymeacoffee.com/jtalk22)
34
26
 
35
27
  ## v3.0.0 at a Glance
36
28
 
@@ -39,6 +31,17 @@ Release notes: [v3.0.0 notes](https://github.com/jtalk22/slack-mcp-server/blob/m
39
31
  - Local-first paths (`stdio`, `web`) stay compatible.
40
32
  - MCP tool names stay stable (no renames/removals).
41
33
 
34
+ ## Slack MCP Cloud
35
+
36
+ Skip all setup. One URL, 13 tools, encrypted token storage, managed on Cloudflare edge.
37
+
38
+ | Plan | Price | Includes |
39
+ |------|-------|----------|
40
+ | Solo | $19/mo | 10 standard tools, encrypted storage, 5K requests/mo |
41
+ | Team | $49/mo | 13 tools (incl. compound intelligence), 3 workspaces, 25K requests/mo |
42
+
43
+ [Get started](https://jtalk22.github.io/slack-mcp-server/cloud.html) — no Docker, no tokens, no admin approval.
44
+
42
45
  ## 60-Second Hosted Migration
43
46
 
44
47
  ```bash
@@ -129,19 +132,19 @@ Instead of authenticating as a bot, this server leverages your existing Chrome s
129
132
  ### 30-Second Compatibility Check
130
133
 
131
134
  ```bash
132
- npx -y @jtalk22/slack-mcp --version
133
- npx -y @jtalk22/slack-mcp --doctor
134
135
  npx -y @jtalk22/slack-mcp --setup
136
+ npx -y @jtalk22/slack-mcp --doctor
137
+ npx -y @jtalk22/slack-mcp --status
135
138
  ```
136
139
 
137
140
  Expected:
138
- - `--version` prints `slack-mcp-server v3.0.x`
141
+ - `--setup` launches the interactive wizard
139
142
  - `--doctor` returns one clear next action with exit code:
140
143
  - `0` ready
141
144
  - `1` missing credentials
142
145
  - `2` invalid/expired credentials
143
146
  - `3` connectivity/runtime issue
144
- - `--setup` launches the interactive wizard
147
+ - `--status` is read-only and non-mutating
145
148
 
146
149
  Command reference: [HN launch kit](https://github.com/jtalk22/slack-mcp-server/blob/main/docs/HN-LAUNCH.md)
147
150
 
package/docs/INDEX.md CHANGED
@@ -26,13 +26,14 @@ Start here for setup, compatibility checks, operations, and support.
26
26
  - [Install Proof Block](INSTALL-PROOF.md)
27
27
  - [Release Notes (v3.0.0)](../.github/v3.0.0-release-notes.md)
28
28
  - [Communication Style](COMMUNICATION-STYLE.md)
29
- - [Release Health Guide](RELEASE-HEALTH.md)
30
- - [Latest Release Health Snapshot](release-health/latest.md)
31
- - [Version Parity Report](release-health/version-parity.md)
32
- - [Prepublish Dry Run Report](release-health/prepublish-dry-run.md)
33
- - [Launch Log Template](release-health/launch-log-template.md)
34
29
  - [Changelog](../CHANGELOG.md)
35
30
 
31
+ ## Public Health
32
+
33
+ - [Latest Public Health Snapshot](release-health/latest.md)
34
+ - [Version Parity](release-health/version-parity.md)
35
+ - [State of Union (2026-02-28)](release-health/state-of-union-2026-02-28.md)
36
+
36
37
  ## Issue Intake
37
38
 
38
39
  - [Bug Report Template](../.github/ISSUE_TEMPLATE/bug_report.md)
@@ -4,42 +4,69 @@ Canonical text blocks for GitHub release surfaces, listings, and operator update
4
4
 
5
5
  ## Short Summary (Public)
6
6
 
7
- `@jtalk22/slack-mcp v3.0.0` is live. This release keeps local-first operation unchanged (`stdio`, `web`) and hardens hosted HTTP mode with secure defaults. Hosted `/mcp` now requires bearer authentication using `SLACK_MCP_HTTP_AUTH_TOKEN`, and browser-origin access now uses explicit allowlisting via `SLACK_MCP_HTTP_ALLOWED_ORIGINS`. The major version reflects this hosted behavior change; local workflows and MCP tool names remain stable. Diagnostics remain deterministic (`--doctor` returns `0|1|2|3`), and `--status` remains read-only for safe checks. Public demo/media checks are now included in web verification so broken assets are caught before publish. Maintainer/operator: `jtalk22` (`james@revasser.nyc`).
7
+ `@jtalk22/slack-mcp v3.0.0` is live. `v3.0.0` flips hosted `/mcp` from permissive to secure-default without breaking local workflows. Local-first operation stays unchanged (`stdio`, `web`) while hosted HTTP now requires bearer authentication (`SLACK_MCP_HTTP_AUTH_TOKEN`) and explicit origin allowlisting (`SLACK_MCP_HTTP_ALLOWED_ORIGINS`). The major version reflects this hosted behavior shift; MCP tool names remain stable. Diagnostics remain deterministic (`--doctor` returns `0|1|2|3`), and `--status` remains read-only. Public demo/media checks are now included in web verification so broken assets are caught before publish. Maintainer/operator: `jtalk22` (`james@revasser.nyc`).
8
8
 
9
9
  ## GitHub Release Block
10
10
 
11
- ```md
12
- `v3.0.0` secures hosted HTTP defaults while keeping local-first workflows stable.
11
+ ````md
12
+ `v3.0.0` flips hosted `/mcp` from permissive to secure-default without breaking local workflows.
13
+
14
+ ```bash
15
+ npx -y @jtalk22/slack-mcp@latest --version
16
+ npx -y @jtalk22/slack-mcp@latest --doctor
17
+ npx -y @jtalk22/slack-mcp@latest --status
18
+ ```
13
19
 
14
20
  What changed:
15
21
  - `/mcp` requires bearer auth by default
16
22
  - CORS is origin-allowlist driven (`SLACK_MCP_HTTP_ALLOWED_ORIGINS`)
17
23
  - no MCP tool renames/removals
18
24
  - deterministic diagnostics are preserved
19
-
20
- Verify:
21
- `npx -y @jtalk22/slack-mcp@latest --version`
22
- `npx -y @jtalk22/slack-mcp@latest --doctor`
23
- `npx -y @jtalk22/slack-mcp@latest --status`
24
- ```
25
+ ````
25
26
 
26
27
  ## Hosted Migration Block
27
28
 
28
- ```md
29
+ ````md
29
30
  Hosted migration in under a minute:
30
- `SLACK_TOKEN=xoxc-...`
31
- `SLACK_COOKIE=xoxd-...`
32
- `SLACK_MCP_HTTP_AUTH_TOKEN=change-this`
33
- `SLACK_MCP_HTTP_ALLOWED_ORIGINS=https://claude.ai`
34
- `node src/server-http.js`
31
+ ```bash
32
+ export SLACK_TOKEN=xoxc-...
33
+ export SLACK_COOKIE=xoxd-...
34
+ export SLACK_MCP_HTTP_AUTH_TOKEN=change-this
35
+ export SLACK_MCP_HTTP_ALLOWED_ORIGINS=https://claude.ai
36
+ node src/server-http.js
37
+ ```
35
38
 
36
39
  Requests must include:
37
40
  `Authorization: Bearer <SLACK_MCP_HTTP_AUTH_TOKEN>`
38
41
 
39
42
  Emergency local fallback only:
40
43
  `SLACK_MCP_HTTP_INSECURE=1 node src/server-http.js`
44
+ ````
45
+
46
+ ## v3 Quick Proof Maintainer Comment
47
+
48
+ ````md
49
+ Maintainer update:
50
+ `v3.0.0` flips hosted `/mcp` from permissive to secure-default without breaking local workflows.
51
+
52
+ ```bash
53
+ npx -y @jtalk22/slack-mcp@latest --version
54
+ npx -y @jtalk22/slack-mcp@latest --doctor
55
+ npx -y @jtalk22/slack-mcp@latest --status
41
56
  ```
42
57
 
58
+ Hosted migration in under a minute:
59
+ ```bash
60
+ export SLACK_TOKEN=xoxc-...
61
+ export SLACK_COOKIE=xoxd-...
62
+ export SLACK_MCP_HTTP_AUTH_TOKEN=change-this
63
+ export SLACK_MCP_HTTP_ALLOWED_ORIGINS=https://claude.ai
64
+ node src/server-http.js
65
+ ```
66
+
67
+ If you hit a blocker, include runtime mode + exact output.
68
+ ````
69
+
43
70
  ## GitHub Discussion Announcement
44
71
 
45
72
  ```md
@@ -64,6 +91,7 @@ Session-based Slack MCP server for local-first operators. `v3.0.0` hardens hoste
64
91
  Need guided hosted deployment help?
65
92
  - Open deployment intake: `https://github.com/jtalk22/slack-mcp-server/issues/new?template=deployment-intake.md`
66
93
  - Continue in Discussions: `https://github.com/jtalk22/slack-mcp-server/discussions`
94
+ - Support ongoing maintenance: `https://github.com/sponsors/jtalk22`, `https://ko-fi.com/jtalk22`, `https://buymeacoffee.com/jtalk22`
67
95
  ```
68
96
 
69
97
  ## Propagation Note
@@ -61,7 +61,7 @@ Non-blocking request:
61
61
  ## Evidence Log
62
62
 
63
63
  Use:
64
- - `docs/release-health/launch-log-template.md`
64
+ - local `output/release-health/launch-log-template.md` (private by default)
65
65
 
66
66
  Capture:
67
67
  - channel
@@ -1,90 +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:
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
18
 
16
- ## Version parity report
19
+ - `output/release-health/latest.md`
20
+ - `output/release-health/YYYY-MM-DD.md`
21
+
22
+ Optional public output:
17
23
 
18
24
  ```bash
19
- npm run verify:version-parity
25
+ node scripts/collect-release-health.js --public
20
26
  ```
21
27
 
22
- Output:
23
- - `docs/release-health/version-parity.md`
24
-
25
- If external registries are still propagating immediately after publish:
28
+ Outputs:
26
29
 
27
- ```bash
28
- npm run verify:version-parity -- --allow-propagation
29
- ```
30
+ - `docs/release-health/latest.md`
31
+ - `docs/release-health/YYYY-MM-DD.md`
30
32
 
31
- ## Prepublish dry run
33
+ ## Version Parity (local default)
32
34
 
33
35
  ```bash
34
- npm run verify:release-dry-run
36
+ npm run verify:version-parity
35
37
  ```
36
38
 
37
39
  Output:
38
- - `docs/release-health/prepublish-dry-run.md`
39
40
 
40
- 24-hour loop artifacts:
41
- - `docs/release-health/24h-start.md`
42
- - `docs/release-health/24h-end.md`
43
- - `docs/release-health/24h-delta.md`
41
+ - `output/release-health/version-parity.md`
44
42
 
45
- ## What it captures automatically
43
+ Optional public output:
46
44
 
47
- - npm downloads (last week, last month)
48
- - npm latest version
49
- - GitHub stars, forks, open issues
50
- - GitHub 14-day traffic views/clones (owner token required via `gh auth`)
51
- - Count of `deployment-intake` issues
45
+ ```bash
46
+ node scripts/check-version-parity.js --public
47
+ ```
52
48
 
53
- ## 14-day targets
49
+ ## Delta Report (local default)
54
50
 
55
- - weekly downloads: `>= 180`
56
- - qualified deployment-intake submissions: `>= 2`
57
- - support load: `<= 2 hours/week`
51
+ ```bash
52
+ node scripts/build-release-health-delta.js
53
+ ```
58
54
 
59
- ## Manual fields to track alongside snapshots
55
+ Defaults:
60
56
 
61
- - Weekly support minutes spent.
62
- - Deployment-intake quality (clear use case, owner, timeline).
63
- - Traffic source notes (search, referrals, docs traffic).
64
- - External \"first run succeeded\" confirmations (issues/discussions).
57
+ - `--after output/release-health/latest.md`
58
+ - `--out output/release-health/automation-delta.md`
65
59
 
66
- ## Recommended cadence
60
+ ## Prepublish Dry Run (local default)
67
61
 
68
- - Days 1-7: daily snapshot
69
- - Days 8-14: every 2-3 days
62
+ ```bash
63
+ npm run verify:release-dry-run
64
+ ```
70
65
 
71
- ## Automated cadence (low-touch)
66
+ Output:
72
67
 
73
- - Workflow: `.github/workflows/release-health.yml`
74
- - Triggers:
75
- - scheduled at `07:15` and `19:15` UTC
76
- - manual `workflow_dispatch`
77
- - Outputs per run:
78
- - workflow summary with current snapshot and baseline delta
79
- - artifacts: `docs/release-health/latest.md`, `docs/release-health/automation-delta.md`
68
+ - `output/release-health/prepublish-dry-run.md`
80
69
 
81
- ## Local delta command
70
+ ## CI Workflow
82
71
 
83
- If you want to compare two explicit snapshots locally:
72
+ Workflow: `.github/workflows/release-health.yml`
84
73
 
85
- ```bash
86
- node scripts/build-release-health-delta.js \
87
- --before docs/release-health/24h-start.md \
88
- --after docs/release-health/24h-end.md \
89
- --out docs/release-health/24h-delta.md
90
- ```
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
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": "3.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,48 +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",
28
32
  "cf:browser": "node scripts/cloudflare-browser-tool.js",
29
33
  "metrics:release-health": "node scripts/collect-release-health.js",
30
34
  "metrics:release-health:delta": "node scripts/build-release-health-delta.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",
31
37
  "verify:version-parity": "node scripts/check-version-parity.js",
32
38
  "verify:release-dry-run": "node scripts/release-preflight.js"
33
39
  },
34
40
  "keywords": [
41
+ "claude",
35
42
  "mcp",
36
- "mcp-server",
37
43
  "model-context-protocol",
38
44
  "slack",
39
45
  "slack-api",
40
- "slack-mcp",
41
- "slack-integration",
42
- "claude",
43
46
  "claude-desktop",
44
- "claude-code",
45
- "claude-connectors",
46
- "anthropic",
47
- "cursor",
48
- "llm",
49
- "automation",
50
- "workflow-automation",
51
- "developer-tools",
52
47
  "cli",
53
- "productivity",
54
- "messaging",
55
- "message-search",
56
- "direct-messages",
57
- "channels",
58
- "workspace",
48
+ "developer-tools",
49
+ "mcp-server",
59
50
  "session-based",
51
+ "claude-code",
52
+ "local-first",
60
53
  "session-mirroring",
61
- "slack-dm",
62
- "slack-threads",
63
- "workspace-search",
64
- "mcp-tools",
65
- "mcp-stdio",
66
- "mcp-http",
67
- "remote-mcp",
68
- "open-source"
54
+ "slack-mcp",
55
+ "secure-by-default",
56
+ "llm",
57
+ "slack-integration",
58
+ "ai-agents",
59
+ "automation",
60
+ "productivity"
69
61
  ],
70
62
  "author": "jtalk22",
71
63
  "license": "MIT",
@@ -73,7 +65,7 @@
73
65
  "type": "git",
74
66
  "url": "git+https://github.com/jtalk22/slack-mcp-server.git"
75
67
  },
76
- "homepage": "https://jtalk22.github.io/slack-mcp-server/public/demo.html",
68
+ "homepage": "https://jtalk22.github.io/slack-mcp-server/",
77
69
  "bugs": {
78
70
  "url": "https://github.com/jtalk22/slack-mcp-server/issues"
79
71
  },
@@ -19,13 +19,13 @@
19
19
  <meta property="og:description" content="Session-based Slack access for Claude with your existing workspace permissions. Search, thread, and messaging workflows.">
20
20
  <meta property="og:type" content="website">
21
21
  <meta property="og:url" content="https://jtalk22.github.io/slack-mcp-server/public/demo-claude.html">
22
- <meta property="og:image" content="https://raw.githubusercontent.com/jtalk22/slack-mcp-server/main/docs/images/demo-claude.gif">
22
+ <meta property="og:image" content="https://jtalk22.github.io/slack-mcp-server/docs/images/social-preview-v3.png">
23
23
 
24
24
  <!-- Twitter Card -->
25
25
  <meta name="twitter:card" content="summary_large_image">
26
26
  <meta name="twitter:title" content="Slack MCP Server - Session-Based Slack Access Demo">
27
27
  <meta name="twitter:description" content="Session-based Slack access for Claude with your existing workspace permissions. Search, thread, and messaging workflows.">
28
- <meta name="twitter:image" content="https://raw.githubusercontent.com/jtalk22/slack-mcp-server/main/docs/images/demo-claude.gif">
28
+ <meta name="twitter:image" content="https://jtalk22.github.io/slack-mcp-server/docs/images/social-preview-v3.png">
29
29
 
30
30
  <!-- Theme -->
31
31
  <meta name="theme-color" content="#1a1a1a">
@@ -357,6 +357,7 @@
357
357
  box-shadow: var(--shadow-lg);
358
358
  overflow: hidden;
359
359
  border: 1px solid var(--window-border);
360
+ position: relative;
360
361
  }
361
362
 
362
363
  .window-chrome {
@@ -922,6 +923,11 @@
922
923
  display: none !important;
923
924
  }
924
925
 
926
+ body.fullscreen-mode .cta-strip,
927
+ body.fullscreen-mode .scenario-caption {
928
+ display: none !important;
929
+ }
930
+
925
931
  body.fullscreen-mode .claude-window {
926
932
  max-width: 100%;
927
933
  height: 100vh;
@@ -1078,6 +1084,12 @@
1078
1084
  .tools-dropdown:hover {
1079
1085
  transform: translateX(-50%) translateY(0);
1080
1086
  }
1087
+
1088
+ .scenario-caption {
1089
+ top: 56px;
1090
+ font-size: 12px;
1091
+ padding: 7px 14px;
1092
+ }
1081
1093
  }
1082
1094
 
1083
1095
  /* ═══════════════════════════════════════════════════════════════
@@ -1119,7 +1131,7 @@
1119
1131
  /* Scenario Caption Overlay */
1120
1132
  .scenario-caption {
1121
1133
  position: absolute;
1122
- top: 72px;
1134
+ top: 60px;
1123
1135
  left: 50%;
1124
1136
  transform: translateX(-50%);
1125
1137
  background: rgba(0, 0, 0, 0.75);
@@ -1132,6 +1144,10 @@
1132
1144
  transition: opacity 0.3s ease;
1133
1145
  z-index: 50;
1134
1146
  pointer-events: none;
1147
+ max-width: calc(100% - 24px);
1148
+ white-space: nowrap;
1149
+ overflow: hidden;
1150
+ text-overflow: ellipsis;
1135
1151
  }
1136
1152
 
1137
1153
  .scenario-caption.visible {
@@ -9,14 +9,15 @@
9
9
  <meta property="og:title" content="Slack MCP Server - Session-Based Slack Access Demo">
10
10
  <meta property="og:description" content="Session-based Slack access for Claude with your existing workspace permissions. Video walkthrough for Slack workflows.">
11
11
  <meta property="og:url" content="https://jtalk22.github.io/slack-mcp-server/public/demo-video.html">
12
- <meta property="og:image" content="https://raw.githubusercontent.com/jtalk22/slack-mcp-server/main/docs/images/demo-poster.png">
12
+ <meta property="og:image" content="https://jtalk22.github.io/slack-mcp-server/docs/images/demo-poster.png">
13
13
  <meta name="twitter:card" content="summary_large_image">
14
14
  <meta name="twitter:title" content="Slack MCP Server - Session-Based Slack Access Demo">
15
15
  <meta name="twitter:description" content="Session-based Slack access for Claude with your existing workspace permissions. Video walkthrough for Slack workflows.">
16
- <meta name="twitter:image" content="https://raw.githubusercontent.com/jtalk22/slack-mcp-server/main/docs/images/demo-poster.png">
16
+ <meta name="twitter:image" content="https://jtalk22.github.io/slack-mcp-server/docs/images/demo-poster.png">
17
+ <link rel="preconnect" href="https://fonts.googleapis.com">
18
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
19
+ <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=Space+Grotesk:wght@500;600;700&display=swap" rel="stylesheet">
17
20
  <style>
18
- @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=Space+Grotesk:wght@500;600;700&display=swap');
19
-
20
21
  :root {
21
22
  --font-heading: "Space Grotesk", "Avenir Next", "Segoe UI", sans-serif;
22
23
  --font-body: "IBM Plex Sans", "Inter", "Segoe UI", sans-serif;
@@ -184,7 +185,7 @@
184
185
  </div>
185
186
 
186
187
  <div class="video-wrapper">
187
- <video id="demo" poster="https://jtalk22.github.io/slack-mcp-server/docs/images/demo-poster.png" playsinline>
188
+ <video id="demo" poster="../docs/images/demo-poster.png" playsinline>
188
189
  <source src="../docs/videos/demo-claude.webm" type="video/webm">
189
190
  <source src="https://jtalk22.github.io/slack-mcp-server/docs/videos/demo-claude.webm" type="video/webm">
190
191
  Your browser does not support the video tag.
@@ -203,10 +204,18 @@
203
204
 
204
205
  <script>
205
206
  const video = document.getElementById('demo');
207
+ const HIGHLIGHT_START_SECONDS = 6;
208
+
209
+ function playFromHighlight() {
210
+ if (video.duration && video.duration > HIGHLIGHT_START_SECONDS + 1) {
211
+ video.currentTime = HIGHLIGHT_START_SECONDS;
212
+ }
213
+ return video.play();
214
+ }
206
215
 
207
216
  // Autoplay with 1 second delay
208
217
  setTimeout(() => {
209
- video.play().catch(() => {
218
+ playFromHighlight().catch(() => {
210
219
  // Autoplay blocked, user will need to click
211
220
  console.log('Autoplay blocked, click to play');
212
221
  });
@@ -227,7 +236,7 @@
227
236
 
228
237
  // Loop the video
229
238
  video.addEventListener('ended', () => {
230
- video.currentTime = 0;
239
+ video.currentTime = HIGHLIGHT_START_SECONDS;
231
240
  video.play();
232
241
  });
233
242
  </script>
package/public/demo.html CHANGED
@@ -10,13 +10,13 @@
10
10
  <meta property="og:url" content="https://jtalk22.github.io/slack-mcp-server/public/demo.html">
11
11
  <meta property="og:title" content="Slack MCP Server - Session-Based Slack Access Demo">
12
12
  <meta property="og:description" content="Session-based Slack access for Claude with your existing workspace permissions. DMs, channels, search, and threads.">
13
- <meta property="og:image" content="https://raw.githubusercontent.com/jtalk22/slack-mcp-server/main/docs/images/demo-main.png">
13
+ <meta property="og:image" content="https://jtalk22.github.io/slack-mcp-server/docs/images/demo-main.png">
14
14
 
15
15
  <!-- Twitter Card -->
16
16
  <meta name="twitter:card" content="summary_large_image">
17
17
  <meta name="twitter:title" content="Slack MCP Server - Session-Based Slack Access Demo">
18
18
  <meta name="twitter:description" content="Session-based Slack access for Claude with your existing workspace permissions. DMs, channels, search, and threads.">
19
- <meta name="twitter:image" content="https://raw.githubusercontent.com/jtalk22/slack-mcp-server/main/docs/images/demo-main.png">
19
+ <meta name="twitter:image" content="https://jtalk22.github.io/slack-mcp-server/docs/images/demo-main.png">
20
20
 
21
21
  <!-- SEO -->
22
22
  <meta name="description" content="Session-based Slack access for Claude with your existing workspace permissions. Interactive demo for DMs, channels, search, and thread workflows.">