mcpField
S
Slack Explorer MCP

Slack Explorer MCP

ローカル
github.com/shibayu36コミュニケーション5025 週間前に更新

Slack Explorer MCP について

Slack Explorer MCP は、Slack のメッセージ、スレッド、ユーザー、ファイルの取得に特化した MCP サーバーです。ユーザートークン(xoxp)を使い、認証済みユーザーが閲覧できる内容のみを読み取るため、AI クライアントから Slack の履歴を調べたい人に適しています。

主な機能

  1. 01チャンネル、ユーザー、日付による絞り込みメッセージ検索
  2. 02スレッド内の全返信の取得
  3. 03ユーザー ID によるプロフィールの一括取得
  4. 04ファイル検索とキャンバス内容の取得
  5. 05stdio と Streamable HTTP の転送方式

活用シーン

  1. 01特定チャンネルで最近行われた議論を検索する
  2. 02スレッドの全返信を集めて要約する
  3. 03種類・ユーザー・日付でファイルやキャンバスを探す

MCP 対応

本プロジェクトは MCP サーバーであり、Slack のメッセージ検索、スレッド返信、ユーザープロフィール、ファイル検索、キャンバス取得のツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"shibayu36-slack-explorer": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/shibayu36/slack-explorer-mcp:0.12.0"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/shibayu36/slack-explorer-mcp:0.12.0

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/shibayu36/slack-explorer-mcp:0.12.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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、videos
      • in_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 ユーザートークンの取得
  1. Slack API でアプリを作成します
  2. OAuth & Permissions で次の User Token Scopes を追加します:
    • channels:history - パブリックチャンネル用
    • groups:history - プライベートチャンネル用
    • im:history - ダイレクトメッセージ用
    • mpim:history - グループダイレクトメッセージ用
    • search:read - メッセージ検索用
    • users.profile:read - ユーザープロフィール用
    • users:read - ユーザー情報用
    • files:read - ファイルコンテンツへのアクセス用
  3. ワークスペースにアプリをインストールします
  4. User OAuth Token(xoxp- で始まります)を取得します
    • ヒント:同じワークスペース内で複数のユーザーと使用するには、ユーザーを Collaborators として追加し、各ユーザーが OAuth & Permissions からアプリを再インストールして、それぞれの User OAuth Token を取得してください
MCP サーバーの設定
  1. 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
    
  2. エージェントを使用して 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。