@jtalk22/slack-mcp 1.1.9 → 1.2.1
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/LICENSE +1 -1
- package/README.md +71 -79
- package/docs/API.md +1 -1
- package/docs/SETUP.md +1 -1
- package/docs/assets/icon-512.png +0 -0
- package/docs/assets/icon.svg +27 -0
- package/docs/images/demo-claude-v1.2.gif +0 -0
- package/docs/images/demo-poster.png +0 -0
- package/docs/images/demo-readme.gif +0 -0
- package/docs/images/diagram-oauth-comparison.svg +80 -0
- package/docs/images/diagram-session-flow.svg +105 -0
- package/docs/videos/.gitkeep +0 -0
- package/docs/videos/demo-claude-v1.2.webm +0 -0
- package/lib/slack-client.js +35 -6
- package/lib/tools.js +69 -0
- package/package.json +10 -5
- package/public/demo-claude.html +1838 -0
- package/public/demo-video.html +151 -0
- package/scripts/record-demo.js +149 -0
- package/scripts/setup-wizard.js +363 -0
- package/src/cli.js +57 -0
- package/src/server-http.js +1 -1
- package/src/server.js +170 -3
- package/src/web-server.js +3 -3
package/lib/tools.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* MCP Tool Definitions
|
|
3
3
|
*
|
|
4
4
|
* All Slack MCP tools in one place for easy maintenance.
|
|
5
|
+
* Includes MCP annotations for better tool discovery and safety hints.
|
|
5
6
|
*/
|
|
6
7
|
|
|
7
8
|
export const TOOLS = [
|
|
@@ -11,6 +12,12 @@ export const TOOLS = [
|
|
|
11
12
|
inputSchema: {
|
|
12
13
|
type: "object",
|
|
13
14
|
properties: {}
|
|
15
|
+
},
|
|
16
|
+
annotations: {
|
|
17
|
+
title: "Token Status",
|
|
18
|
+
readOnlyHint: true,
|
|
19
|
+
idempotentHint: true,
|
|
20
|
+
openWorldHint: false
|
|
14
21
|
}
|
|
15
22
|
},
|
|
16
23
|
{
|
|
@@ -19,6 +26,12 @@ export const TOOLS = [
|
|
|
19
26
|
inputSchema: {
|
|
20
27
|
type: "object",
|
|
21
28
|
properties: {}
|
|
29
|
+
},
|
|
30
|
+
annotations: {
|
|
31
|
+
title: "Health Check",
|
|
32
|
+
readOnlyHint: true,
|
|
33
|
+
idempotentHint: true,
|
|
34
|
+
openWorldHint: true
|
|
22
35
|
}
|
|
23
36
|
},
|
|
24
37
|
{
|
|
@@ -27,6 +40,13 @@ export const TOOLS = [
|
|
|
27
40
|
inputSchema: {
|
|
28
41
|
type: "object",
|
|
29
42
|
properties: {}
|
|
43
|
+
},
|
|
44
|
+
annotations: {
|
|
45
|
+
title: "Refresh Tokens",
|
|
46
|
+
readOnlyHint: false,
|
|
47
|
+
destructiveHint: false,
|
|
48
|
+
idempotentHint: true,
|
|
49
|
+
openWorldHint: false
|
|
30
50
|
}
|
|
31
51
|
},
|
|
32
52
|
{
|
|
@@ -49,6 +69,12 @@ export const TOOLS = [
|
|
|
49
69
|
description: "If true, actively discover all DMs (slower, may hit rate limits on large workspaces). Default false uses cached DMs."
|
|
50
70
|
}
|
|
51
71
|
}
|
|
72
|
+
},
|
|
73
|
+
annotations: {
|
|
74
|
+
title: "List Conversations",
|
|
75
|
+
readOnlyHint: true,
|
|
76
|
+
idempotentHint: true,
|
|
77
|
+
openWorldHint: true
|
|
52
78
|
}
|
|
53
79
|
},
|
|
54
80
|
{
|
|
@@ -79,6 +105,12 @@ export const TOOLS = [
|
|
|
79
105
|
}
|
|
80
106
|
},
|
|
81
107
|
required: ["channel_id"]
|
|
108
|
+
},
|
|
109
|
+
annotations: {
|
|
110
|
+
title: "Conversation History",
|
|
111
|
+
readOnlyHint: true,
|
|
112
|
+
idempotentHint: true,
|
|
113
|
+
openWorldHint: true
|
|
82
114
|
}
|
|
83
115
|
},
|
|
84
116
|
{
|
|
@@ -113,6 +145,12 @@ export const TOOLS = [
|
|
|
113
145
|
}
|
|
114
146
|
},
|
|
115
147
|
required: ["channel_id"]
|
|
148
|
+
},
|
|
149
|
+
annotations: {
|
|
150
|
+
title: "Full Conversation Export",
|
|
151
|
+
readOnlyHint: true,
|
|
152
|
+
idempotentHint: true,
|
|
153
|
+
openWorldHint: true
|
|
116
154
|
}
|
|
117
155
|
},
|
|
118
156
|
{
|
|
@@ -131,6 +169,12 @@ export const TOOLS = [
|
|
|
131
169
|
}
|
|
132
170
|
},
|
|
133
171
|
required: ["query"]
|
|
172
|
+
},
|
|
173
|
+
annotations: {
|
|
174
|
+
title: "Search Messages",
|
|
175
|
+
readOnlyHint: true,
|
|
176
|
+
idempotentHint: true,
|
|
177
|
+
openWorldHint: true
|
|
134
178
|
}
|
|
135
179
|
},
|
|
136
180
|
{
|
|
@@ -145,6 +189,12 @@ export const TOOLS = [
|
|
|
145
189
|
}
|
|
146
190
|
},
|
|
147
191
|
required: ["user_id"]
|
|
192
|
+
},
|
|
193
|
+
annotations: {
|
|
194
|
+
title: "User Info",
|
|
195
|
+
readOnlyHint: true,
|
|
196
|
+
idempotentHint: true,
|
|
197
|
+
openWorldHint: true
|
|
148
198
|
}
|
|
149
199
|
},
|
|
150
200
|
{
|
|
@@ -167,6 +217,13 @@ export const TOOLS = [
|
|
|
167
217
|
}
|
|
168
218
|
},
|
|
169
219
|
required: ["channel_id", "text"]
|
|
220
|
+
},
|
|
221
|
+
annotations: {
|
|
222
|
+
title: "Send Message",
|
|
223
|
+
readOnlyHint: false,
|
|
224
|
+
destructiveHint: false,
|
|
225
|
+
idempotentHint: false,
|
|
226
|
+
openWorldHint: true
|
|
170
227
|
}
|
|
171
228
|
},
|
|
172
229
|
{
|
|
@@ -185,6 +242,12 @@ export const TOOLS = [
|
|
|
185
242
|
}
|
|
186
243
|
},
|
|
187
244
|
required: ["channel_id", "thread_ts"]
|
|
245
|
+
},
|
|
246
|
+
annotations: {
|
|
247
|
+
title: "Get Thread",
|
|
248
|
+
readOnlyHint: true,
|
|
249
|
+
idempotentHint: true,
|
|
250
|
+
openWorldHint: true
|
|
188
251
|
}
|
|
189
252
|
},
|
|
190
253
|
{
|
|
@@ -198,6 +261,12 @@ export const TOOLS = [
|
|
|
198
261
|
description: "Maximum users to return (default 500, supports pagination)"
|
|
199
262
|
}
|
|
200
263
|
}
|
|
264
|
+
},
|
|
265
|
+
annotations: {
|
|
266
|
+
title: "List Users",
|
|
267
|
+
readOnlyHint: true,
|
|
268
|
+
idempotentHint: true,
|
|
269
|
+
openWorldHint: true
|
|
201
270
|
}
|
|
202
271
|
}
|
|
203
272
|
];
|
package/package.json
CHANGED
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jtalk22/slack-mcp",
|
|
3
3
|
"mcpName": "io.github.jtalk22/slack-mcp-server",
|
|
4
|
-
"version": "1.1
|
|
4
|
+
"version": "1.2.1",
|
|
5
5
|
"description": "Full Slack access for Claude - DMs, channels, search. No OAuth. No admin approval. Just works.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "src/server.js",
|
|
8
8
|
"bin": {
|
|
9
|
+
"slack-mcp": "./src/cli.js",
|
|
9
10
|
"slack-mcp-server": "./src/server.js",
|
|
10
11
|
"slack-mcp-http": "./src/server-http.js",
|
|
11
|
-
"slack-mcp-web": "./src/web-server.js"
|
|
12
|
+
"slack-mcp-web": "./src/web-server.js",
|
|
13
|
+
"slack-mcp-setup": "./scripts/setup-wizard.js"
|
|
12
14
|
},
|
|
13
15
|
"scripts": {
|
|
14
16
|
"start": "node src/server.js",
|
|
15
17
|
"http": "node src/server-http.js",
|
|
16
18
|
"web": "node src/web-server.js",
|
|
19
|
+
"setup": "node scripts/setup-wizard.js --setup",
|
|
17
20
|
"tokens:status": "node scripts/token-cli.js status",
|
|
18
21
|
"tokens:refresh": "node scripts/token-cli.js refresh",
|
|
19
22
|
"tokens:auto": "node scripts/token-cli.js auto",
|
|
20
|
-
"tokens:clear": "node scripts/token-cli.js clear"
|
|
23
|
+
"tokens:clear": "node scripts/token-cli.js clear",
|
|
24
|
+
"screenshot": "node scripts/capture-screenshots.js",
|
|
25
|
+
"record-demo": "node scripts/record-demo.js"
|
|
21
26
|
},
|
|
22
27
|
"keywords": [
|
|
23
28
|
"mcp",
|
|
@@ -81,10 +86,10 @@
|
|
|
81
86
|
"url": "https://github.com/jtalk22/slack-mcp-server/issues"
|
|
82
87
|
},
|
|
83
88
|
"engines": {
|
|
84
|
-
"node": ">=
|
|
89
|
+
"node": ">=20.0.0"
|
|
85
90
|
},
|
|
86
91
|
"dependencies": {
|
|
87
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
92
|
+
"@modelcontextprotocol/sdk": "^1.27.0",
|
|
88
93
|
"express": "^4.18.2"
|
|
89
94
|
},
|
|
90
95
|
"files": [
|