🦀

Claude Codeとやっている作業要約をDiscord or Slackに送って作業ログとする

に公開

動機

Claude CodeのHooksが発表されましたね。これを使ってデスクトップ通知を出そう、Discordに通知を出そう、とやっていた(スクラップリンク)らDiscordにClaude Codeとの対話ログも出したいなと思った。
Hooksでshellを書いて呼び出すようにするのではClaude Codeとの対話内容の抽出がさっと出来なかったところ、 KOBA789さんの素晴らしいツールが見つかった。
https://github.com/KOBA789/human-in-the-loop
これを見ていて、MCPで作ればいいのではと思い、(たぶん世の中に何個もあるであろう)Discord MCPを作ることにした。

作ったもの

  • Discord版 MCP
    https://github.com/SH11235/discord-conversation-logger
    個人開発ではDiscordにログを貯めたい。

  • Slack版 MCP
    https://github.com/SH11235/slack-conversation-logger
    お仕事ではSlackを使う事が多いので、仕事で使うならSlackに流したいため作成。

    両方ともDiscord or Slackに会話スレッドを作成して、以降のClaude Code(Assistant)、System(コマンドなどのメッセージ)、Human(ユーザー自身)の3パターンの分類をして会話ログを書く。claude codeへの指示次第でコントロール出来ると思いますが、全量ではなく重要なイベントを書かせるようにして使っています。
    仕事の日報とかが必要あるならそのままこれが日報になりそうな感じです。

使っている様子

  • Discord版

  • Slack版

セットアップ方法

それぞれのREADMEを見ればOKです。
Rustで作ったのでDiscord版は cargo install --git https://github.com/SH11235/discord-conversation-logger.git で導入できます。
https://github.com/SH11235/discord-conversation-logger?tab=readme-ov-file#2-install
MCP登録のためのJSONファイルを書くのに悩む場合はREADME.mdに従って shell scriptを実行していけばOKです。
slack版も同様です。
cargo install --git https://github.com/SH11235/slack-conversation-logger.git
各botの作成・設定も簡単にはREADMEに書いています。参照と書き込みの権限を与えたbotを作ればOKです。
MCP設定JSONにenv(TOKEN)を書いてしまうのが気になる場合はenvの項目はファイルから消して手動で export DISCORD_TOKEN=hogehoge などすればOKです。

うまいことログを吐いて(MCPを使って)もらうために

CLAUDE.md にこういうのを書いておけばいいんじゃなかろうか、というサンプルを用意しています。
https://github.com/SH11235/discord-conversation-logger/blob/main/README.md#claudemd-configuration-example
https://github.com/SH11235/slack-conversation-logger/tree/main?tab=readme-ov-file#claudemd-configuration

発言者を分類する旨と、大事そうなイベントを通知させる(全量をログに出すわけでは無い)旨を書いています。
個人で触っているレポジトリで使う分にはそれらしいログがDiscordに通知されているので、デイリー作業ログの要約になっています。
作業開始時にスレッドを作らせることを促さないと以降ずっとログをはかない傾向があるので、初手でtoolsを使わすように促すコメントをいれるとよさげです。
Claude Codeはコメントを割り込めるので作業開始してからDiscordにログを出すようにして、と言っても効きます。

Discussion