克劳德代码Slack频道
使用模型上下文协议(MCP)将Claude Code连接到Slack工作区。此服务器在Socket模式下运行Slack应用程序,将来自Slack的传入消息直接路由到您的本地Claude Code会话,并使Claude能够安全地回复!
特性
- 双向通信:从Slack向Claude Code发送消息,并允许Claude Code使用MCP工具进行本地回复(
send_slack_message). - 零配置隧道:使用Slack Socket模式,表示没有
ngrok或者需要公共IP地址。完全在本地运行! - 私人渠道支持:完全支持从私人Slack频道路由消息。
安装说明
1.创建Slack应用程序
- 首选 Slack API应用程序 然后单击 创建新应用程序 > 从头开始.
- 首选 插座模式 (左侧边栏)并切换它 开.
- 生成一个 应用级令牌 随着
connections:write范围。 *(开始于xapp-)*. - 首选 OAuth和权限 (左侧边栏),滚动至 范围>Bot令牌范围,并添加
channels:history,chat:write,以及groups:history范围。 - 首选 事件订阅 (左侧边栏),切换 启用事件 到 开,并订阅
message.channels和message.groups在“订阅机器人事件”下。 - 重要:滚动到底部并单击 保存更改.
- 首选 安装应用程序 并将其安装到您的工作区中,以获得 Bot用户OAuth令牌 *(开始于
xoxb-)*.
2.配置克劳德代码
您可以将此MCP服务器添加到全局Claude Code配置中(~/.claude.json)或针对特定项目 .claude.json 配置。
跑 npm install 在此目录中安装 @slack/bolt 和 tsx 依赖性。然后,将以下内容添加到您的 mcpServers block,将路径和标记替换为实际值:
{
"mcpServers": {
"slack-channel": {
"type": "stdio",
"command": "npx",
"args": [
"tsx",
"/path/to/this/repository/webhook.ts"
],
"env": {
"SLACK_APP_TOKEN": "xapp-...",
"SLACK_BOT_TOKEN": "xoxb-...",
"SLACK_CHANNEL_ID": "C0..." // Optional: add a channel ID here so it only listens to one specific channel!
}
}
}
}3.使用方法
- 只需重新启动Claude Code。服务器将在后台初始化并连接到Slack。
- 使用邀请您的机器人到Slack中的任何频道
/invite @YourBotName. - 在该通道中发送消息,它将作为上下文无缝地出现在Claude Code中!
- 您可以直接要求Claude Code“回复Slack消息”,它将自动使用
send_slack_message回邮工具。
⚠️ 架构警告:全局配置与本地配置
Slack的Socket模式允许使用相同的App Token进行多个WebSocket连接,以及 负载平衡(随机化) 所有连接的客户端上的传入消息。
因此:
- 全局配置(
~/.claude.json):如果同时打开多个运行Claude Code的终端窗口,则每个窗口都会生成自己的MCP服务器。当您发送Slack消息时,Slack将随机仅将其路由到 *一* 您的活动终端。 - 本地配置(
./.claude.json):如果您只希望Slack邮件唯一地路由到特定的项目工作区,请不要全局配置此服务器。相反,请配置mcpServers阻塞在本地.claude.json该文件位于特定项目文件夹中,因此只有当您在该目录中活动时,才会生成webhook服务器。
故障排除
如果消息未到达:
- 确保您已邀请机器人加入该频道。
- 确保在更改事件范围后,您在Slack中单击了黄色的“重新安装到工作区”横幅。
- 检查
slack-debug.log此存储库根目录中生成的文件。
