@jtalk22/slack-mcp 3.2.3 → 3.2.4
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 +24 -6
- package/docs/SETUP.md +7 -7
- package/docs/TROUBLESHOOTING.md +1 -1
- package/lib/public-metadata.js +21 -0
- package/package.json +3 -1
- package/public/index.html +2 -2
- package/public/share.html +12 -10
- package/scripts/setup-wizard.js +2 -1
- package/server.json +2 -2
- package/src/server-http.js +2 -1
- package/src/server.js +2 -2
- package/src/web-server.js +3 -3
package/README.md
CHANGED
|
@@ -2,10 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@jtalk22/slack-mcp)
|
|
4
4
|
[](https://www.npmjs.com/package/@jtalk22/slack-mcp)
|
|
5
|
-
[](https://registry.modelcontextprotocol.io)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
|
-
Give Claude your Slack. 16 tools
|
|
8
|
+
Give Claude your Slack. 16 self-hosted tools for channels, search, replies, reactions, unread triage, and user search. Self-host free or use Slack MCP Cloud for managed transport, credential handling, and support.
|
|
9
|
+
|
|
10
|
+
## Verify & Proof
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx -y @jtalk22/slack-mcp --setup
|
|
14
|
+
npx -y @jtalk22/slack-mcp@latest --version
|
|
15
|
+
npx -y @jtalk22/slack-mcp@latest --doctor
|
|
16
|
+
npx -y @jtalk22/slack-mcp@latest --status
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
[20-second demo](https://jtalk22.github.io/slack-mcp-server/public/demo-video.html) · [Interactive demo](https://jtalk22.github.io/slack-mcp-server/public/demo.html) · [Latest release notes](https://github.com/jtalk22/slack-mcp-server/releases/latest) · [Release-day runbook](docs/LAUNCH-OPS.md) · [Deployment intake](https://github.com/jtalk22/slack-mcp-server/issues/new?template=deployment-intake.md) · [Support boundaries](docs/SUPPORT-BOUNDARIES.md)
|
|
20
|
+
|
|
21
|
+
[](https://jtalk22.github.io/slack-mcp-server/public/demo-video.html)
|
|
9
22
|
|
|
10
23
|
## Tools
|
|
11
24
|
|
|
@@ -32,23 +45,28 @@ All tools carry [MCP safety annotations](https://modelcontextprotocol.io/specifi
|
|
|
32
45
|
|
|
33
46
|
\* `slack_refresh_tokens` modifies local token file only — no external Slack state.
|
|
34
47
|
|
|
35
|
-
## Cloud
|
|
48
|
+
## Cloud
|
|
36
49
|
|
|
37
|
-
|
|
50
|
+
Slack MCP Cloud provides 15 managed tools with hosted credential handling. Team adds 3 AI compound workflows for summaries, action items, and decisions.
|
|
38
51
|
|
|
39
52
|
| Plan | Price | Includes |
|
|
40
53
|
|------|-------|----------|
|
|
41
54
|
| Solo | $19/mo | 15 standard tools, AES-256-GCM encrypted storage, 5K requests/mo |
|
|
42
55
|
| Team | $49/mo | 15 standard + 3 AI compound tools, 3 workspaces, 25K requests/mo |
|
|
43
56
|
|
|
44
|
-
[Get Started](https://mcp.revasserlabs.com) · [Privacy Policy](https://mcp.revasserlabs.com/privacy)
|
|
57
|
+
[Get Started](https://mcp.revasserlabs.com) · [Privacy Policy](https://mcp.revasserlabs.com/privacy) · [Support Boundaries](docs/SUPPORT-BOUNDARIES.md)
|
|
58
|
+
|
|
59
|
+
For rollout help or managed deployment review, open a [deployment intake](https://github.com/jtalk22/slack-mcp-server/issues/new?template=deployment-intake.md). Reproducible bugs stay in standard issues; rollout requests belong in deployment intake.
|
|
45
60
|
|
|
46
|
-
## Install (Self-Hosted)
|
|
61
|
+
## Install & Verify (Self-Hosted)
|
|
47
62
|
|
|
48
63
|
**Runtime:** Node.js 20+
|
|
49
64
|
|
|
50
65
|
```bash
|
|
51
66
|
npx -y @jtalk22/slack-mcp --setup
|
|
67
|
+
npx -y @jtalk22/slack-mcp@latest --version
|
|
68
|
+
npx -y @jtalk22/slack-mcp@latest --doctor
|
|
69
|
+
npx -y @jtalk22/slack-mcp@latest --status
|
|
52
70
|
```
|
|
53
71
|
|
|
54
72
|
The setup wizard handles token extraction and validation automatically.
|
package/docs/SETUP.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Setup Guide
|
|
2
2
|
|
|
3
|
-
## Cloud
|
|
3
|
+
## Cloud
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Use **Slack MCP Cloud** when you want a managed endpoint rather than local token handling:
|
|
6
6
|
|
|
7
|
-
1. Go to [
|
|
7
|
+
1. Go to [Slack MCP Cloud](https://mcp.revasserlabs.com) and purchase a plan ($19/mo Solo, $49/mo Team)
|
|
8
8
|
2. After checkout, you'll receive an API key and ready-to-paste config for Claude Desktop / Claude Code
|
|
9
|
-
3.
|
|
9
|
+
3. Use the hosted endpoint and API key — one URL, 15 managed tools. Team adds 3 AI workflows.
|
|
10
10
|
|
|
11
11
|
**Claude Desktop config (Cloud):**
|
|
12
12
|
```json
|
|
@@ -34,7 +34,7 @@ If you want to skip local setup entirely, use **Slack MCP Cloud**:
|
|
|
34
34
|
}
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
If you prefer self-hosting
|
|
37
|
+
If you prefer self-hosting, continue below.
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -46,7 +46,7 @@ If you prefer self-hosting (free), continue below.
|
|
|
46
46
|
- Google Chrome (for token extraction on macOS)
|
|
47
47
|
- macOS (for Keychain storage - other platforms use file storage only)
|
|
48
48
|
|
|
49
|
-
### 1. Install via npm
|
|
49
|
+
### 1. Install via npm
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
npm install -g @jtalk22/slack-mcp
|
|
@@ -83,7 +83,7 @@ Expected:
|
|
|
83
83
|
|
|
84
84
|
### 3. Get Slack Tokens
|
|
85
85
|
|
|
86
|
-
**Option A: Setup Wizard
|
|
86
|
+
**Option A: Setup Wizard**
|
|
87
87
|
|
|
88
88
|
1. Open Chrome
|
|
89
89
|
2. Navigate to https://app.slack.com and log in
|
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -46,7 +46,7 @@ If `--version` fails here, the issue is install/runtime path, not Slack credenti
|
|
|
46
46
|
|
|
47
47
|
**Cause:** AI compound tools (`slack_channel_summary`, `slack_extract_action_items`, `slack_find_decisions`) are Team plan only ($49/mo).
|
|
48
48
|
|
|
49
|
-
**Solution:** Upgrade to Team plan for AI compound tools, or use the standard
|
|
49
|
+
**Solution:** Upgrade to Team plan for AI compound tools, or use the 15 standard managed tools available on all Cloud plans.
|
|
50
50
|
|
|
51
51
|
### Cloud Endpoint Health Check
|
|
52
52
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
|
|
3
|
+
const packageJson = JSON.parse(
|
|
4
|
+
readFileSync(new URL("../package.json", import.meta.url), "utf8")
|
|
5
|
+
);
|
|
6
|
+
|
|
7
|
+
export const RELEASE_VERSION = packageJson.version;
|
|
8
|
+
|
|
9
|
+
export const PUBLIC_METADATA = Object.freeze({
|
|
10
|
+
projectName: "slack-mcp-server",
|
|
11
|
+
packageName: packageJson.name,
|
|
12
|
+
canonicalRepoUrl: "https://github.com/jtalk22/slack-mcp-server",
|
|
13
|
+
canonicalSiteUrl: "https://mcp.revasserlabs.com",
|
|
14
|
+
supportEmail: "support@revasserlabs.com",
|
|
15
|
+
privacyEmail: "privacy@revasserlabs.com",
|
|
16
|
+
selfHostedToolCount: 16,
|
|
17
|
+
cloudManagedToolCount: 15,
|
|
18
|
+
teamAiWorkflowCount: 3,
|
|
19
|
+
cloudSoloPrice: "$19/mo",
|
|
20
|
+
cloudTeamPrice: "$49/mo",
|
|
21
|
+
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jtalk22/slack-mcp",
|
|
3
3
|
"mcpName": "io.github.jtalk22/slack-mcp-server",
|
|
4
|
-
"version": "3.2.
|
|
4
|
+
"version": "3.2.4",
|
|
5
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",
|
|
@@ -34,7 +34,9 @@
|
|
|
34
34
|
"metrics:release-health:delta": "node scripts/build-release-health-delta.js",
|
|
35
35
|
"impact:push:v3": "node scripts/impact-push-v3.js --dry-run",
|
|
36
36
|
"impact:push:v3:apply": "node scripts/impact-push-v3.js --apply",
|
|
37
|
+
"verify:attribution-guardrail": "node scripts/verify-attribution-guardrail.js",
|
|
37
38
|
"verify:version-parity": "node scripts/check-version-parity.js",
|
|
39
|
+
"verify:public-surface": "node scripts/check-public-surface-integrity.js",
|
|
38
40
|
"verify:release-dry-run": "node scripts/release-preflight.js"
|
|
39
41
|
},
|
|
40
42
|
"keywords": [
|
package/public/index.html
CHANGED
|
@@ -253,9 +253,9 @@
|
|
|
253
253
|
</div>
|
|
254
254
|
|
|
255
255
|
<div class="container">
|
|
256
|
-
<h1>Slack Web API <span
|
|
256
|
+
<h1>Slack Web API <span id="status" class="status"></span></h1>
|
|
257
257
|
<div style="background:rgba(240,194,70,0.08);border:1px solid rgba(240,194,70,0.2);border-radius:8px;padding:8px 14px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:13px;color:#d4c48a">
|
|
258
|
-
<span>Skip local setup? <strong style="color:#f0c246">Slack MCP Cloud</strong> gives you
|
|
258
|
+
<span>Skip local setup? <strong style="color:#f0c246">Slack MCP Cloud</strong> gives you 15 managed tools with one URL. Team adds 3 AI workflows.</span>
|
|
259
259
|
<a href="https://mcp.revasserlabs.com" style="color:#f0c246;font-weight:600;text-decoration:none;white-space:nowrap" target="_blank">Learn more →</a>
|
|
260
260
|
</div>
|
|
261
261
|
<div class="grid">
|
package/public/share.html
CHANGED
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<title>Slack MCP Server
|
|
6
|
+
<title>Slack MCP Server</title>
|
|
7
7
|
<meta name="description" content="Session-based Slack MCP for Claude. Local-first stdio/web with secure-default hosted HTTP in v3.">
|
|
8
8
|
<meta property="og:type" content="website">
|
|
9
|
-
<meta property="og:title" content="Slack MCP Server
|
|
10
|
-
<meta property="og:description" content="Session-based Slack MCP for Claude.
|
|
9
|
+
<meta property="og:title" content="Slack MCP Server">
|
|
10
|
+
<meta property="og:description" content="Session-based Slack MCP for Claude. Self-host 16 tools for free or use Cloud for 15 managed tools and support.">
|
|
11
11
|
<meta property="og:url" content="https://jtalk22.github.io/slack-mcp-server/public/share.html">
|
|
12
12
|
<meta property="og:image" content="https://jtalk22.github.io/slack-mcp-server/docs/images/social-preview-v3.png">
|
|
13
13
|
<meta property="og:image:width" content="1280">
|
|
14
14
|
<meta property="og:image:height" content="640">
|
|
15
15
|
<meta name="twitter:card" content="summary_large_image">
|
|
16
|
-
<meta name="twitter:title" content="Slack MCP Server
|
|
17
|
-
<meta name="twitter:description" content="Session-based Slack MCP for Claude.
|
|
16
|
+
<meta name="twitter:title" content="Slack MCP Server">
|
|
17
|
+
<meta name="twitter:description" content="Session-based Slack MCP for Claude. Self-host 16 tools for free or use Cloud for 15 managed tools and support.">
|
|
18
18
|
<meta name="twitter:image" content="https://jtalk22.github.io/slack-mcp-server/docs/images/social-preview-v3.png">
|
|
19
19
|
<style>
|
|
20
20
|
:root {
|
|
@@ -105,8 +105,8 @@
|
|
|
105
105
|
</head>
|
|
106
106
|
<body>
|
|
107
107
|
<main class="wrap">
|
|
108
|
-
<h1>Slack MCP Server
|
|
109
|
-
<p class="sub">Give Claude full access to your Slack.
|
|
108
|
+
<h1>Slack MCP Server</h1>
|
|
109
|
+
<p class="sub">Give Claude full access to your Slack. Self-host 16 tools for free, or use Cloud for 15 managed tools with support and hosted credentials.</p>
|
|
110
110
|
|
|
111
111
|
<a class="preview" href="https://github.com/jtalk22/slack-mcp-server" rel="noopener">
|
|
112
112
|
<img src="https://jtalk22.github.io/slack-mcp-server/docs/images/social-preview-v3.png" alt="Slack MCP Server social preview card">
|
|
@@ -114,15 +114,17 @@
|
|
|
114
114
|
|
|
115
115
|
<div class="links">
|
|
116
116
|
<a href="https://github.com/jtalk22/slack-mcp-server/blob/main/docs/SETUP.md" rel="noopener">Install (`--setup`)</a>
|
|
117
|
-
<a href="https://github.com/jtalk22/slack-mcp-server/blob/main/
|
|
117
|
+
<a href="https://github.com/jtalk22/slack-mcp-server/blob/main/docs/SETUP.md" rel="noopener">Verify (`--version/--doctor/--status`)</a>
|
|
118
118
|
<a href="https://github.com/jtalk22/slack-mcp-server/releases/latest" rel="noopener">Latest Release</a>
|
|
119
|
+
<a href="https://github.com/jtalk22/slack-mcp-server/issues/new?template=deployment-intake.md" rel="noopener">Deployment Intake</a>
|
|
120
|
+
<a href="https://github.com/jtalk22/slack-mcp-server/blob/main/docs/SUPPORT-BOUNDARIES.md" rel="noopener">Support</a>
|
|
119
121
|
<a href="https://jtalk22.github.io/slack-mcp-server/" rel="noopener">Autoplay Demo Landing</a>
|
|
120
122
|
<a href="https://jtalk22.github.io/slack-mcp-server/docs/videos/demo-claude-mobile-20s.mp4" rel="noopener">20s Mobile Clip</a>
|
|
121
123
|
<a href="https://www.npmjs.com/package/@jtalk22/slack-mcp" rel="noopener">npm Package</a>
|
|
122
|
-
<a href="https://mcp.revasserlabs.com" rel="noopener" style="background:rgba(240,194,70,0.18);border-color:rgba(240,194,70,0.45);color:#f0c246">Cloud
|
|
124
|
+
<a href="https://mcp.revasserlabs.com" rel="noopener" style="background:rgba(240,194,70,0.18);border-color:rgba(240,194,70,0.45);color:#f0c246">Cloud</a>
|
|
123
125
|
</div>
|
|
124
126
|
|
|
125
|
-
<p class="note"><strong>Verify in 30 seconds:</strong> <code>--version</code>, <code>--doctor</code>, <code>--status</code>. Maintainer/operator: <code>jtalk22</code> (<code>support@revasserlabs.com</code>).</p>
|
|
127
|
+
<p class="note"><strong>Verify in 30 seconds:</strong> <code>--version</code>, <code>--doctor</code>, <code>--status</code>. For rollout support, use deployment intake. Maintainer/operator: <code>jtalk22</code> (<code>support@revasserlabs.com</code>).</p>
|
|
126
128
|
</main>
|
|
127
129
|
</body>
|
|
128
130
|
</html>
|
package/scripts/setup-wizard.js
CHANGED
|
@@ -21,9 +21,10 @@ import {
|
|
|
21
21
|
getFromFile,
|
|
22
22
|
getFromKeychain,
|
|
23
23
|
} from "../lib/token-store.js";
|
|
24
|
+
import { RELEASE_VERSION } from "../lib/public-metadata.js";
|
|
24
25
|
|
|
25
26
|
const IS_MACOS = platform() === 'darwin';
|
|
26
|
-
const VERSION =
|
|
27
|
+
const VERSION = RELEASE_VERSION;
|
|
27
28
|
const MIN_NODE_MAJOR = 20;
|
|
28
29
|
const AUTH_TEST_URL = process.env.SLACK_MCP_AUTH_TEST_URL || "https://slack.com/api/auth.test";
|
|
29
30
|
|
package/server.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"url": "https://github.com/jtalk22/slack-mcp-server",
|
|
18
18
|
"source": "github"
|
|
19
19
|
},
|
|
20
|
-
"version": "3.2.
|
|
20
|
+
"version": "3.2.4",
|
|
21
21
|
"remotes": [
|
|
22
22
|
{
|
|
23
23
|
"type": "streamable-http",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
{
|
|
29
29
|
"registryType": "npm",
|
|
30
30
|
"identifier": "@jtalk22/slack-mcp",
|
|
31
|
-
"version": "3.2.
|
|
31
|
+
"version": "3.2.4",
|
|
32
32
|
"transport": {
|
|
33
33
|
"type": "stdio"
|
|
34
34
|
},
|
package/src/server-http.js
CHANGED
|
@@ -33,9 +33,10 @@ import {
|
|
|
33
33
|
handleConversationsUnreads,
|
|
34
34
|
handleUsersSearch,
|
|
35
35
|
} from "../lib/handlers.js";
|
|
36
|
+
import { RELEASE_VERSION } from "../lib/public-metadata.js";
|
|
36
37
|
|
|
37
38
|
const SERVER_NAME = "slack-mcp-server";
|
|
38
|
-
const SERVER_VERSION =
|
|
39
|
+
const SERVER_VERSION = RELEASE_VERSION;
|
|
39
40
|
const PORT = process.env.PORT || 3000;
|
|
40
41
|
const HTTP_INSECURE = process.env.SLACK_MCP_HTTP_INSECURE === "1";
|
|
41
42
|
const HTTP_AUTH_TOKEN = process.env.SLACK_MCP_HTTP_AUTH_TOKEN || process.env.SLACK_API_KEY || null;
|
package/src/server.js
CHANGED
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
* - Network error retry with exponential backoff
|
|
12
12
|
* - Background token health monitoring
|
|
13
13
|
*
|
|
14
|
-
* @version 3.2.0
|
|
15
14
|
*/
|
|
16
15
|
|
|
17
16
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
@@ -27,6 +26,7 @@ import {
|
|
|
27
26
|
} from "@modelcontextprotocol/sdk/types.js";
|
|
28
27
|
|
|
29
28
|
import { loadTokensReadOnly } from "../lib/token-store.js";
|
|
29
|
+
import { RELEASE_VERSION } from "../lib/public-metadata.js";
|
|
30
30
|
import { checkTokenHealth } from "../lib/slack-client.js";
|
|
31
31
|
import { TOOLS } from "../lib/tools.js";
|
|
32
32
|
import {
|
|
@@ -53,7 +53,7 @@ const BACKGROUND_REFRESH_INTERVAL = 4 * 60 * 60 * 1000;
|
|
|
53
53
|
|
|
54
54
|
// Package info
|
|
55
55
|
const SERVER_NAME = "slack-mcp-server";
|
|
56
|
-
const SERVER_VERSION =
|
|
56
|
+
const SERVER_VERSION = RELEASE_VERSION;
|
|
57
57
|
|
|
58
58
|
// MCP Prompts - predefined prompt templates for common Slack operations
|
|
59
59
|
const PROMPTS = [
|
package/src/web-server.js
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* Exposes Slack MCP tools as REST endpoints for browser access.
|
|
6
6
|
* Run alongside or instead of the MCP server for web-based access.
|
|
7
7
|
*
|
|
8
|
-
* @version 3.2.0
|
|
9
8
|
*/
|
|
10
9
|
|
|
11
10
|
import express from "express";
|
|
@@ -16,6 +15,7 @@ import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
|
16
15
|
import { execSync } from "child_process";
|
|
17
16
|
import { homedir } from "os";
|
|
18
17
|
import { loadTokensReadOnly } from "../lib/token-store.js";
|
|
18
|
+
import { PUBLIC_METADATA, RELEASE_VERSION } from "../lib/public-metadata.js";
|
|
19
19
|
|
|
20
20
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
21
21
|
import {
|
|
@@ -141,7 +141,7 @@ function extractContent(result) {
|
|
|
141
141
|
app.get("/", (req, res) => {
|
|
142
142
|
res.json({
|
|
143
143
|
name: "Slack Web API Server",
|
|
144
|
-
version:
|
|
144
|
+
version: RELEASE_VERSION,
|
|
145
145
|
status: "ok",
|
|
146
146
|
code: "ok",
|
|
147
147
|
message: "Web API server is running.",
|
|
@@ -450,7 +450,7 @@ async function main() {
|
|
|
450
450
|
app.listen(PORT, '127.0.0.1', () => {
|
|
451
451
|
// Print to stderr to keep logs clean (stdout reserved for JSON in some setups)
|
|
452
452
|
console.error(`\n${"═".repeat(60)}`);
|
|
453
|
-
console.error(` Slack Web API Server
|
|
453
|
+
console.error(` Slack Web API Server v${RELEASE_VERSION}`);
|
|
454
454
|
console.error(`${"═".repeat(60)}`);
|
|
455
455
|
console.error(`\n Dashboard: http://localhost:${PORT}/?key=${API_KEY}`);
|
|
456
456
|
console.error(`\n API Key: ${API_KEY}`);
|