⚒️

初心者でも簡単!Slack MCPサーバーでチャットボットを劇的に進化させる方法

に公開

はじめに

最近、仕事でSlackを使っていて「あー、もっと便利にならないかなぁ」って思ったことありませんか?私も同じでした。チャンネルが増えすぎて情報を見失ったり、同じ質問に何度も答えたり…そんな日々にうんざりしていたんです。

そんな時、偶然見つけたのが「Slack MCPサーバー」でした。最初は「またややこしい設定が必要なツールか…」と身構えていたんですが、実際に試してみたら驚くほど簡単だったんです!たった5分でClaudeなどのAIアシスタントをSlackに連携させて、チームの作業効率を劇的に向上させることができました。

TypeScriptで構築されたこのツールは、AIがSlack上でメッセージを送信したり、ユーザー情報を取得したり、リアルタイムでワークスペースと対話したりできるようにしてくれます。今回は、そんな「Slack MCPサーバー」の魅力と導入方法を、初心者の視点からご紹介します!

そもそもMCPって何?エンジニアじゃなくても分かる簡単解説

「MCPって何?」って思いますよね。私も最初は「また難しい専門用語か…」とため息をついていました。でも、実はすごくシンプルな概念なんです。

MCPは「Model Context Protocol(モデル・コンテキスト・プロトコル)」の略で、簡単に言うとAIと外部サービスを繋ぐための共通言語みたいなものです。これがあることで、AIが「ねえ、このチャンネルの最近の会話を教えて」とか「このメッセージに絵文字リアクションつけておいて」といった指示をSlackに出せるようになるんです。

例えるなら、日本語しか話せない人と英語しか話せない人の間に立つ通訳者のような役割ですね。AIの言葉(リクエスト)をSlackの言葉(API)に翻訳して、その逆も行います。これによって、AIがSlackの中で自然に振る舞えるようになるんです。

https://docs.anthropic.com/ja/docs/agents-and-tools/mcp

「これ、本当に使える?」実際の機能を見てみよう

正直、最初は「本当にそんなに便利なの?」と半信半疑でした。でも、実際に使ってみると、その機能の豊富さに驚きましたよ!

チャンネル管理がラクになる機能

  • チャンネルリスト取得: 「どのチャンネルが一番活発?」「このトピックに関連するチャンネルは?」といった質問にAIが答えられるようになります。私のチームでは、新メンバーが入ってきたときに「どのチャンネルに参加すべき?」という質問にAIが即座に回答してくれて、オンボーディングがスムーズになりました。

  • チャンネル履歴アクセス: AIが過去の会話を理解できるので、「先週の会議で決まったことをまとめて」といった依頼も可能に。議事録作成の手間が激減しましたよ!

メッセージング機能が超便利

  • メッセージ投稿: AIがチャンネルに直接メッセージを送れます。例えば「毎朝9時にタスクリマインダーを送って」と設定すれば、自動的にリマインドしてくれます。

  • スレッド返信: 特定の会話スレッドにAIが参加できるので、議論が脱線せずに済みます。技術的な質問があったとき、そのスレッドでAIが回答してくれるので、チャンネルが質問で埋め尽くされることがなくなりました。

  • スケジュールメッセージ: 「明日の朝一に全員に会議のリマインドを送って」といった指示も可能です。深夜に思いついたことも、翌朝の適切なタイミングで通知できるのは本当に便利ですね。

ユーザー体験が向上する機能

  • 絵文字リアクション: AIがメッセージに絵文字でリアクションできます。例えば「良いアイデアには👍をつけて」と指示すれば、ポジティブな提案を自動的に評価してくれます。チーム内のモチベーション向上にも一役買っていますよ。

  • ユーザープロフィール取得: AIがユーザーのタイムゾーンや役職を理解できるので、「東京オフィスのデザイナー全員にメッセージを送って」といった複雑な指示も可能になります。

  • ワークスペース分析: チーム全体の構成を把握できるので、「最近活動していないメンバーは誰?」といった分析も可能です。マネージャーの方には特に重宝される機能だと思います。

エンジニアも納得の技術スタック

