@pilat/mcp-notify 1.0.1 → 1.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
@@ -12,7 +12,7 @@ Minimal MCP server for sending Slack messages as user (xoxc + cookie auth). Fire
12
12
 
13
13
  ### Claude Code
14
14
 
15
- Add to your MCP config (`~/.claude/settings.json` or project settings):
15
+ Add to your MCP config (`~/.claude.json` globally or `.mcp.json` per project):
16
16
 
17
17
  ```json
18
18
  {
@@ -1,3 +1,3 @@
1
1
  import type { WebClient } from '@slack/web-api';
2
- export declare function getChannelId(name: string, client: WebClient): Promise<string | null>;
2
+ export declare function getChannelId(rawInput: string, client: WebClient): Promise<string | null>;
3
3
  //# sourceMappingURL=channels.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/cache/channels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA+ChD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS1F"}
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/cache/channels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuDhD,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAa9F"}
@@ -1,10 +1,15 @@
1
1
  import { getDb } from './db.js';
2
- import { syncIfNeeded, isTableSynced, CACHE_TTL_MS } from './sync.js';
3
- function lookupChannel(name) {
2
+ import { syncIfNeeded, CACHE_TTL_MS } from './sync.js';
3
+ function lookupChannelByName(name) {
4
4
  const db = getDb();
5
5
  const row = db.prepare('SELECT id FROM channels WHERE name = ? AND synced_at > ?').get(name, Date.now() - CACHE_TTL_MS);
6
6
  return row?.id ?? null;
7
7
  }
8
+ function lookupChannelById(id) {
9
+ const db = getDb();
10
+ const row = db.prepare('SELECT id FROM channels WHERE id = ? AND synced_at > ?').get(id, Date.now() - CACHE_TTL_MS);
11
+ return row?.id ?? null;
12
+ }
8
13
  async function fetchChannels(client) {
9
14
  const db = getDb();
10
15
  const now = Date.now();
@@ -33,13 +38,14 @@ async function fetchChannels(client) {
33
38
  });
34
39
  tx();
35
40
  }
36
- export async function getChannelId(name, client) {
37
- const cached = lookupChannel(name);
38
- if (cached !== null)
39
- return cached;
40
- if (!isTableSynced('channels')) {
41
- return syncIfNeeded('channels', () => lookupChannel(name), () => fetchChannels(client));
42
- }
43
- return null;
41
+ export async function getChannelId(rawInput, client) {
42
+ const input = rawInput.startsWith('#') ? rawInput.slice(1) : rawInput;
43
+ const byName = lookupChannelByName(input);
44
+ if (byName !== null)
45
+ return byName;
46
+ const byId = lookupChannelById(input);
47
+ if (byId !== null)
48
+ return byId;
49
+ return syncIfNeeded('channels', () => lookupChannelByName(input) ?? lookupChannelById(input), () => fetchChannels(client));
44
50
  }
45
51
  //# sourceMappingURL=channels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/cache/channels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEtE,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,0DAA0D,CAC3D,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAA+B,CAAC;IACrE,OAAO,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAiB;IAC5C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAmC,EAAE,CAAC;IAEpD,IAAI,MAA0B,CAAC;IAC/B,GAAG,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;YAC7C,KAAK,EAAE,gCAAgC;YACvC,gBAAgB,EAAE,IAAI;YACtB,KAAK,EAAE,IAAI;YACX,MAAM;SACP,CAAC,CAAC;QAEH,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,MAAM,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,IAAI,SAAS,CAAC;IAC9D,CAAC,QAAQ,MAAM,EAAE;IAEjB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,wEAAwE,CACzE,CAAC;IACF,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7B,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,CAAC;QACzC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,EAAE,EAAE,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,MAAiB;IAChE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAEnC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/cache/channels.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAUnE,wBAAgB,YAAY,IAAI,MAAM,CAoGrC;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAKjD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AASnE,wBAAgB,YAAY,IAAI,MAAM,CAgGrC;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAKjD"}
package/dist/server.js CHANGED
@@ -3,8 +3,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
3
3
  import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
4
4
  import { sendMessage } from './slack/send.js';
5
5
  import { SlackMcpError, ErrorCode } from './utils/errors.js';
6
- const SERVER_INSTRUCTIONS = `Slack message sender. Use send_message to post messages to channels or reply to threads.
7
- @mentions like @username are automatically resolved to Slack user IDs.`;
6
+ const SERVER_INSTRUCTIONS = `Slack message sender (write-only). Single tool: send_message. @mentions are auto-resolved. Uses Slack mrkdwn, not Markdown.`;
8
7
  export function createServer() {
9
8
  const server = new Server({
10
9
  name: 'mcp-notify',
@@ -19,43 +18,39 @@ export function createServer() {
19
18
  tools: [
20
19
  {
21
20
  name: 'send_message',
22
- description: `Send a message to a Slack channel or thread as the authenticated user. Messages are tagged with a :robot_face: indicator so recipients know AI assisted.
21
+ description: `Send a message to a Slack channel or thread as the authenticated user. Every message is automatically tagged with :robot_face: so recipients know it was AI-assisted.
23
22
 
24
- WHEN TO USE: User asks to post, send, write, notify, tell, or reply in Slack.
23
+ NOTE: This tool posts to channels only. DMs are not supported.
25
24
 
26
- MENTIONS: Write @username or @groupname naturally — they are auto-resolved to Slack IDs. Do NOT manually construct <@U...> syntax.
25
+ MENTIONS: Write @username or @groupname naturally — they are auto-resolved. Do NOT construct <@U...> syntax manually.
27
26
 
28
- THREAD REPLIES: To reply in a thread, provide thread_ts. Extract from Slack URLs by converting the p-prefixed ID: p1718033467085279 → 1718033467.085279 (insert dot before last 6 digits).
27
+ SLACK URLs: When given a Slack URL like .../archives/C0AGCGG628K/p1718033467085279:
28
+ - Channel ID: the segment after /archives/ → pass as channel
29
+ - Thread timestamp: strip "p", insert dot before last 6 digits → "1718033467.085279"
30
+ Prefer channel ID over channel name when both are available.
29
31
 
30
- CRITICALUse Slack mrkdwn, NOT Markdown:
31
- *bold* (NOT **bold**)
32
- _italic_ (NOT *italic*)
33
- ~strikethrough~
34
- \`inline code\`
35
- \`\`\`code block\`\`\`
36
- <https://url.com|link text> (NOT [text](url))
37
- > blockquote
38
- • or - for bullets, 1. for numbered lists
39
- :emoji_name: for emoji
40
-
41
- NEVER use: **bold**, [link](url), # headers, tables, ---, ![images]. These render as literal text in Slack.`,
32
+ FORMAT — Slack mrkdwn (NOT Markdown):
33
+ *bold* _italic_ ~strike~ \`code\` \`\`\`block\`\`\`
34
+ <https://url|link text> > quote • bullets
35
+ :emoji_name:
36
+ NEVER use: **bold**, [text](url), # headers, --- rules, tables, ![images].`,
42
37
  inputSchema: {
43
38
  type: 'object',
44
39
  properties: {
45
- channel_name: {
40
+ channel: {
46
41
  type: 'string',
47
- description: 'Channel name without # prefix (e.g. "general", "team-backend"). Works with public and private channels you have access to.',
42
+ description: 'Channel name (without #) or channel ID. Examples: "general", "C0AGCGG628K". Prefer ID when available; never guess a name you weren\'t given.',
48
43
  },
49
44
  message: {
50
45
  type: 'string',
51
- description: 'Message content in Slack mrkdwn format. IMPORTANT: Use *bold* not **bold**, use <url|text> not [text](url). @mentions like @username are auto-resolved.',
46
+ description: 'Message text in Slack mrkdwn format. @mentions are auto-resolved.',
52
47
  },
53
48
  thread_ts: {
54
49
  type: 'string',
55
- description: 'Thread timestamp to reply in a thread (e.g. "1718033467.085279"). From Slack URLs: strip the "p" prefix and insert a dot before the last 6 digits.',
50
+ description: 'Thread timestamp for replying in a thread (e.g. "1718033467.085279"). See URL extraction in tool description.',
56
51
  },
57
52
  },
58
- required: ['channel_name', 'message'],
53
+ required: ['channel', 'message'],
59
54
  },
60
55
  },
