使用说明
@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格式:
- 提及:
- 用户:
<@U1234567890>(使用用户ID) - 频道:
<#C1234567890>(使用频道ID) - @这里:
<!here> - @频道:
<!channel> - 用户组:
<!subteam^S1234567890>(使用子团队的ID) - 注: 使用时
mention参数或SLACK_MENTIONS环境变量,用户提及会自动添加到消息的开头
- 用户:
- 文本格式:
- 粗体:
*bold text* - 意大利语:
_italic text_ - 罢工:
~strikethrough text~ - 代码:
`inline code` - 代码块:
```code block``` - 报价:
> quoted text - 链接:
<https://example.com|Link 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
许可证
麻省理工学院