Slack通知器MCP服务器
一个MCP服务器,通过套接字模式(WebSocket)连接到Slack,并通过MCP工具显示实时消息通知。不需要公共URL或ngrok。
运作原理
此服务器在单个进程中同时运行两件事:
- Slack套接字模式客户端 --通过WebSocket将出站连接到Slack并实时接收事件
- MCP服务器 (stdio)--公开用于查询、过滤和管理这些通知的工具
当有人在Slack中发布消息时,Socket模式连接会将事件推送到您的服务器。服务器将其存储在内存中(具有可选的磁盘持久性),您可以通过MCP工具查询它。
设置
1.创建Slack应用程序
- 首选 api.slack.com/apps 然后单击 创建新应用程序 → 从头开始
- 将其命名为“消息通知器”,然后选择您的工作区
2.启用套接字模式
- 首选 设置 → 插座模式 并切换它 开
- 系统将提示您创建 应用级令牌 --将其命名为“套接字模式令牌”
- 给它
connections:write范围 - 复制令牌(以开头
xapp-)--这是你的SLACK_APP_TOKEN
3.订阅活动
- 首选 特性 → 事件订阅 并切换它 开
- 在...之下 订阅机器人事件,添加:
- message.channels --公共渠道中的信息 - message.groups --私人渠道中的消息 - message.im --直接消息 - message.mpim --组直接消息
- 保存更改
4.添加Bot令牌范围
- 首选 特性 → OAuth和权限
- 在...之下 Bot令牌范围,添加:
- channels:history --阅读公共频道中的消息 - groups:history --阅读私人频道中的消息 - im:history --阅读直接消息 - mpim:history --读取组DM
- 将应用程序安装(或重新安装)到您的工作区
5.邀请机器人
邀请你的机器人加入你想要监控的频道:
/invite @Message Notifier6.配置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服务器。
