Slack通知服务器

一个通过Socket Mode连接Slack并实时推送消息通知的MCP服务器。

  • by farsght
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 farsght/slack-notifier-mcp-server

使用说明

Slack通知器MCP服务器

一个MCP服务器,通过套接字模式(WebSocket)连接到Slack,并通过MCP工具显示实时消息通知。不需要公共URL或ngrok。

运作原理

此服务器在单个进程中同时运行两件事:

  1. Slack套接字模式客户端 --通过WebSocket将出站连接到Slack并实时接收事件
  2. MCP服务器 (stdio)--公开用于查询、过滤和管理这些通知的工具

当有人在Slack中发布消息时,Socket模式连接会将事件推送到您的服务器。服务器将其存储在内存中(具有可选的磁盘持久性),您可以通过MCP工具查询它。

设置

1.创建Slack应用程序

  1. 首选 api.slack.com/apps 然后单击 创建新应用程序 → 从头开始
  2. 将其命名为“消息通知器”,然后选择您的工作区

2.启用套接字模式

  1. 首选 设置 → 插座模式 并切换它 开
  2. 系统将提示您创建 应用级令牌 --将其命名为“套接字模式令牌”
  3. 给它 connections:write 范围
  4. 复制令牌(以开头 xapp-)--这是你的 SLACK_APP_TOKEN

3.订阅活动

  1. 首选 特性 → 事件订阅 并切换它 开
  2. 在...之下 订阅机器人事件,添加:
    • message.channels --公共渠道中的信息
    • message.groups --私人渠道中的消息
    • message.im --直接消息
    • message.mpim --组直接消息
  3. 保存更改

4.添加Bot令牌范围

  1. 首选 特性 → OAuth和权限
  2. 在...之下 Bot令牌范围,添加:
    • channels:history --阅读公共频道中的消息
    • groups:history --阅读私人频道中的消息
    • im:history --阅读直接消息
    • mpim:history --读取组DM
  3. 将应用程序安装(或重新安装)到您的工作区

5.邀请机器人

邀请你的机器人加入你想要监控的频道:

/invite @Message Notifier

6.配置MCP服务器

将此添加到您的克劳德桌面/Claude代码MCP配置中:

{
  "mcpServers": {
    "slack-notifier": {
      "command": "node",
      "args": ["/path/to/slack-notifier-mcp-server/dist/index.js"],
      "env": {
        "SLACK_APP_TOKEN": "xapp-1-your-token-here",
        "PERSIST_PATH": "/path/to/notifications.json"
      }
    }
  }
}

环境变量

变量 必填 默认 描述
SLACK_APP_TOKEN 是 -- 应用级令牌(xapp-...)与 connections:write 范围
PERSIST_PATH 否 -- 用于在重启过程中保持通知的文件路径

可用的MCP工具

slack_get_notifications

使用筛选检索存储的邮件通知:

  • 按通道、读取状态、时间范围过滤
  • 分页支持
  • 首先返回最新消息

slack_mark_notifications_read

将通知标记为已读:

  • 按特定ID
  • 一次全部(每个频道可选)

slack_notification_stats

获取按通道分组的通知计数摘要——每个通道的总数和未读数。

slack_clear_notifications

永久删除所有存储的通知(需要确认)。

建筑

npm install
npm run build

跑步

SLACK_APP_TOKEN=xapp-1-... npm start

服务器将通过套接字模式连接到Slack,并同时启动MCP stdio服务器。