使用说明
mcp通知
用于发送Slack消息的最小MCP服务器。支持机器人令牌(xoxb)和用户令牌(xoxc+cookie认证)。即发即弃-单 send_message 工具,没有别的。
正在寻找功能齐全的Slack MCP? 结账 korotovsky/lack mcp服务器 --它支持阅读、搜索、反应、线程、DM等等。我们推荐它用于大多数用例。
这个项目之所以存在,是因为我们需要它没有提供的两样东西:
- 机器人签名 --在用户令牌模式下,每条消息都会得到一个
:robot_face:上下文块,因此很明显消息是由人工智能助手而不是人类发送的。在机器人令牌模式下,应用程序名称/图标已经用于此目的。- 并行安全 --SQLite具有WAL模式和检查锁再检查同步模式,对并行运行的多个MCP实例是安全的
安装
克劳德代码
添加到MCP配置(~/.claude.json 全球或 .mcp.json 每个项目)。
机器人令牌(推荐用于Slack应用程序):
{
"mcpServers": {
"mcp-notify": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@pilat/mcp-notify"],
"env": {
"SLACK_MCP_BOT_TOKEN": "xoxb-..."
}
}
}
}
用户令牌(xoxc+cookie):
{
"mcpServers": {
"mcp-notify": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@pilat/mcp-notify"],
"env": {
"SLACK_MCP_XOXC_TOKEN": "xoxc-...",
"SLACK_MCP_XOXD_TOKEN": "xoxd-..."
}
}
}
}
其他MCP客户端
使用 npx @pilat/mcp-notify 作为stdio传输的命令。将凭据作为环境变量传递:
# Bot token
SLACK_MCP_BOT_TOKEN=xoxb-... npx @pilat/mcp-notify
# User token
SLACK_MCP_XOXC_TOKEN=xoxc-... SLACK_MCP_XOXD_TOKEN=xoxd-... npx @pilat/mcp-notify
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
SLACK_MCP_BOT_TOKEN |
机器人/用户之一 | 机器人令牌(xoxb-...)从您的Slack应用程序 |
SLACK_MCP_XOXC_TOKEN |
机器人/用户 | 用户 xoxc-... 代币 |
SLACK_MCP_XOXD_TOKEN |
使用xoxc | 用户 xoxd-... 会话令牌(的值 d 饼干) |
SLACK_MCP_DATA_DIR |
否 | SQLite缓存的自定义路径(默认: ~/.local/share/mcp-notify) |
设置其中之一 SLACK_MCP_BOT_TOKEN 或 SLACK_MCP_XOXC_TOKEN + SLACK_MCP_XOXD_TOKEN。设置bot和用户令牌都是错误的。
Bot令牌设置
- 在以下位置创建Slack应用程序 api.slack.com/apps
- 添加以下OAuth作用域:
channels:read,groups:read,users:read,usergroups:read,chat:write - 将应用程序安装到您的工作区
- 复制 Bot用户OAuth令牌 (
xoxb-...)
用户令牌设置(xoxc+cookie)
- 在浏览器中打开Slack(不是桌面应用程序)
- 打开DevTools→ 网络选项卡
- 在Slack中执行任何操作(切换频道、发送消息)
- 查找任何请求
api.slack.com→ 标题选项卡 - SLACK_MCP_XOXC_TOKEN:从请求负载中查找
token=xoxc-... - SLACK_MCP_oxd_TOKEN:从Cookie标头中查找
d=xoxd-...--仅复制xoxd-...部分(无d=)
建筑
单一工具: send_message在用户令牌模式下,消息包括 :robot_face: 上下文块。在机器人令牌模式下,消息在没有签名的情况下发送(应用程序名称/图标已经标识了发送者)。这两种模式都使用带有纯文本回退的Block Kit。
- SQLite缓存 (
~/.local/share/mcp-notify/data.db,WAL模式)--通道、用户、用户组在第一次缓存未命中时具有延迟同步,24小时TTL - 提及决议 —
@username→<@U123>,@grouphandle→<!subteam^ID>.团体优先。并行解决。 - 并发同步安全 -基于CAS的检查-锁-重检查模式,通过
sync_meta桌子