私はバリバリのエンジニアというわけではないですが、技術に詳しい同僚に聞いたところ、Slack MCPサーバーの技術的な作りもかなり評価が高いようです。

  • TypeScriptベース: 型安全性が高く、バグが少ないコードベースになっているそうです。実際、導入後にクラッシュしたことは一度もありません。

  • 非同期処理: 複数のリクエストを同時に処理できるので、チームが大きくなっても遅延を感じることがありません。うちの100人規模のチームでも、サクサク動作しています。

  • レート制限対応: Slack APIの制限に引っかからないよう、賢く調整してくれます。以前使っていた別のボットは制限にすぐ引っかかって使えなくなることがありましたが、これは安定しています。

  • セキュリティ対策: トークン管理がしっかりしているので、セキュリティ意識の高い企業でも安心して使えます。私たちの情報セキュリティ部門のレビューもあっさり通過しました。

「難しそう…」と思ったら大間違い!導入手順を解説

最初は「これ、導入するの大変そう…」と思いましたが、実際はめちゃくちゃ簡単でした!基本的な手順を紹介します。

まずはSlackアプリを作成しよう

  1. Slackアプリの作成:

  2. 権限の設定:

    • サイドバーから「OAuth & Permissions」へ
    • 以下のScopesを追加します:
      • channels:history (チャンネルの会話を読める)
      • channels:read (チャンネル情報を取得)
      • chat:write (メッセージを送信)
      • reactions:write (絵文字リアクションを追加)
      • users:read (ユーザー情報を取得)
      • users:read.email (メールアドレスを取得・必要な場合のみ)
  3. ワークスペースへのインストール:

    • 「Install to Workspace」ボタンをクリック
    • 権限を確認して「許可する」
    • 表示された「Bot User OAuth Token」(xoxb-で始まる)をメモ
      ワークスペースへのインストール
  4. チームIDの取得:

    • Slackにブラウザでログイン
    • URLに表示される「T」で始まるIDをメモ(例: T01234567)

なかなか見つけるのに苦戦したのですが、Web版(ブラウザ版)のslackのURLの一部がチームIDに当たるもののようです。
Web版slackで該当ワークスペースにアクセスして、URLの以下部分をご確認ください。
https://app.slack.com/client/T08L5MQD9QE/C08LEMC0H42
このURLの、「T08L5MQD9QE」部分がチームIDです。こちらも後ほど使いますので、どこかに控えておきましょう。
※IDはランダムに置き換えております

ここまでで、Slack側の準備は完了です!次は、MCPサーバーをセットアップしていきます。

デプロイ方法はお好みで選べる

私のようなフロントエンド寄りの開発者には、NPXを使った方法が一番簡単でした。でも、環境に合わせて選べるのがいいですね。

NPXデプロイ(超お手軽)

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-slack"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

この設定ファイルを作成するだけで、NPMが自動的に必要なパッケージをダウンロードして実行してくれます。めっちゃ楽ちんです!

Dockerコンテナ派の方へ

インフラチームの同僚は、Dockerを使った方法を好んでいました。環境の分離ができて、本番環境でも安定して動作するそうです。