61
56
  ],
@@ -66,14 +61,14 @@ NEVER use: **bold**, [link](url), # headers, tables, ---, ![images]. These rende
66
61
  switch (name) {
67
62
  case 'send_message': {
68
63
  const params = args;
69
- if (!params?.channel_name || typeof params.channel_name !== 'string') {
70
- throw new SlackMcpError(ErrorCode.SEND_FAILED, 'channel_name is required and must be a string');
64
+ if (!params?.channel || typeof params.channel !== 'string') {
65
+ throw new SlackMcpError(ErrorCode.SEND_FAILED, 'channel is required and must be a string');
71
66
  }
72
67
  if (!params?.message || typeof params.message !== 'string') {
73
68
  throw new SlackMcpError(ErrorCode.SEND_FAILED, 'message is required and must be a string');
74
69
  }
75
70
  const result = await sendMessage({
76
- channel_name: params.channel_name,
71
+ channel: params.channel,
77
72
  message: params.message,
78
73
  thread_ts: typeof params.thread_ts === 'string' ? params.thread_ts : undefined,
79
74
  });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,9 @@ export async function sendMessage(params) {
13
13
  // Resolve mentions
14
14
  const convertedMessage = await convertMentions(params.message, client);
15
15
  // Resolve channel
16
- const channelId = await getChannelId(params.channel_name, client);
16
+ const channelId = await getChannelId(params.channel, client);
17
17
  if (!channelId) {
18
- throw new SlackMcpError(ErrorCode.CHANNEL_NOT_FOUND, `Channel "#${params.channel_name}" not found. Check the channel name and ensure you have access.`);
18
+ throw new SlackMcpError(ErrorCode.CHANNEL_NOT_FOUND, `Channel "${params.channel}" not found (tried as both name and ID). Verify it exists and you have access.`);
19
19
  }
20
20
  const baseArgs = {
21
21
  channel: channelId,
@@ -26,7 +26,7 @@ export async function sendMessage(params) {
26
26
  const makeResult = (ts, fallback) => ({
27
27
  status: 'success',
28
28
  message: fallback ? 'Message sent successfully (plain text fallback)' : 'Message sent successfully',
29
- channel_name: params.channel_name,
29
+ channel: params.channel,
30
30
  channel_id: channelId,
31
31
  message_ts: ts,
32
32
  sent_message: convertedMessage,
@@ -34,7 +34,7 @@ export async function sendMessage(params) {
34
34
  });
35
35
  // Skip Block Kit if message exceeds the 3000-char section limit
36
36
  if (convertedMessage.length > BLOCK_KIT_TEXT_LIMIT) {
37
- return sendPlainText(client, baseArgs, convertedMessage, params.channel_name, makeResult);
37
+ return sendPlainText(client, baseArgs, convertedMessage, params.channel, makeResult);
38
38
  }
39
39
  // Build Block Kit blocks
40
40
  const blocks = [
@@ -60,11 +60,11 @@ export async function sendMessage(params) {
60
60
  catch (blockKitError) {
61
61
  // Fallback to plain text without blocks
62
62
  try {
63
- return await sendPlainText(client, baseArgs, convertedMessage, params.channel_name, makeResult);
63
+ return await sendPlainText(client, baseArgs, convertedMessage, params.channel, makeResult);
64
64
  }
65
65
  catch {
66
66
  const err = blockKitError instanceof Error ? blockKitError : new Error(String(blockKitError));
67
- throw mapSlackError(err, params.channel_name);
67
+ throw mapSlackError(err, params.channel);
68
68
  }
69
69
  }
70
70
  }
@@ -84,13 +84,13 @@ async function sendPlainText(client, baseArgs, message, channelName, makeResult)
84
84
  function mapSlackError(error, channelName) {
85
85
  const msg = error.message;
86
86
  if (msg.includes('channel_not_found')) {
87
- return new SlackMcpError(ErrorCode.CHANNEL_NOT_FOUND, `Channel "#${channelName}" not found. It may not exist or you may not have access.`);
87
+ return new SlackMcpError(ErrorCode.CHANNEL_NOT_FOUND, `Channel "${channelName}" not found. It may not exist or you may not have access.`);
88
88
  }
89
89
  if (msg.includes('not_in_channel')) {
90
- return new SlackMcpError(ErrorCode.SEND_FAILED, `You are not a member of "#${channelName}". Join the channel first.`);
90
+ return new SlackMcpError(ErrorCode.SEND_FAILED, `You are not a member of "${channelName}". Join the channel first.`);
91
91
  }
92
92
  if (msg.includes('restricted_action')) {
93
- return new SlackMcpError(ErrorCode.SEND_FAILED, `Restricted action: you don't have permission to post in "#${channelName}".`);
93
+ return new SlackMcpError(ErrorCode.SEND_FAILED, `Restricted action: you don't have permission to post in "${channelName}".`);
94
94
  }
95
95
  if (msg.includes('thread_not_found')) {
96
96
  return new SlackMcpError(ErrorCode.SEND_FAILED, 'Thread not found. The thread_ts may be invalid or the parent message was deleted.');
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/slack/send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/slack/send.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  export interface SendMessageParams {
2
- channel_name: string;
2
+ channel: string;
3
3
  message: string;
4
4
  thread_ts?: string;
5
5
  }
6
6
  export interface SendMessageResult {
7
7
  status: 'success' | 'error';
8
8
  message: string;
9
- channel_name?: string;
9
+ channel: string;
10
10
  channel_id?: string;
11
11
  message_ts?: string;
12
12
  sent_message?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilat/mcp-notify",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "MCP server for sending Slack messages as user (xoxc + cookie auth)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",