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