Claude Desktop (Windows版) から Slack MCP Server を使って、チャンネルにポストした内容を取得していろいろなことをしてみる #AWS

はじめに

これまでの記事では、Claude Desktop (Windows版) から GitHub の MCP サーバーを使って GitHub のリポジトリを参照し Issue を作成する方法や、Perplexity の MCP サーバーを使って記事を検索する方法を紹介しました。

今回は、Claude Desktop (Windows版) から Slack の MCP サーバーを使って、Slack のチャンネルにポストした内容を取得してメンションを送ったり、ポスト内容を整理する方法を紹介します。

参考情報

Slack MCP Server とは

Slack MCP Server は Slack API 用の MCP サーバーで、Claude や VSCode、Cline などで Slack ワークスペースとやり取りするためための MCP サーバーです。
Slack MCP Server を使うと、このようなことができます。

  • Slack チャンネル一覧の取得
  • メッセージの送信
  • 絵文字を使ったリアクション
  • スレッドへの返信
  • チャンネルの履歴取得
  • ワークスペース・ユーザーのリストと基本プロファイル情報の取得

前提条件

  • Windows 11 を使用
  • Claude Desktop 0.9.0 以降がインストールされていること(この記事では Windows 版 0.9.2 を使用)
  • Docker Desktop がインストールされていること
    • MCP サーバーを Docker で起動するために必要です
  • Slack のワークスペースがあり、Slack Bot アプリの作成権限があること

Slack App のセットアップ

Slack MCP Server のドキュメントに従って Slack App を作成します。

1. Slack App を作成

Slack App Directory にアクセスし、「Create New App」をクリック
「Create New App」をクリック

「From scratch」をクリック
「From scratch」をクリック

アプリの名前を入力し、アプリをインストールするワークスペースを選択して「Create App」をクリック
アプリをインストールするワークスペースを選択して「Create App」をクリック

2. 「OAuth & Permissions」画面で Bot Token Scopes に進み、以下の Scope を追加

  • channels:history
  • channels:read
  • chat:write
  • reactions:write
  • users:read
  • users.profile:read

「OAuth & Permissions」画面でBot Token Scopesに進み、以下のScopeを追加

3. アプリをワークスペースにインストール

Install App 画面で、「Install to Workspace」をクリックし、確認画面で許可するをクリック
「Install to Workspace」をクリックし、確認画面で許可するをクリック

xoxb-xxxx-xxxx-xxxx-xxxx のような Bot User OAuth Token が発行されます。のちほど claude_desktop_config.json に設定するため、この Token を控えておきます。
Bot User OAuth Tokenをコピーする

4. Slack URL または ID を確認する を参考に、T ではじまる Slack Team ID を取得します。

Claude Desktop のセットアップ

MCP サーバーの設定

