Slack Explorer MCP について
Slack Explorer MCP は、Slack のメッセージ、スレッド、ユーザー、ファイルの取得に特化した MCP サーバーです。ユーザートークン(xoxp)を使い、認証済みユーザーが閲覧できる内容のみを読み取るため、AI クライアントから Slack の履歴を調べたい人に適しています。
主な機能
- 01チャンネル、ユーザー、日付による絞り込みメッセージ検索
- 02スレッド内の全返信の取得
- 03ユーザー ID によるプロフィールの一括取得
- 04ファイル検索とキャンバス内容の取得
- 05stdio と Streamable HTTP の転送方式
活用シーン
- 01特定チャンネルで最近行われた議論を検索する
- 02スレッドの全返信を集めて要約する
- 03種類・ユーザー・日付でファイルやキャンバスを探す
MCP 対応
本プロジェクトは MCP サーバーであり、Slack のメッセージ検索、スレッド返信、ユーザープロフィール、ファイル検索、キャンバス取得のツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/shibayu36/slack-explorer-mcp:0.12.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/shibayu36/slack-explorer-mcp:0.12.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Slack Explorer MCP Server
Slack のメッセージやスレッドから情報を取得することに特化した Model Context Protocol(MCP)サーバーです。ユーザートークン(xoxp)を使用して、認証済みユーザーが閲覧できるメッセージにアクセスするツールを提供します。
利用可能なツール
-
メッセージ検索(
search_messages)- 高度なフィルタリングオプションを使用して Slack のメッセージを検索します。チャンネル、ユーザー、日付範囲、特定の特徴(リアクション、ファイルなど)を指定して検索できます。
- パラメーター
query:基本的な検索クエリです。包含修飾子には専用フィールドを使用してください(このフィールドに修飾子のみを指定すると拒否されます)。-が前置された除外修飾子(例:-in:#channel)はこのフィールドで使用できますin_channel:チャンネル名で絞り込みます(例:"general"、"team-dev")from_user:特定のユーザーからのメッセージを検索します(ユーザー ID)with:特定のユーザーとの DM/スレッドを検索します(ユーザー ID の配列)before、after、on:日付範囲で絞り込みます(YYYY-MM-DD 形式)during:期間を指定します(例:"July"、"2023")has:特定の特徴(絵文字、「pin」、「file」、「link」、「reaction」)を含むメッセージhasmy:自分が特定の絵文字でリアクションしたメッセージsort:並べ替え方法("score" または "timestamp")count:ページごとの結果数(1~100、既定値:20)page:ページ番号(1~100、既定値:1)
-
スレッドの返信(
get_thread_replies)- メッセージスレッド内のすべての返信を取得します。大量の返信を効率的に処理できるよう、ページネーションに対応しています。
- パラメーター
channel_id:チャンネル ID(必須)thread_ts:親メッセージのタイムスタンプ(必須)limit:取得する返信数(1~1000、既定値:100)cursor:ページネーションカーソル
-
ユーザープロフィール(
get_user_profiles)- 複数のユーザーのプロフィール情報を一括取得します。ユーザー ID のリストを指定すると、表示名、氏名、メールアドレス、その他のプロフィール情報を取得できます。
- パラメーター
user_ids:ユーザー ID の配列(必須、最大 100 件)
-
表示名でユーザーを検索(
search_users_by_name)- 表示名でユーザーを検索します。大文字と小文字を区別した完全一致検索と部分一致検索に対応しています。
- パラメーター
display_name:検索する表示名(必須)exact:完全一致検索を有効にします
-
ファイル検索(
search_files)- Canvas、PDF、画像などのファイルを検索します。ファイルタイプ、チャンネル、ユーザー、日付範囲で絞り込めます。
- パラメーター
query:基本的な検索クエリです。包含修飾子には専用フィールドを使用してください(このフィールドに修飾子のみを指定すると拒否されます)。-が前置された除外修飾子(例:-type:pdfs)はこのフィールドで使用できますtypes:ファイルタイプで絞り込みます(例:["canvases", "pdfs"])。利用可能なタイプ:lists、canvases、documents、emails、images、pdfs、presentations、snippets、spreadsheets、audio、videosin_channel:チャンネル名で絞り込みます(例:"general"、"team-dev")from_user:特定のユーザーが投稿したファイルを検索します(ユーザー ID)with_users:特定のユーザーとの DM/スレッド内のファイルを検索します(ユーザー ID の配列)before、after、on:日付範囲で絞り込みます(YYYY-MM-DD 形式)count:ページごとの結果数(1~100、既定値:20)page:ページ番号(1~100、既定値:1)
-
Canvas のコンテンツ(
get_canvas_content)- Slack Canvas の HTML コンテンツを取得します。Canvas ID を指定してコンテンツを取得できます。
- パラメーター
canvas_ids:Canvas ID の配列(必須、最大 20 件)
セットアップ
Slack ユーザートークンの取得
- Slack API でアプリを作成します
- OAuth & Permissions で次の User Token Scopes を追加します:
channels:history- パブリックチャンネル用groups:history- プライベートチャンネル用im:history- ダイレクトメッセージ用mpim:history- グループダイレクトメッセージ用search:read- メッセージ検索用users.profile:read- ユーザープロフィール用users:read- ユーザー情報用files:read- ファイルコンテンツへのアクセス用
- ワークスペースにアプリをインストールします
- User OAuth Token(xoxp- で始まります)を取得します
- ヒント:同じワークスペース内で複数のユーザーと使用するには、ユーザーを Collaborators として追加し、各ユーザーが OAuth & Permissions からアプリを再インストールして、それぞれの User OAuth Token を取得してください
MCP サーバーの設定
-
mcp.json を設定します
{ "mcpServers": { "slack-explorer-mcp": { "command": "docker", "args": ["run", "-i", "--rm", "--pull", "always", "-e", "SLACK_USER_TOKEN=xoxp-your-token-here", "ghcr.io/shibayu36/slack-explorer-mcp:latest" ] } } }Claude Code を使用している場合:
claude mcp add slack-explorer-mcp -- docker run -i --rm --pull always \ -e SLACK_USER_TOKEN=xoxp-your-token-here \ ghcr.io/shibayu36/slack-explorer-mcp:latest -
エージェントを使用して Slack を検索します
例:
- 「先週、general チャンネルで会議に関連するメッセージを検索して」
- 「@john.doe の『project』に関するメッセージを見つけて」
- 「この投稿へのスレッド内の返信をすべて取得して」
使い方
よく使われる検索パターン
-
特定のチャンネル内を検索
Search for "release" messages in the general channel -
特定のユーザーからのメッセージを検索
Search for yesterday's messages from @john.doe -
リアクションが付いたメッセージを検索
Search for messages with :fire: reactions -
自分がリアクションしたメッセージを検索
Search for messages where you reacted with :eyes: -
ファイルが添付されたメッセージを検索
Search for messages with file attachments
Streamable HTTP サーバーとして使用する
デフォルトでは、サーバーは MCP 通信に stdio を使用します。TRANSPORT=http 環境変数を設定すると、Streamable HTTP サーバーとして起動できます。HTTP モードでは、X-Slack-User-Token ヘッダーを使用して Slack トークンを渡します。
サーバーの起動:
# Start HTTP server (default: all interfaces 0.0.0.0, port 8080)
docker run -i --rm --pull always \
-e TRANSPORT=http \
-p 8080:8080 \
ghcr.io/shibayu36/slack-explorer-mcp:latest
# Start with custom host and port
docker run -i --rm --pull always \
-e TRANSPORT=http \
-e HTTP_HOST=127.0.0.1 \
-e HTTP_PORT=9090 \
-p 9090:9090 \
ghcr.io/shibayu36/slack-explorer-mcp:latest
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。