{
  "mcpServers": {
    "slack": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SLACK_BOT_TOKEN",
        "-e",
        "SLACK_TEAM_ID",
        "mcp/slack"
      ],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

Dockerイメージのビルドは以下のコマンドで:

docker build -t mcp/slack -f src/slack/Dockerfile .

ソースから直接実行したい人向け

バックエンド担当の先輩は、ソースコードを直接いじりたいタイプなので、この方法を選んでいました。カスタマイズしたい場合はこちらがおすすめです。

# リポジトリをクローン
git clone https://github.com/modelcontextprotocol/server-slack.git

# 依存関係をインストール
npm install

# TypeScriptをビルド
npm run build

# サーバーを起動
SLACK_BOT_TOKEN=xoxb-your-token SLACK_TEAM_ID=T01234567 node dist/index.js

AIアシスタントと連携させる

Claudeデスクトップとの連携

Claudeデスクトップを使っている方は、設定ファイルに以下を追加するだけでOKです:

{
  "mcpServers": {
    "slack": {
      "command": "node",
      "args": ["/path/to/project/dist/index.js"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

Cursorとの連携

私はCursorエディタを愛用しているので、この連携が特に気に入っています。コーディング中にSlackの情報を直接参照できるのが超便利です!

グローバル設定:

  1. Cursor設定 → MCPへ
  2. 「+ Add new global MCP server」をクリック
  3. ~/.cursor/mcp.json に設定を追加

Cursor-slack-MCP設定

プロジェクト単位の設定:

プロジェクトフォルダ内に .cursor/mcp.json を作成して設定を追加するだけです。

slack-MCP設定

「実際どう使うの?」具体的なツール紹介

Slack MCPサーバーは8つの主要ツールを提供しています。私が特に重宝しているのは以下の機能です:

slack_post_message

指定したチャンネルにメッセージを送信できます。毎朝のスタンドアップミーティングの前に自動リマインダーを設定したり、重要なアナウンスを全チャンネルに一斉送信したりできます。

// 使用例
slack_post_message({
  channel_id: "C01234567",
  text: "今日のスタンドアップミーティングは10分後に始まります!"
});

slack_get_channel_history

チャンネルの最近のメッセージを取得できます。これを使って、AIに「先週の議論をまとめて」と頼むと、自動的に要約してくれるんです。議事録作成の手間が激減しました!

// 使用例
slack_get_channel_history({
  channel_id: "C01234567",
  limit: 50  // 最新50件のメッセージを取得
});

slack_add_reaction

メッセージに絵文字リアクションを追加できます。例えば「質問には❓、解決したら✅をつける」というルールを自動化できます。

// 使用例
slack_add_reaction({
  channel_id: "C01234567",
  timestamp: "1234567890.123456",
  reaction: "thumbsup"  // 👍 リアクションを追加
});

トラブルシューティング:よくある問題と解決法

実際に導入してみると、いくつか躓くポイントがありました。でも、解決方法も簡単だったので共有します!

認証エラーが出る場合

  • 症状: 「未認証」というエラーが表示される
  • 解決策: ボットトークンが正しくコピーされているか確認。特に、コピペの際に余分な空白が入っていないか注意しましょう。
  • 私の失敗談: 最初、トークンをコピーする際に末尾に改行が入ってしまい、30分も原因究明に費やしてしまいました…😅

権限エラーが出る場合

  • 症状: 「権限が拒否されました」というエラー
  • 解決策: OAuthスコープの設定を確認。必要な権限が全て追加されているか見直しましょう。
  • 私のアドバイス: 最初から全ての権限を追加しておくと、後から「あれ?この機能使えない…」となることを防げます。

チャンネルにメッセージが送れない

  • 症状: 特定のチャンネルでボットが機能しない
  • 解決策: そのチャンネルにボットが招待されているか確認。
  • 便利な方法: /invite @あなたのボット名 でチャンネルに招待できます。

まとめ:Slack MCPサーバーが働き方を変える理由

正直に言って、Slack MCPサーバーを導入する前と後では、チームの働き方が劇的に変わりました。情報検索の時間が減り、コミュニケーションがスムーズになり、単純作業から解放されたことで、本当に価値のある仕事に集中できるようになったんです。

特に印象的だったのは、新しいメンバーのオンボーディング時間が半分以下になったこと。「このプロジェクトについて教えて」と聞くだけで、AIが関連ドキュメントやチャンネルを即座に提示してくれるので、情報探しに時間を取られなくなりました。

将来的には、AIがもっと高度な判断を下せるようになれば、例えば「このバグの原因は何?」と聞くだけで、関連するコミットやディスカッションを分析して回答してくれるようになるかもしれません。そうなれば、開発チームの生産性はさらに向上するでしょう。

「Slack内のあの情報、すぐ取り出せないかな…」といった小さなストレスに悩まされる日々は、これで卒業です。手順がわかった今、あとは行動するだけ。5分後には、あなたのSlackがより強力な「相棒」になりますよ。

ぜひ、この機会に試してみてください。「もう一段ラクにできるかも!」という小さな期待が、あなたのワークフローを大きく変えるはずです。

Discussion