続いて、Slack MCP Server に従って Slack MCP Server をインストールします。

  1. Claude Desktop を起動し、左上のハンバーガーメニューから「ファイル」→「設定」を選択
  2. 設定ウィンドウから「開発者」を選択
  3. 「構成を編集」をクリックしてエクスプローラーを開く
  4. claude_desktop_config.json を編集(場所: C:Users{ユーザー名}AppDataRoamingClaudeclaude_desktop_config.json

Claude Desktop の設定メニュー

Claude Desktop の開発者設定

claude_desktop_config.json に以下の設定を追加します。SLACK_BOT_TOKEN は先ほど取得した Bot User OAuth Token を指定します。SLACK_TEAM_ID は先ほど取得した Slack Team ID を指定します。SLACK_CHANNEL_IDS はオプションです。チャネル・アクセスを制限するチャネル ID をカンマ区切で指定します(例: “C01234567, C76543210″)。設定されていない場合、すべてのパブリック・チャンネルが MCP サーバーで扱う対象となります。
docker ではなく NPX を使う方法については、Slack MCP Server のドキュメントを参照してください。

claude_desktop_config.json

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

設定後、Claude Desktop を再起動します。メニューから「終了」を選択して閉じ、再度起動します。ウィンドウを閉じただけでは設定が反映されないため注意してください。Claude Desktop と併せて Docker Desktop も起動します。

Claude Desktop を終了する

動作確認

Claude Desktop を起動すると、チャット画面にハンマーのアイコンが表示され、設定した権限に応じて利用可能な MCP ツールの数が表示されます(以下のスクリーンショットの 21 の部分。インストールしている MCP サーバーによって数が変わります)。

ハンマーのアイコン

ハンマーのアイコンをクリックすると、利用可能な MCP ツールが表示されます。その中に slack_list_channelsslack_post_message などが表示されていることを確認できます。
利用可能な MCP ツール

チャンネルに Slack App を招待する

Slack MCP サーバーが Slack のチャンネルにアクセスするためには、Slack App をチャンネルに招待する必要があります。

使用例

天気予報を調べる

#general チャンネルで、「明日の福岡市の天気が気になる。晴れるかな。雨が降るのかな。」というメッセージをポストします。
「明日の福岡市の天気が気になる。晴れるかな。雨が降るのかな。」

Claude Desktop のチャット画面で、「#general チャンネルで誰かがつぶやいています。内容を読んで、それに対する答えをネットで調べて返信してあげて。」というメッセージをポストします。
すると、MCP サーバーは以下のようにチャンネルのメッセージを読み込み、Claude が複数のサイトから天気予報を調べて返信してくれました。最終的な回答では「データ出典:Toshin.com 天気情報」と示しています。どうやら、東進ハイスクールのサイトにある「全国学校のお天気」のことを示しているようです。実際にこのサイトから福岡市の天気予報を取得したのかは分かりませんが、予備校のサイトに天気情報があるというのは新しい発見でした。
MCPサーバーを使ってSlackからポスト内容を引き出し、検索した結果

What’s New Summary Notifier の通知内容を整理する

What’s New Summary Notifier とは、What’s New with AWS? に掲載されているニュースを翻訳・要約して定期的に Slack に投稿するソリューションです。以下のブログで、その詳細が紹介されています。

この What’s New Summary Notifier を Slack のフリープランの Webhook で使う方法を以下の記事で紹介しています。

Slack のチャンネルから直近 1 週間分の投稿を拾って AWS Bedrock に関する情報を整理する方法を紹介します。ここでは、#whats-new-aws-summary チャンネルにニュースが投稿されているとします。
Claude Desktop のチャット画面で、以下のようなメッセージをポストします。

#whats-new-aws-summary チャンネルから直近 1 週間分の投稿を拾って、AWS Bedrock に関する情報を整理して。以下の情報がほしい。

#欲しい情報

  • 情報源の URL
  • Bedrock を使ってなにか新しいことができるようになったのか。あるいは、活用方法か
  • 活用事例であれば、どのような業界に特化しているのか
  • リンク先 URL の内容を読んで、着目すべき点を箇条書きで 3~5 個にまとめる

すると、MCP サーバーは以下のように Slack のチャンネルのメッセージを読み込み、AWS Bedrock に関する情報を整理して返信してくれました。Slack に投稿された記事の URL の内容を読んだわけではなさそうですが、いくつかのサイトを検索して追加情報を拾ったようです。
MCPサーバーを使ってSlackからポスト内容を引き出し、サマリーを出力した結果

What’s New Summary Notifier は AWS ブログを翻訳・要約しているので、今回の例のような要点を整理するようなことは What’s New Summary Notifier 側で実装したほうが良さそうです。それ以外の、「1 週間分のニュースのなかから特定分野のものを複数拾って、それらをプロンプトに従って整理する」といったことは MCP サーバーと LLM との組み合わせと相性が良さそうです。これを応用し、Slack チャンネルで交わされた議論を整理したり、チャンネルに通知しているアラートログや運用作業の記録をもとにレポートを作成するといったこともできそうです。

まとめ

Slack MCP Server を使って、Slack チャンネルのメッセージを取得してメンションを送ったり、ポスト内容を整理する例を紹介しました。claude_desktop_config.json への設定追加と、Docker や NPX の動作環境を用意することで、ノーコードで Slack チャンネルの内容を整理することができます。

以下のような場面で Slack MCP Server が活用できそうです。

  • 大事なことが埋もれがちな Slack チャンネルの内容を整理する
  • Slack チャンネルにある投稿内容を RAG として検索する
  • チャンネルに通知しているアラートログや運用作業の記録をもとにレポートを作成する
  • チャンネルに投稿された内容をもとに外部情報を検索し、チャンネルのメンバーにメンションを送る



フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link