Claude Codeの Slack連携は 3通り Slackから 指示・ MCP・ 完了通知
- Slack連携は@Claude、MCP、通知フックの3通りです。
- @ClaudeはPro・Maxが以前の版、Team以上はClaude Tagです。
- 通知はIncoming WebhookのURLを環境変数に入れて送ります。

Claude CodeとSlackをつなぐ方法は3つあります。Slackで@Claudeに頼んでクラウドのClaude Codeに作業させる方法、Claude CodeからSlackを読み書きするMCPサーバー、作業が終わったときや確認を待っているときにSlackへ知らせるフックです。 Slackから仕事を渡したいなら1つめ、手元のClaude CodeにSlackの会話を調べさせたいなら2つめ、席を離れている間の合図がほしいなら3つめを選びます。
1つめは、プランで使う仕組みが変わりました。ProとMaxの人は「Claude Code in Slack」(以前からの版)、TeamとEnterpriseの組織は管理者が一度設定する「Claude Tag」を使います。どちらもSlackのClaudeアプリと@Claudeの呼び名は同じです。リポジトリは、以前の版ではGitHubだけ、Claude TagではGitHubかGitLabに置いてある必要があります。この記事では、3つの方法の手順と、会社で使う前に決めておくことを順に説明します。
内容は、2026年10月25日に公式のClaude Code in Slack、Claude Tagの概要、以前の版からの移行、Claude Tag for Claude Code users、Slackアプリが読めるもの、Slack連携(コネクタ)、クラウドのセッション、MCP、フックのガイドとフックのリファレンス、Slack側はSlackのヘルプ「Slack で Claude を使用する」、Slack MCPサーバー、Claudeへのつなぎ方、Incoming Webhookと照らし合わせました。この記事はSlackのワークスペースを使った実画面の確認はしていません。
3つの 方法と 選び方
| 方法 | 向き | できること | 必要なもの |
|---|---|---|---|
| 方法1. Slackの | 向きSlack → Claude | できることスレッドの | 必要なものClaudeの |
| 方法2. MCPで | 向きClaude Code → Slack | できること手元の | 必要なものSlack公式の |
| 方法3. フックで通知 | 向きClaude Code → Slack | できること確認待ちや | 必要なものSlackの |
迷ったら、仕事の始まりがどこにあるかで選びます。バグの報告や依頼がSlackのスレッドで始まるなら1、作業は手元で進めつつSlackの過去の議論を材料にしたいなら2、手元で長い作業を任せて別の仕事をしたいなら3です。2と3は組み合わせて使えます。
方法1 Slackの @Claudeから Claude Code に頼む
Slackのチャンネルで@Claudeにコードの仕事を頼むと、Claudeが内容を読み取り、クラウドのセッション(ブラウザ版のClaude Codeと同じ仕組み)で作業を始めます。手元のPCは使いません。ブラウザ版のClaude Codeそのものの使い方は、次の記事で説明しています。
プランで 使う 版が違う
いまは、同じSlackのClaudeアプリに2つの版があります。
| 項目 | Claude Code in | Claude Tag |
|---|---|---|
| 項目使える | Claude Code in Slack(以前の版)Proと | Claude Tag(新しい版)Teamと |
| 項目誰と | Claude Code in Slack(以前の版)頼んだ | Claude Tag(新しい版)組織に |
| 項目設定する人 | Claude Code in Slack(以前の版)一人ひとりが | Claude Tag(新しい版)組織の |
| 項目使用量 | Claude Code in Slack(以前の版)頼んだ | Claude Tag(新しい版)組織の |
| 項目プルリクエストの作者 | Claude Code in Slack(以前の版)頼んだ人 | Claude Tag(新しい版)Claude GitHub App |
| 項目公式の状態 | Claude Code in Slack(以前の版)以前の版 | Claude Tag(新しい版)公開ベータ |
公式の移行の説明によると、2026年10月5日から、Claudeの組織とつないだSlackワークスペースのチャンネルでは、以前の版は答えなくなりました。組織とつないでいないワークスペースでは、ProとMaxの人は以前の版をそのまま使えます。なおSlackのヘルプには「2026 年 8 月 3 日より、Slack の現行の Claude アプリは Claude Tag に切り替わります」と書かれていて、日付がAnthropicの説明と違います。また、AnthropicのSlack連携の頁は以前の版について「TeamとEnterpriseでClaude Codeを使える人もコードの仕事を回せる」と書いていますが、Claude Code in Slackの頁では、以前の版がチャンネルで答えるのはProとMaxのアカウントだけです。TeamとEnterpriseの組織は、Claude Tagの設定から始めるのが確実です。
Proと Maxで 使う手順
Claude Code in Slackの頁に書かれている前提は次の通りです。
| 前提 | 内容 |
|---|---|
| 前提Claudeの | 内容Proか |
| 前提Slack | 内容どの |
| 前提クラウドの | 内容自分の |
| 前提GitHub | 内容claude.ai/codeで |
| 前提Slackの | 内容Claudeアプリから |
手順は5つです。
- Slackのワークスペース管理者がClaudeアプリを入れる。 Slack Marketplaceで「Slack に追加」を選びます。管理者でない人には、導入のリクエストを送る画面が出ます
- 自分のClaudeアカウントをつなぐ。 SlackのAppsからClaudeを開き、ホームのタブで「Connect」を選んで、ブラウザで認証します
- クラウドのセッションを用意する。 同じアカウントでclaude.ai/codeに入り、GitHubをつないでリポジトリを認証します。一度入っておかないと「Claude Code is not enabled for your account」と出ます
- ルーティングのモードを選ぶ。 Claudeアプリのホームで、すべての@Claudeをコードの仕事にする「Code only」か、内容ごとにコードとチャットを振り分ける「Code + Chat」を選びます
- 使うチャンネルにClaudeを招く。 アプリを入れただけでは、どのチャンネルにも入っていません。チャンネルで
/invite @Claudeと打ちます
「Code + Chat」では、Claudeがメッセージを読んでコードの仕事かどうかを決めます。チャットとして答えたけれど本当はコードの仕事だった、というときは「Retry as Code」ボタンでやり直せます。はっきりコードの仕事として頼むこともできます。使えるのは公開と非公開のチャンネルで、DMでは使えません。
頼んだ あとの 流れと、 返ってくるもの
- チャンネルかスレッドで
@Claudeにコードの仕事を頼む - Claudeがスレッドの全メッセージ(チャンネルに直接書いたときは最近のメッセージ)を読み、リポジトリを選ぶ
- claude.ai/codeに新しいセッションができ、進み具合がスレッドに投稿される
- 終わると、要約とボタン付きで頼んだ人に@メンションが届く
- 「View Session」で作業の記録を全部見る、「Create PR」でプルリクエストを作る
リポジトリを取り違えたときは「Change Repo」で選び直せます。依頼文にリポジトリの名前を書くと、選び間違いが減ります。公式の説明にある制限は、リポジトリがGitHubだけであること、1つのセッションで作れるプルリクエストは1つであることです。
依頼は、ファイル名やエラーの文面を入れ、何をもって終わりとするか(テストを書くか、プルリクエストまで作るか)を書くと、うまく進みます。ファイルを渡したいときや、やり取りしながら長い作業を進めたいときは、Slackよりブラウザ版のほうが向くと公式は書いています。
Teamと Enterpriseは Claude Tag
Claude Tagは、Slackのチャンネルに組織で1つのClaudeを置く仕組みです。誰かのアカウントとしてではなく、管理者が用意した専用のアカウントで動き、チャンネルごとに触れてよいもの(GitHubのリポジトリ、チケット管理、データベースなど)を管理者が決めます。
設定の手順で必要とされているのは、TeamかEnterpriseのプラン、組織のOwnerの役割、Slackのワークスペース管理者、組織でルーティンを有効にしてあること、Teamプランでは使用量のクレジットです。ZDR(データを残さない契約)、CMEK、Claude CodeとCoworkのローカルモード向けのHIPAAの構成がある組織では使えません。Ownerが@Claude connectでSlackとつなぎ、月の上限額を決めてから公開します。コードの仕事には、Claude GitHub Appにリポジトリを渡しておく必要があります。以前の版で一人ひとりがつないでいたGitHubは引き継がれません。
Claude Codeを使っている人が知っておきたい違いは、公式の対応表にまとまっています。
- リポジトリの
CLAUDE.md、.claude/rules/、.claude/skills/は読み込まれる - リポジトリの
.claude/settings.jsonにあるフックは動かない。.mcp.jsonのMCPサーバーも読み込まれない - 手元の
~/.claudeや個人の設定は届かない。外のサービスには、管理者がチャンネルに設定したつなぎ先だけで触れる - 権限の確認はオートモードで、Claudeの判定役が1つずつ確かめる
- 1つのスレッドが1つのセッションになり、スレッドに返信すると作業の向きを変えられる
方法2 Claude Codeから Slackを 読む・ 書く (MCP)
手元のClaude CodeにSlackの過去のやり取りを調べさせたり、結果をSlackに投稿させたりするには、MCPサーバーを使います。使うのは、Slackが自分で出しているSlack MCPサーバーです。メッセージとファイルの検索、チャンネルやスレッドの読み込み、メッセージの送信と予約、キャンバスやリストの操作ができます。Slackの説明では、Claude.aiとClaude Codeが、このサーバーを使える相手として挙がっています。
MCPのしくみそのものは、次の記事で説明しています。
関連記事つなぎ方
Slackの手順では、Slackのプラグインを入れます。
- Slackのワークスペース管理者に、MCPでの連携を承認してもらう
- Claude Codeで
/plugin install slackを打つ(ターミナルからならclaude plugin install slack) - プラグインが読み込まれるとMCPサーバーが設定されるので、ブラウザでSlackにログインして許可する
このプラグインは、Anthropicの公式マーケットプレースに、Slack社のリポジトリ(slackapi/slack-mcp-plugin)として載っています。プラグインが使う設定は次の形で、URLはhttps://mcp.slack.com/mcpです。
{
"mcpServers": {
"slack": {
"type": "http",
"url": "https://mcp.slack.com/mcp",
"oauth": {
"clientId": "1601185624273.8899143856786",
"callbackPort": 3118
}
}
}
}つないだら、たとえば次のように頼みます。
#product-planning で先週決まった発売日の話を探して、決まったことと残っている論点を3行で教えてこのブランチで直した内容を5行にまとめて、#dev-review に投稿する文面を下書きして。投稿はまだしないで権限は 狭くする
Slack MCPサーバーは、ログインした本人の権限で動きます。投稿もリアクションも本人の名前で出るので、読むだけで足りるなら、送信の権限を渡さないのが安全です。Claude Codeでは、MCPの公式説明にあるoauth.scopesで、許可を求める範囲を決められます。権限の名前は、Slackの道具ごとの表に従います。公開チャンネルの検索と読み込みだけに絞るなら、次の形です。
{
"mcpServers": {
"slack": {
"type": "http",
"url": "https://mcp.slack.com/mcp",
"oauth": {
"scopes": "search:read.public channels:read channels:history"
}
}
}
}Slackの表では、メッセージの検索がsearch:read.publicなど、チャンネルとスレッドの読み込みがchannels:historyなど、投稿がchat:writeです。非公開チャンネルも読ませるならsearch:read.privateとgroups:history、投稿もさせるならchat:writeを足します。なお、Claude Codeの公式説明の例はchannels:read chat:write search:readで、Slackの表の名前とは一部違います。範囲を狭くしすぎて道具が使えないときは、足りない権限の名前がエラーに出ます。足してから/mcpでログインし直します。
claude.aiの Slackコネクタを 使う場合
TeamとEnterpriseでは、claude.aiのSlackコネクタをOwnerが有効にし、各自がつなぐと、Claudeがチャンネル、DM、ファイルを検索できます(先にSlackのClaudeアプリを入れておく必要があります)。claude.aiでつないだコネクタは、ターミナルなどのClaude Codeにも届きます。会社でSlackを読ませたくないときは、管理の設定のdeniedMcpServersに"claude.ai Slack"を入れると止められます。
なお、Claude Codeの「チャンネル」機能(動いている手元の会話にチャットから話しかける機能)は、研究段階の提供で、入っているのはTelegram、Discord、iMessageです。Slackはありません。
方法3 終わったら ・ 止まったら Slackに 通知 (フック)
手元で長い作業を任せている間、Claude Codeが許可を待って止まっていたら気づきたい、というときはフックからSlackに送ります。送り先には、SlackのIncoming Webhookを使います。
1. Incoming Webhookの URLを作る
Slackの手順は次の通りです。
- Slackアプリを作る(試しの投稿が続くので、練習用のチャンネルを用意すると楽です)
- アプリの設定で「Incoming Webhooks」を開き、「Activate Incoming Webhooks」をオンにする
- 「Add New Webhook to Workspace」を選び、投稿先のチャンネルを選んで許可する
できたURLは、1つのチャンネルに投稿するための鍵です。Slackは、このURLを公開のリポジトリなどに置かないよう注意していて、漏れたものを探して無効にしています。会社のSlackでアプリを作れないときは、管理者に頼みます。
2. URLは 環境変数に 入れる
URLはリポジトリにもsettings.jsonにも書かず、環境変数に入れます。フックはClaude Codeを起動したシェルの環境を引き継ぐので、たとえばシェルの設定ファイルに書いておきます。
# ~/.zshrc など、リポジトリの外に置く
export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..."3. 送る スクリプトと フックの設定
Notificationフックには、通知の文面がmessageとして届きます。jqで送る文面を組み立てると、引用符が入っていても壊れません。
#!/bin/bash
# ~/.claude/hooks/notify-slack.sh
[ -z "$SLACK_WEBHOOK_URL" ] && exit 0
input=$(cat)
msg=$(echo "$input" | jq -r '.message // "Claude Code からの通知"')
dir=$(echo "$input" | jq -r '.cwd // ""')
jq -n --arg text "Claude Code (${dir##*/}) ${msg}" '{text: $text}' |
curl -s -X POST -H 'Content-Type: application/json' -d @- "$SLACK_WEBHOOK_URL" >/dev/null
exit 0chmod +x ~/.claude/hooks/notify-slack.shで動かせるようにしてから、~/.claude/settings.jsonに足します。
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt|idle_prompt",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/notify-slack.sh",
"async": true
}
]
}
]
}
}permission_promptは許可の確認を約6秒待ったとき、idle_promptは返答が終わってから約60秒入力がないときに動きます。ターミナルの前にいる間は鳴らず、離れているときだけ届くので、通知が多すぎません。裏でサブエージェントなどが動いている間は、idle_promptは届きません。"async": trueにすると、送る間もClaude Codeは止まりません。設定したら/hooksでNotificationに出ているか確かめます。
返答が終わるたびに必ず送りたいならStopフックも使えますが、公式の説明ではStopは仕事が終わったときだけでなく返答のたびに動きます。チャンネルが通知で埋まりやすいので、まずは上の2つで始めるのがおすすめです。フックのほかの使い方は、次の記事にまとめています。
会社で 使う 前に 確かめること
Slackとつなぐと、会話やコードがSlackとAnthropicの間を行き来します。会社で使うなら、始める前に次のことを決めておきます。
- 会社の許可。 SlackのClaudeアプリ、MCPでの連携、Incoming Webhookのアプリは、どれもSlack管理者の承認が要ります。Claudeの側でも、どのプランで誰が使うかを情報システムの担当と決めます
- 誰が仕事を頼めるか。 Claude Tagは、初期の状態ではつないだワークスペースの誰でもチャンネルで
@Claudeを呼べます。Ownerは、組織のメンバーだけ(Teamプラン)や、決めた役割の人だけ(Enterpriseプラン)に絞れます。以前の版では、Claudeを招いたチャンネルとそこに入れる人で絞ります - どの会話を読ませるか。 公式は、Claudeはスレッドの中のほかのメッセージの指示にも従うことがあるので、信頼できる会話の中だけで使うよう注意しています。社外の人がいるチャンネルや、外から転載した文面が多いチャンネルは避けます
- 出ていくデータ。 機密の顧客情報や鍵がスレッドにあると、それも材料として読まれます。Claude Tagは会話の記録とチャンネルのメモを保存します。MCPで読んだSlackの内容は、Claude Codeの会話に入ります
- 使用量とお金。 以前の版は頼んだ人のプランの枠を使います。Claude Tagは組織の残高から払われるので、Ownerが月の上限額を決めます
- マージの前の確認。 Claude Tagのプルリクエストは Claude GitHub App が作者なので、頼んだ本人が1人で承認してマージできてしまいます。公式は、GitHubのブランチ保護で承認を2人にすることを勧めています。以前の版でも、作られたプルリクエストは人が読んで、テストが通ってからマージします
- 鍵の置き場所。 WebhookのURLやトークンはリポジトリに入れず、環境変数や管理者の設定に置きます
プロンプトインジェクションの考え方と防ぎ方は、次の記事で説明しています。
関連記事よく ある質問
Claude Codeの Slack連携は 無料で 使えますか?
Slackから@Claudeでコードの仕事を頼むには、Claudeの有料プランが要ります。ProとMaxは以前の版、TeamとEnterpriseはClaude Tagです。Claude Tagにはメンバーごとの料金はなく、チャンネルでの仕事は組織の残高から使った分だけ払います。フックでの通知は、SlackのIncoming Webhookを使うので、Claude側の追加の料金はありません。
Slackの DMから Claude Codeに 頼めますか?
以前の版(Claude Code in Slack)は、公開と非公開のチャンネルだけで使え、DMでは使えません。Claude Tagでは、1対1のDMはつないだ本人のClaudeアカウントで動き、その人の席(Claude Codeを含むものなど)の使用量を使います。
GitHub以外の リポジトリでも 使えますか?
以前の版はGitHubだけです。Claude Tagには、GitHubのほかにGitLabにつなぐ手順も公式にあります。
Claude Codeから Slackに 投稿させるには どうしますか?
Slack公式のMCPサーバーをつなぎます。Claude Codeで/plugin install slackを打ち、ブラウザでSlackにログインして許可します。投稿はログインした本人の名前で出るので、最初は下書きまでにして、送る前に自分で読むと安全です。
作業が 終わったら Slackに 通知させるには どうしますか?
SlackでIncoming WebhookのURLを作って環境変数に入れ、Claude CodeのNotificationフックからcurlで送ります。permission_promptとidle_promptに絞ると、確認待ちと入力待ちのときだけ届きます。
関連する記事
Claude Codeを仕事全体でどう使うかは、次の記事にまとめています。
関連記事

