Slack通道集成工具

通过MCP协议实现Claude Code与Slack工作区的双向通信,支持零配置隧道和私有频道消息路由。

  • by AppGambitStudio
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 AppGambitStudio/Claude-Code-Slack-Channel

使用说明

克劳德代码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应用程序

  1. 首选 Slack API应用程序 然后单击 创建新应用程序 > 从头开始.
  2. 首选 插座模式 (左侧边栏)并切换它 开.
  3. 生成一个 应用级令牌 随着 connections:write 范围。 (开始于 xapp-).
  4. 首选 OAuth和权限 (左侧边栏),滚动至 范围>Bot令牌范围,并添加 channels:history, chat:write,以及 groups:history 范围。
  5. 首选 事件订阅 (左侧边栏),切换 启用事件 到 开,并订阅 message.channels 和 message.groups 在“订阅机器人事件”下。
  6. 重要:滚动到底部并单击 保存更改.
  7. 首选 安装应用程序 并将其安装到您的工作区中,以获得 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 此存储库根目录中生成的文件。