公開日 更新日
claude-slack-channel
Slack の DM から手元の Claude Code に話しかけ、実行許可もボタンで返せる MCP サーバー
リポジトリ ↗概要
Slack のメッセージを、手元の PC で動いている Claude Code のセッションへ中継する MCP channel サーバー。PC の前に行かなくても、Slack から話しかけて実行許可にも答えられる。Slack とは Socket Mode でつなぐので、ポートの開放は要らない。Windows 専用で、TypeScript で書き、MIT ライセンスで公開している。
できること
- 許可したユーザーの DM と、指定したチャンネルでのメンションを Claude に届ける。Claude は
reply・react・edit_messageで Slack に返す - 実行許可の確認を Slack のボタンで返す。30 分答えなければ自動で拒否する
- 5 分たっても Claude から反応が無ければ、スレッドに警告を出す
!screen・!status・!restart・!compactなどのコマンドで、画面の確認や再起動をする
設計の判断
- 迷ったら拒否に倒す。期限切れ、配信の失敗、終了時に保留中の確認は、すべて自動で拒否する
- Slack のセッションはユーザー設定を読まずに起動し、専用の設定で権限を絞る。deny は常に allow より優先し、確認を飛ばすモードへの切り替えは設定で禁止した
- 「今後も許可」で足せるルールは確認の中身から作り、破壊的な操作や deny に当たるものは作らない
つまずいた点
- ターミナル側の選択画面は Slack に届かず、Slack からは止まったことに気付けなかった。無応答の警告と、画面を読んで選択肢をボタンで出す
!screenを足した - Claude Code の中から起動すると子セッション扱いになり、返信のツールが使えなかった。親セッションの目印の環境変数を消して直した
技術
- 言語:TypeScript(Node.js 22)
- 主なライブラリ:MCP の TypeScript SDK、Slack の Socket Mode と Web API のクライアント
- 起動スクリプト:PowerShell
- テスト:Vitest
リンク
- リポジトリ:GitHub
- 関連記事:準備中