@mkusaka/mcp服务器空闲通知
MCP服务器,用于使用OAuth机器人令牌向Slack发送通知。
特性
- 向Slack频道发送带有标题和描述的格式化消息
- 使用提及参数自动提及特定用户
- 支持Slack的markdown格式
- 带有可选标题的干净邮件格式
- 完全类型安全的TypeScript支持
安装
npm install @mkusaka/mcp-server-slack-notify
# or
pnpm add @mkusaka/mcp-server-slack-notify配置
创建Slack应用程序
- 创建新的Slack应用程序
- 首选https://api.slack.com/apps - 点击“创建新应用” - 选择“从头开始” - 输入您的应用程序名称(例如“MCP通知机器人”) - 选择您的工作区 - 点击“创建应用”
- 配置OAuth作用域
- 在您的应用程序设置中,导航到侧栏中的“OAuth和权限” - 向下滚动到“范围”部分 - 在“Bot令牌作用域”下,单击“添加OAuth作用域” - 添加以下范围: - chat:write -发送消息时需要
- 将应用程序安装到您的工作区
- 请访问“OAuth和权限”页面 - 点击顶部的“安装到工作区” - 查看权限并单击“允许” - 您将被重定向回OAuth和权限页面
- 获取您的Bot令牌
- 安装后,您将在OAuth和权限页面上看到“Bot用户OAuth令牌” - 它始于 xoxb- - 复制此令牌-您将需要它 SLACK_BOT_TOKEN 环境变量
- 邀请机器人加入频道
- 在Slack中,转到要发送通知的频道 - 类型 /invite @YourBotName (替换为您的机器人名称) - 或者单击频道名称→ “集成”选项卡→ “添加应用程序”→ 选择您的机器人
环境变量
设置以下环境变量:
SLACK_BOT_TOKEN(必填):步骤4中的Bot用户OAuth令牌SLACK_DEFAULT_CHANNEL(可选):通知的默认通道(例如。,#general)SLACK_MENTIONS(可选):在所有消息中提及的默认用户ID(例如。,U1234567890,U0987654321)
使用Claude Desktop
添加到您的Claude Desktop配置中:
{
"mcpServers": {
"slack-notify": {
"command": "npx",
"args": ["-y", "@mkusaka/mcp-server-slack-notify@latest"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here",
"SLACK_DEFAULT_CHANNEL": "#general",
"SLACK_MENTIONS": "U1234567890,U0987654321"
}
}
}
}使用Claude代码
您可以使用以下命令将此MCP服务器添加到Claude Code中:
claude mcp add slack-notify -e SLACK_BOT_TOKEN=xoxb-your-token-here -e SLACK_DEFAULT_CHANNEL=#general -e SLACK_MENTIONS=U1234567890,U0987654321 -- npx -y @mkusaka/mcp-server-slack-notify@latest或者,如果您已全局安装该软件包:
# Install globally first
npm install -g @mkusaka/mcp-server-slack-notify
# Then add to Claude Code
claude mcp add slack-notify -e SLACK_BOT_TOKEN=xoxb-your-token-here -e SLACK_DEFAULT_CHANNEL=#general -e SLACK_MENTIONS=U1234567890,U0987654321 -- mcp-server-slack-notify要添加用户范围(适用于所有项目):
claude mcp add --scope user slack-notify -e SLACK_BOT_TOKEN=xoxb-your-token-here -e SLACK_DEFAULT_CHANNEL=#general -e SLACK_MENTIONS=U1234567890,U0987654321 -- npx -y @mkusaka/mcp-server-slack-notify@latest可用工具
send_slack_notification
向Slack频道发送通知。
参数:
channel(可选):松弛通道(例如#general或C1234567890)title(可选):通知标题(如果提供,则显示标题格式)description(必填):通知正文(支持Slack markdown)mention(可选):要提及的用户ID。可以是单个用户ID(例如U1234567890)或用逗号分隔的多个ID(例如,U1234567890、U0987654321)
格式化指南
描述字段支持Slack的mrkdwn格式:
- 提及:
- 用户: ` (使用用户ID) - 频道: (使用频道ID) - @这里: - @频道: - 用户组: (使用子团队的ID) - **注:** 使用时 mention 参数或 SLACK_MENTIONS` 环境变量,用户提及会自动添加到消息的开头
- 文本格式:
- 粗体: *bold text* - 意大利语: _italic text_ - 罢工: ~strikethrough text~ - 代码: ` inline code - 代码块: `` `code block` `` - 报价: > quoted text - 链接: `
发展
# Install dependencies
pnpm install
# Run tests
pnpm test
# Build
pnpm build
# Run in development mode
pnpm start
# Debug with MCP Inspector
pnpm debug测试
该项目包括使用Vitest和模拟Slack API调用进行全面测试。
# Run tests
pnpm test
# Run tests in watch mode
pnpm test:watch许可证
麻省理工学院
