すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

お役立ち情報

更新日:

SlackのMCPを使い、AIと連携させよう

ぴっかちゃん
ぴっかちゃん

SlackのMPCサーバーと使うとSlack内の情報に生成AIがアクセスすることができるよ!

この記事ではSlackのMCPサーバーを使い、生成AIがSlackのチャンネルに投稿したり、投稿した内容を読み取れるようにする方法を詳しく解説します。

MCPとは

MCPとは「Model Context Protocol」の略で、生成AIが他のサービスと連携するための共通のルールです。
詳しくはこちらの記事を参照してください。

SlackのMCPサーバーとは

SlackのMCPサーバーはSlackとClaudeなどの生成AIを簡単に連携させるためのMCPサーバーです。これを使うと生成AIから以下のようなことをすることができます。

  • チャンネルにメッセージを投稿する
  • チャンネルに投稿されたメッセージを確認する
  • メッセージにリアクションをする
  • 投稿されたメッセージの検索

MCPサーバーのインストール

まずは以下のコマンドでSlackのMCPサーバーをインストールしましょう。

ターミナル
1
npm install -g @modelcontextprotocol/server-slack

Slack側の設定

次にSlackの設定を行います。Slackアカウントを持っていない方はこちらのページから作成してください。

アカウントをお持ちの方はSlack APIページにアクセスします。
そして「Create an App」をクリックします。

Create an app

次に「From scratch」をクリックします。

from scratch

次に表示される画面で、「App Name」には任意の名前を、「pick a workspace to develop your app in」は連携させたいワークスペースを選びましょう。その後、「Create App」をクリックします。

名前の設定

すると以下の画面が表示されるので、左メニューの「OAuth & Permissions」をクリックします。

OAuth & Permissions

次に、「Scopes」の「Bot Token Scopes」で以下の必要な権限を追加します。追加をするには「Add OAuth Scope」をクリックします。

scope 役割
channels:history パブリックチャンネルのメッセージやその他のコンテンツを閲覧する
channels:read 基本的なチャンネル情報を表示する
chat:write アプリとしてメッセージを送信
reactions:write メッセージに絵文字リアクションを追加する
users.profile:read ユーザーとその基本情報を表示する
users:read ユーザーの詳細なプロフィールを表示する

scopeの設定

左メニューの「Install App」をクリックし、遷移したページの「Install to ワークスペース名」をクリックします。

Install

すると「Bot User OAuth Token」が表示されるので、コピーして保存しておきます。

トークンの表示

これでSlack側の準備は完了です。

Claude Desktopの設定

次にClaude Desktop側の設定を行います。
こちらの記事を参考に、前提準備を行います。
Claude Desktopをインストールし、設定ファイル(claude_desktop_config.json)が開けていれば準備完了です。

設定ファイルを記述しよう

claude_desktop_config.jsonに、以下のコードを記述します。ハイライトされている行のみ、自分のものに変更します。

claude_desktop_config.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "mcpServers": {
    "slack": {
"command": "which nodeで表示されるパス",
"args": [ "--experimental-modules",
"npm root -gで表示されるパス/@modelcontextprotocol/server-slack/dist/index.js",
"--token",
"取得したBot User OAuth Token"
], "env": {
"SLACK_BOT_TOKEN": "取得したBot User OAuth Token",
"SLACK_TEAM_ID": "ワークスペースのID"
} } } }

commandの「which nodeで表示されるパス」はターミナルで以下のコマンドを実行し、表示されたパスを入れてください。

ターミナル
1
2
3
4
which node

# 例
/Users/ユーザー名/.nodebrew/current/bin/node

argsの「npm root -gで表示されるパス」の部分は以下のコマンドを実行し、表示されたパスを入れてください。

ターミナル
1
2
3
4
npm root -g

# 例
/Users/ユーザー名/.nodebrew/node/v20.18.0/lib/node_modules

上の例だと以下のようなコードになります。

claude_desktop_config.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "mcpServers": {
    "slack": {
"command": "/Users/ユーザー名/.nodebrew/current/bin/node",
"args": [ "--experimental-modules",
"/Users/ユーザー名/.nodebrew/node/v20.18.0/lib/node_modules/@modelcontextprotocol/server-slack/dist/index.js",
"--token", "取得したBot User OAuth Token" ], "env": { "SLACK_BOT_TOKEN": "取得したBot User OAuth Token", "SLACK_TEAM_ID": "ワークスペースのID" } } } }

「取得したBot User OAuth Token」には先ほどSlackの設定で取得した「Bot User OAuth Token」を記述してください。「SLACK_TEAM_ID」にはワークスペースのIDを記述します。

ワークスペースのIDを確認するため、Slack ログイン画面にアクセスします。ワークスペースにサインインしていれば画面下の「開く」をクリックします。

ログイン画面

するとSlackのアプリで開くかどうか確認のモーダルが表示されますが、「キャンセル」をクリックします。

キャンセル

「ブラウザでSlackを使用する」をクリックし、ブラウザでワークスペースを表示せましょう。

ブラウザで表示

ブラウザのURLを見ると、client//の間にあるワークスペースのIDが確認できるので、このIDを「SLACK_TEAM_ID」に記述します。

ワークスペースID

最終的には以下のようなコードになります。ユーザー名は自分のユーザー名を記述してください。

claude_desktop_config.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "mcpServers": {
    "slack": {
      "command": "/Users/ユーザー名/.nodebrew/current/bin/node",
      "args": [
        "--experimental-modules",
        "/Users/ユーザー名/.nodebrew/node/v20.18.0/lib/node_modules/@modelcontextprotocol/server-slack/dist/index.js",
        "--token",
        "xoxb-744960XXXXXXXX-1234521810675-XXXXXXuY5CnaSTjwHCgbxEJB"
      ],
      "env": {
      "SLACK_BOT_TOKEN": "xoxb-744960XXXXXXXX-1234521810675-XXXXXXuY5CnaSTjwHCgbxEJB",
      "SLACK_TEAM_ID": "T07D7XXXXNRK"
      }
    }
  }
}

これでClaude Desktopの設定は完了です。一度アプリを終了させ、再度起動してください。
起動後、「+」ボタン横のボタンをクリックし、Slackが表示されていれば連携完了です。

slackが表示

Slackに関して質問をするとClaudeがSlackに接続し、回答をしてくれます。その際、Slackにアクセスしても良いかを確認されるので、どちらかを「許可」しましょう。

許可

特定のチャンネルに関して質問をすると以下のようにチャンネルに参加していないため答えられないという回答が返ってきます。

回答

招待したいチャンネルのチャット欄に「/invite @」と入力し、以下のようにslack_mcpのアプリを選択して招待しましょう。

slack_mcp

すると招待されたチャンネルの内容を確認することができます。

チャンネルの確認

確認だけでなく、投稿をすることもできます。

投稿

以下のように「あなた宛にメンションがついた投稿に返答してください」と入力すると、すべてのチャンネルを確認し、メンションがついた投稿内容を把握して返答をしてもらうこともできます。

メンション付き

このように投稿をしてくれました。

投稿

他にもチャンネルに招待されているユーザーの確認や、日時による検索などもできます。
とても便利な機能なので、ぜひ連携してみましょう。

この記事のまとめ

  • MCPサーバーは生成AIとSlackを簡単に連携する仕組みです。
  • チャンネルにAIを招待することが出来ます。
  • 招待されたチャンネル内で生成AIは投稿の内容を確認したり、投稿をすることが出来ます。