@sena-ai/tools-slack 0.0.9 → 0.0.11

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.
@@ -1,2 +1,3 @@
1
+ #!/usr/bin/env node
1
2
  export {};
2
3
  //# sourceMappingURL=mcp-server.d.ts.map
@@ -1,216 +1,111 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
1
4
  import { WebClient } from '@slack/web-api';
2
- import { createInterface } from 'node:readline';
5
+ import { z } from 'zod';
3
6
  const SLACK_BOT_TOKEN = process.env.SLACK_BOT_TOKEN;
4
7
  if (!SLACK_BOT_TOKEN) {
5
8
  console.error('SLACK_BOT_TOKEN is required');
6
9
  process.exit(1);
7
10
  }
8
11
  const slack = new WebClient(SLACK_BOT_TOKEN);
9
- // === Tool definitions ===
10
- const tools = [
11
- {
12
- name: 'slack_get_messages',
13
- description: 'Get messages from a Slack channel or thread',
14
- inputSchema: {
15
- type: 'object',
16
- properties: {
17
- channelId: { type: 'string', description: 'Channel ID' },
18
- threadTs: { type: 'string', description: 'Thread timestamp (optional)' },
19
- limit: { type: 'number', description: 'Max messages to return (default 20)' },
20
- },
21
- required: ['channelId'],
22
- },
23
- },
24
- {
25
- name: 'slack_post_message',
26
- description: 'Post a message to a Slack channel or thread',
27
- inputSchema: {
28
- type: 'object',
29
- properties: {
30
- channelId: { type: 'string', description: 'Channel ID' },
31
- text: { type: 'string', description: 'Message text' },
32
- threadTs: { type: 'string', description: 'Thread timestamp (optional, for replying in thread)' },
33
- },
34
- required: ['channelId', 'text'],
35
- },
36
- },
37
- {
38
- name: 'slack_list_channels',
39
- description: 'List accessible Slack channels',
40
- inputSchema: {
41
- type: 'object',
42
- properties: {
43
- limit: { type: 'number', description: 'Max channels to return (default 100)' },
44
- types: { type: 'string', description: 'Channel types (default "public_channel,private_channel")' },
45
- },
46
- },
47
- },
48
- {
49
- name: 'slack_upload_file',
50
- description: 'Upload content as a file to a Slack channel',
51
- inputSchema: {
52
- type: 'object',
53
- properties: {
54
- channelId: { type: 'string', description: 'Channel ID' },
55
- content: { type: 'string', description: 'File content' },
56
- filename: { type: 'string', description: 'Filename' },
57
- title: { type: 'string', description: 'File title (optional)' },
58
- },
59
- required: ['channelId', 'content', 'filename'],
60
- },
61
- },
62
- {
63
- name: 'slack_download_file',
64
- description: 'Download a file from Slack by file ID',
65
- inputSchema: {
66
- type: 'object',
67
- properties: {
68
- fileId: { type: 'string', description: 'Slack file ID' },
69
- },
70
- required: ['fileId'],
71
- },
72
- },
73
- ];
74
- // === Tool implementations ===
75
- async function executeTool(name, args) {
76
- switch (name) {
77
- case 'slack_get_messages': {
78
- const { channelId, threadTs, limit = 20 } = args;
79
- const params = { channel: channelId, limit };
80
- let result;
81
- if (threadTs) {
82
- params.ts = threadTs;
83
- result = await slack.conversations.replies(params);
84
- }
85
- else {
86
- result = await slack.conversations.history(params);
87
- }
88
- const messages = (result.messages ?? []).map((m) => ({
89
- user: m.user,
90
- text: m.text,
91
- ts: m.ts,
92
- thread_ts: m.thread_ts,
93
- }));
94
- return JSON.stringify(messages, null, 2);
95
- }
96
- case 'slack_post_message': {
97
- const { channelId, text, threadTs } = args;
98
- const params = { channel: channelId, text };
99
- if (threadTs)
100
- params.thread_ts = threadTs;
101
- const result = await slack.chat.postMessage(params);
102
- return JSON.stringify({ ok: result.ok, ts: result.ts });
103
- }
104
- case 'slack_list_channels': {
105
- const { limit = 100, types = 'public_channel,private_channel' } = args;
106
- const result = await slack.conversations.list({ limit, types });
107
- const channels = (result.channels ?? []).map((c) => ({
108
- id: c.id,
109
- name: c.name,
110
- is_private: c.is_private,
111
- num_members: c.num_members,
112
- }));
113
- return JSON.stringify(channels, null, 2);
114
- }
115
- case 'slack_upload_file': {
116
- const { channelId, content, filename, title } = args;
117
- const result = await slack.filesUploadV2({
118
- channel_id: channelId,
119
- content,
120
- filename,
121
- title: title ?? filename,
122
- });
123
- return JSON.stringify({ ok: true, file_id: result.file?.id });
124
- }
125
- case 'slack_download_file': {
126
- const { fileId } = args;
127
- const info = await slack.files.info({ file: fileId });
128
- const file = info.file;
129
- if (!file?.url_private) {
130
- return JSON.stringify({ error: 'File URL not available' });
131
- }
132
- // Fetch the file content using the bot token
133
- const response = await fetch(file.url_private, {
134
- headers: { Authorization: `Bearer ${SLACK_BOT_TOKEN}` },
135
- });
136
- const text = await response.text();
137
- return JSON.stringify({
138
- name: file.name,
139
- mimetype: file.mimetype,
140
- size: file.size,
141
- content: text.length > 50000 ? text.slice(0, 50000) + '\n...(truncated)' : text,
142
- });
143
- }
144
- default:
145
- throw new Error(`Unknown tool: ${name}`);
146
- }
147
- }
148
- // === JSON-RPC server ===
149
- function send(msg) {
150
- process.stdout.write(JSON.stringify(msg) + '\n');
151
- }
152
- function handleRequest(id, method, params) {
153
- switch (method) {
154
- case 'initialize':
155
- send({
156
- jsonrpc: '2.0',
157
- id,
158
- result: {
159
- protocolVersion: '2024-11-05',
160
- capabilities: { tools: {} },
161
- serverInfo: { name: 'sena-slack-mcp', version: '0.0.1' },
162
- },
163
- });
164
- break;
165
- case 'tools/list':
166
- send({
167
- jsonrpc: '2.0',
168
- id,
169
- result: { tools },
170
- });
171
- break;
172
- case 'tools/call':
173
- executeTool(params.name, params.arguments ?? {})
174
- .then((text) => {
175
- send({
176
- jsonrpc: '2.0',
177
- id,
178
- result: { content: [{ type: 'text', text }] },
179
- });
180
- })
181
- .catch((err) => {
182
- send({
183
- jsonrpc: '2.0',
184
- id,
185
- result: {
186
- content: [{ type: 'text', text: `Error: ${err.message}` }],
187
- isError: true,
188
- },
189
- });
190
- });
191
- break;
192
- default:
193
- send({
194
- jsonrpc: '2.0',
195
- id,
196
- error: { code: -32601, message: `Method not found: ${method}` },
197
- });
12
+ const server = new McpServer({
13
+ name: 'sena-slack-mcp',
14
+ version: '0.0.11',
15
+ });
16
+ // === Tools ===
17
+ server.tool('slack_get_messages', 'Get messages from a Slack channel or thread', {
18
+ channelId: z.string().describe('Channel ID'),
19
+ threadTs: z.string().optional().describe('Thread timestamp (optional)'),
20
+ limit: z.number().optional().default(20).describe('Max messages to return'),
21
+ }, async ({ channelId, threadTs, limit }) => {
22
+ const params = { channel: channelId, limit };
23
+ let result;
24
+ if (threadTs) {
25
+ params.ts = threadTs;
26
+ result = await slack.conversations.replies(params);
198
27
  }
199
- }
200
- // Main loop
201
- const rl = createInterface({ input: process.stdin });
202
- rl.on('line', (line) => {
203
- if (!line.trim())
204
- return;
205
- try {
206
- const msg = JSON.parse(line);
207
- if (msg.method && msg.id !== undefined) {
208
- handleRequest(msg.id, msg.method, msg.params);
209
- }
210
- // Notifications (no id) — just ignore
28
+ else {
29
+ result = await slack.conversations.history(params);
211
30
  }
212
- catch {
213
- // Ignore malformed lines
31
+ const messages = (result.messages ?? []).map((m) => ({
32
+ user: m.user,
33
+ text: m.text,
34
+ ts: m.ts,
35
+ thread_ts: m.thread_ts,
36
+ }));
37
+ return { content: [{ type: 'text', text: JSON.stringify(messages, null, 2) }] };
38
+ });
39
+ server.tool('slack_post_message', 'Post a message to a Slack channel or thread', {
40
+ channelId: z.string().describe('Channel ID'),
41
+ text: z.string().describe('Message text'),
42
+ threadTs: z.string().optional().describe('Thread timestamp (optional, for replying in thread)'),
43
+ }, async ({ channelId, text, threadTs }) => {
44
+ const params = { channel: channelId, text };
45
+ if (threadTs)
46
+ params.thread_ts = threadTs;
47
+ const result = await slack.chat.postMessage(params);
48
+ return { content: [{ type: 'text', text: JSON.stringify({ ok: result.ok, ts: result.ts }) }] };
49
+ });
50
+ server.tool('slack_list_channels', 'List accessible Slack channels', {
51
+ limit: z.number().optional().default(100).describe('Max channels to return'),
52
+ types: z.string().optional().default('public_channel,private_channel').describe('Channel types'),
53
+ }, async ({ limit, types }) => {
54
+ const result = await slack.conversations.list({ limit, types });
55
+ const channels = (result.channels ?? []).map((c) => ({
56
+ id: c.id,
57
+ name: c.name,
58
+ is_private: c.is_private,
59
+ num_members: c.num_members,
60
+ }));
61
+ return { content: [{ type: 'text', text: JSON.stringify(channels, null, 2) }] };
62
+ });
63
+ server.tool('slack_upload_file', 'Upload content as a file to a Slack channel', {
64
+ channelId: z.string().describe('Channel ID'),
65
+ content: z.string().describe('File content'),
66
+ filename: z.string().describe('Filename'),
67
+ title: z.string().optional().describe('File title'),
68
+ }, async ({ channelId, content, filename, title }) => {
69
+ const result = await slack.filesUploadV2({
70
+ channel_id: channelId,
71
+ content,
72
+ filename,
73
+ title: title ?? filename,
74
+ });
75
+ return { content: [{ type: 'text', text: JSON.stringify({ ok: true, file_id: result.file?.id }) }] };
76
+ });
77
+ server.tool('slack_download_file', 'Download a file from Slack by file ID', {
78
+ fileId: z.string().describe('Slack file ID'),
79
+ }, async ({ fileId }) => {
80
+ const info = await slack.files.info({ file: fileId });
81
+ const file = info.file;
82
+ if (!file?.url_private) {
83
+ return { content: [{ type: 'text', text: JSON.stringify({ error: 'File URL not available' }) }] };
214
84
  }
85
+ const response = await fetch(file.url_private, {
86
+ headers: { Authorization: `Bearer ${SLACK_BOT_TOKEN}` },
87
+ });
88
+ const text = await response.text();
89
+ return {
90
+ content: [{
91
+ type: 'text',
92
+ text: JSON.stringify({
93
+ name: file.name,
94
+ mimetype: file.mimetype,
95
+ size: file.size,
96
+ content: text.length > 50000 ? text.slice(0, 50000) + '\n...(truncated)' : text,
97
+ }),
98
+ }],
99
+ };
100
+ });
101
+ // === Start ===
102
+ async function main() {
103
+ const transport = new StdioServerTransport();
104
+ await server.connect(transport);
105
+ console.error('[sena-slack-mcp] running on stdio');
106
+ }
107
+ main().catch((err) => {
108
+ console.error('[sena-slack-mcp] fatal:', err);
109
+ process.exit(1);
215
110
  });
216
111
  //# sourceMappingURL=mcp-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sena-ai/tools-slack",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -15,15 +15,17 @@
15
15
  "bin": {
16
16
  "sena-slack-mcp": "./dist/mcp-server.js"
17
17
  },
18
+ "scripts": {
19
+ "build": "tsc -b",
20
+ "dev": "tsc -b --watch"
21
+ },
18
22
  "dependencies": {
23
+ "@modelcontextprotocol/sdk": "^1.27.1",
19
24
  "@sena-ai/core": "^0.0.1",
20
- "@slack/web-api": "^7.0.0"
25
+ "@slack/web-api": "^7.0.0",
26
+ "zod": "^4.3.6"
21
27
  },
22
28
  "devDependencies": {
23
29
  "typescript": "^5.8.0"
24
- },
25
- "scripts": {
26
- "build": "tsc -b",
27
- "dev": "tsc -b --watch"
28
30
  }
29
- }
31
+ }