更新日:
【お役立ち情報】 3.MCPサーバー導入とClaude Desktopの設定(MCPによるSlack連携実装)
Slack 用の MCP サーバーを介して、Claude Desktop からSlackのチャンネルを操作できるようにします。
いよいよ Claude Desktop と Slack を実際に連携するための最終設定を行います。
この手順が完了すれば、Claude Desktop から Slack のチャンネルを読み取ったり、メッセージを投稿したりといった操作が可能になります。
それでは、MCP サーバーの導入を進めていきましょう。
Slack の MCP サーバーとは
Slack の MCP サーバーは、Slack と Claude Desktop などの AI アプリを連携させるための仕組みです。MCP サーバーを介することで、AI アプリが Slack の API を安全に操作できるようになります。
Slack の MCP サーバーを利用すると、AI アプリから次のような操作が可能になります。
- チャンネルにメッセージを投稿する
- チャンネルに投稿されたメッセージを確認する
- メッセージにリアクションを付ける
- 投稿されたメッセージを検索する
1.Slack用MCP サーバーのインストール
npm を使って Slack 用の MCP サーバーをインストールします。
スタートメニューで「Windows PowerShell」を検索し、「管理者として実行する」をクリックしてください。

1
npm install -g @modelcontextprotocol/server-slack
2.Slack連携のためのClaude Desktopの設定
Claude Desktop の設定用 JSON ファイルに、これまで取得した トークンや Slack のワークスペース ID などの情報を入力していきます。
Slack App で発行したトークンは、MCP が Slack にアクセスするための「鍵」にあたります。この情報を Claude Desktop 側に正しく設定することで、はじめて Claude Desktop から Slack を操作できるようになります。




Claude の「設定を編集」を押すと、「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": "Node.jsの実行ファイルのパス(手動で入力)",
"args": [
"--experimental-modules",
"npmのグローバル保存パス(手動で入力)\\@modelcontextprotocol\\server-slack\\dist\\index.js",
"--token",
"Bot User OAuth Token(手動で入力)"
],
"env": {
"SLACK_BOT_TOKEN": "Bot User OAuth Token(手動で入力)",
"SLACK_TEAM_ID": "SlackワークスペースID(手動で入力)"
}
}
}
}
ハイライトされている箇所は人それぞれ異なるため、ご自身の環境に合わせて手動で情報を入力していきます。

先ほど Slack App を作成した際に、以下の該当ページで取得したトークンを使用します。

上記のトークンをコピーし、「claude_desktop_config.json」の以下の箇所に貼り付けましょう。値は必ず"(ダブルクォーテーション)で囲いましょう。

SLACK_TEAM_IDの値には、SlackのワークスペースIDを入力します。

Slack のワークスペース ID は、Web 上で開いている Slack のブラウザの URL から確認できます。以下のように、client/ と / の間に表示されている文字列がワークスペース ID なので、この値を SLACK_TEAM_IDの値 に入力しましょう。

次にcommandの値を入力していきます。

commandの値は、管理者の PowerShell で次のコマンドを実行することでわかります。
管理者の PowerShell で次のコマンドを実行してください。
1
Get-Command node
実行すると、以下のように右側にSorceが表示されるので、コピーしてcommandの値に貼り付けましょう。なお、表示される値は画像のものと一致するとは限りません。必ずコマンドを実行し、ご自身の環境で表示された値を貼り付けてください。

注意事項
「claude_desktop_config.json」に貼り付けた際、バックスラッシュ(\)が1つだけになっている場合があります。その場合は、バックスラッシュを2つ(\\)に修正してください。1つのままだと正常に動作しません。
この後の設定も同様です。これは今回の Slack の設定に限らず、他の外部ツールと連携する場合でも共通の注意点です。

最後に、npmのグローバル保存パスの箇所を入力していきます。

管理者の PowerShell で次のコマンドを実行することでわかります。
管理者の PowerShell で次のコマンドを実行してください。
1
npm root -g
表示された結果をコピーし、「claude_desktop_config.json」の該当箇所に貼り付けましょう。貼り付けた際に、バックスラッシュ(\)が1つになっている箇所はすべて2つ(\\)に修正してください。
最終的には、「claude_desktop_config.json」の内容は以下のようになります。
設定ファイル内の各値は、Slack APIで取得したトークンやコマンドを使ってご自身の環境で調べたものを入力しています。以下はあくまで一例であり、表示されている内容とすべて同じである必要はありません。

使用しているエディタで自動保存機能を使っていない方は、必ず「保存」の操作をしておきましょう。
Claude Desktop 画面左上の 三本線(≡)メニュー をクリックし、表示されたメニューから [ファイル] > [終了] を選択します。
アプリが閉じたら、もう一度 Claude Desktop を起動してください。

※ Claude Desktop を起動したときに、以下の画面が表示された場合
以下の画面が表示された場合は、「claude_desktop_config.json」の設定が正しくない可能性があります。設定内容を確認しましょう。

起動後、入力欄の「+」ボタンをクリックし、表示されたメニューから [コネクタ] を選択し、Slack があることを確認し、オンにしましょう。

3.Slack 側の最終設定
Claude Desktop で Slack を有効化しただけでは、Slack のチャンネルを操作できる状態にはなりません。Slack では、連携に使用するアプリ(Bot)は 招待されたチャンネルでのみメッセージの読み取りや投稿などが可能です。
そのため、先ほど作成した Slack App(slack_mcp) を、連携したいチャンネルに招待する必要があります。
Slack の#allチャンネルを開き、メッセージ入力欄に/invite @slack_mcpを入力して「Enter」を押して実行します。


実行後、チャンネル内に以下の内容が表示されていれば、アプリをチャンネルに追加できています。

これで、Claude Desktop から MCP を経由して、指定したチャンネル内の操作ができるようになります。
4.実際に操作してみよう
ここまでの設定が正しくできているかを確認するために、Claude Desktop から Slack を実際に操作してみましょう。
1
最近はやりのIT技術について教えてください。その内容をSlackのチャンネルに投稿してください。

Claude Desktop アプリで MCP を介して外部ツールを利用しようとした際、以下のように「一度だけ許可」「常に許可」などの選択肢が表示されることがあります。
これは、Claude が 外部ツールへアクセス・処理を実行することに対する利用許可を確認するための表示です。このような表示が出た場合は、どちらかの許可をクリックしましょう。

Slack のチャンネルを確認すると、以下のようにメッセージが投稿されているはずです。
※投稿内容は必ずしも同じになるとは限りません。

これで、MCP 連携が正しく動作していることを確認できました。
slack_mcpには、以下の権限を付与しています。Claude Desktop から付与した範囲内で自由に指示を出して、実際にチャンネルを操作してみましょう。
| scope | 役割 |
|---|---|
| channels:history | パブリックチャンネルのメッセージやその他のコンテンツを閲覧する |
| channels:read | 基本的なチャンネル情報を表示する |
| chat:write | アプリとしてメッセージを送信 |
| reactions:write | メッセージに絵文字リアクションを追加する |
| users.profile:read | ユーザーとその基本情報を表示する |
| users:read | ユーザーの詳細なプロフィールを表示する |
