Slack MCP Server について
Slack MCP Serverは、Slack APIを通じてAIアシスタントによるワークスペースのメッセージの読み書きを可能にします。ユーザートークンで本人として操作でき、チャンネル、DM、プロフィール、スレッドを扱うワークフローに対応します。
主な機能
- 01ワークスペースのチャンネルとユーザー一覧
- 02チャンネルのメッセージ履歴の取得
- 03DMとスレッド返信の取得
- 04ユーザーとしてメッセージを送信
- 05メッセージへのリアクション追加
活用シーン
- 01チャンネルの最近のメッセージを確認
- 02チャンネルやDMにメッセージを送信
- 03スレッドの返信を取得してリアクションを追加
MCP 対応
MCPサーバーとして、チャンネルやメッセージの読み取り、ユーザープロフィールの確認、送信、スレッド返信、リアクション追加のSlackツールをMCPクライアントに提供します。ユーザートークン認証により、ユーザー本人としてメッセージを送信できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Slack MCP Server
https://github.com/modelcontextprotocol/servers/tree/0ad83e8dda5f3a46f0157c6f2c45e03f397d11a1/src/slack からフォークされています。
認証方式をボットトークンからユーザートークンに変更し、ダイレクトメッセージの読み取りやユーザーに代わってメッセージを送信するなど、より幅広いユースケースで MCP サーバーを利用できるようにしました。
Slack API 用の MCP サーバーで、Claude が Slack ワークスペースを操作できるようにします。
セットアップ
-
Slack アプリを作成します。
- Slack Apps ページにアクセスします
- 「Create New App」をクリックします
- 「From scratch」を選択します
- アプリに「Slack MCP Server」という名前を付け、ワークスペースを選択します
-
ユーザートークンのスコープを設定します。 「OAuth & Permissions」に移動し、ユーザートークンに次のスコープを追加します。
channels:history- パブリックチャンネルのメッセージやその他のコンテンツを表示するchannels:read- チャンネルの基本情報を表示するchat:write- ユーザーとしてメッセージを送信するreactions:write- メッセージに絵文字のリアクションを追加するusers:read- ユーザーとその基本情報を表示するusers.profile:read- ユーザーの詳細なプロフィールを表示するgroups:history- プライベートチャンネルのメッセージやその他のコンテンツを表示するgroups:read- チャンネルの基本情報を表示するgroups:write- プライベートチャンネルにメッセージを送信するim:history- ダイレクトメッセージのメッセージやその他のコンテンツを表示するim:read- ダイレクトメッセージの基本情報を表示するim:write- ダイレクトメッセージにメッセージを送信するmpim:history- 複数人のダイレクトメッセージのメッセージやその他のコンテンツを表示するmpim:read- 複数人のダイレクトメッセージの基本情報を表示するmpim:write- 複数人のダイレクトメッセージにメッセージを送信する
-
アプリをワークスペースにインストールします。
- 「Install to Workspace」をクリックし、アプリを認証します
xoxp-で始まる「User OAuth Token」を保存します
-
npm installを実行して依存関係をインストールします。
ツール
-
slack_list_channels- ワークスペース内の公開チャンネルまたは事前定義されたチャンネルを一覧表示します
- 任意の入力:
limit(数値、デフォルト:100、最大:200):返すチャンネルの最大数cursor(文字列):次のページを取得するためのページネーションカーソル
- 返り値:IDと情報を含むチャンネルの一覧
-
slack_post_message- Slack チャンネルに新しいメッセージを投稿します
- 必須の入力:
channel_id(文字列):投稿先チャンネルの IDtext(文字列):投稿するメッセージのテキスト
- 返り値:メッセージの投稿確認とタイムスタンプ
-
slack_reply_to_thread- 特定のメッセージスレッドに返信します
- 必須の入力:
channel_id(文字列):スレッドを含むチャンネルthread_ts(文字列):親メッセージのタイムスタンプtext(文字列):返信テキスト
- 返り値:返信の確認とタイムスタンプ
-
slack_add_reaction- メッセージに絵文字リアクションを追加します
- 必須の入力:
channel_id(文字列):メッセージを含むチャンネルtimestamp(文字列):リアクションを追加するメッセージのタイムスタンプreaction(文字列):コロンなしの絵文字名
- 返り値:リアクションの確認
-
slack_get_channel_history- チャンネルの最近のメッセージを取得します
- 必須の入力:
channel_id(文字列):チャンネルの ID
- 任意の入力:
limit(数値、デフォルト:10):取得するメッセージ数
- 返り値:内容とメタデータを含むメッセージの一覧
-
slack_get_thread_replies- メッセージスレッド内のすべての返信を取得します
- 必須の入力:
channel_id(文字列):スレッドを含むチャンネルthread_ts(文字列):親メッセージのタイムスタンプ
- 返り値:内容とメタデータを含む返信の一覧
-
slack_get_users- 基本的なプロフィール情報を含むワークスペースユーザーの一覧を取得します
- 任意の入力:
cursor(文字列):次のページを取得するためのページネーションカーソルlimit(数値、デフォルト:100、最大:200):返すユーザーの最大数
- 返り値:基本プロフィールを含むユーザーの一覧
-
slack_get_user_profile- 特定ユーザーの詳細なプロフィール情報を取得します
- 必須の入力:
user_id(文字列):ユーザーの ID
- 返り値:詳細なユーザープロフィール情報
Claude Desktop での使用方法
以下を claude_desktop_config.json に追加します:
NPX
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_USER_TOKEN": "xoxp-your-user-token"
}
}
}
}
docker
{
"mcpServers": {
"slack": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "SLACK_USER_TOKEN"],
"env": {
"SLACK_USER_TOKEN": "xoxp-your-bot-token"
}
}
}
}
環境変数
SLACK_USER_TOKEN:必須。xoxp-で始まる Bot User OAuth Token です。
トラブルシューティング
権限エラーが発生した場合は、次の点を確認してください:
- 必要なスコープがすべて Slack アプリに追加されていること
- アプリがワークスペースに正しくインストールされていること
- トークンとワークスペース ID が設定に正しくコピーされていること
- アクセスが必要なチャンネルにアプリが追加されていること
ビルド
Docker ビルド:
docker build -t mcp/slack -f src/slack/Dockerfile .
ライセンス
この MCP サーバーは MIT License の下でライセンスされています。つまり、MIT License の利用規約に従うことを条件に、ソフトウェアを自由に使用、変更、配布できます。詳しくは、プロジェクトリポジトリ内の LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。