PluginBench
MCP Server
Maintained
MIT

Slack Explorer MCP MCP Server

io.github.shibayu36/slack-explorer-mcp

Search and retrieve Slack messages, threads, files, and user profiles via MCP

What is the Slack Explorer MCP MCP server?

The Slack Explorer MCP server is a Model Context Protocol server specialized in retrieving information from Slack messages and threads. It provides tools to search messages, access thread replies, retrieve user profiles, search files, and get canvas content using a User Token (xoxp) for authenticated access.

Slack Explorer MCP enables AI agents to search and retrieve Slack data including messages with advanced filtering, thread replies, user profiles, files, and canvas content. Use it to find information across your Slack workspace, analyze conversations, and access shared documents programmatically.

How to install Slack Explorer MCP

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "slack-explorer-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/shibayu36/slack-explorer-mcp:0.12.0"
      ]
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • search_messages — Search Slack messages with advanced filtering by channel, user, date range, and features like reactions, files, and links.
  • get_thread_replies — Retrieve all replies in a message thread with pagination support for handling large numbers of replies.
  • get_user_profiles — Get profile information for multiple users in bulk, including display names, real names, and email addresses.
  • search_users_by_name — Search users by their display name with support for exact and partial match searches.
  • search_files — Search for files (canvases, PDFs, images, etc.) filtered by type, channel, user, and date range.
  • get_canvas_content — Retrieve HTML content of Slack canvases by specifying canvas IDs.

Use cases

  • Search for messages about a specific topic across channels or from particular users to find context and decisions
  • Retrieve all replies in a thread to analyze discussions and gather complete conversation history
  • Look up user profiles and contact information for team members across your workspace
  • Find files shared in Slack (PDFs, canvases, images) by type, date, or channel to locate resources
  • Analyze reactions and engagement on messages to identify important or popular discussions

Slack Explorer MCP MCP server FAQ

What is the Slack Explorer MCP server?

It's an MCP server that lets AI agents search and retrieve information from Slack, including messages, threads, user profiles, files, and canvas content using a User Token for authentication.

Is it free to use?

The server itself is open-source and free. You need a Slack workspace and a User Token (xoxp-) from your Slack app, which is free to create.

How do I install it in Cursor or Claude?

Configure it in your mcp.json file with the Docker command provided in the README, setting the SLACK_USER_TOKEN environment variable. For Claude Code, use `claude mcp add slack-explorer-mcp -- docker run ...` with your token.

What authentication is required?

You need a Slack User Token (xoxp-) with scopes for channels:history, groups:history, im:history, mpim:history, search:read, users.profile:read, users:read, and files:read.

Can I use it with multiple users in the same workspace?

Yes, add users as Collaborators in your Slack app and have each user reinstall from OAuth & Permissions to get their own User OAuth Token.

Can it run as an HTTP server?

Yes, set TRANSPORT=http to run it as a Streamable HTTP server on port 8080 (or custom port), and pass the Slack token via the X-Slack-User-Token header.

README (reference)

Source of truth, from the repository.

Slack Explorer MCP Server

A Model Context Protocol (MCP) server specialized in retrieving information from Slack messages and threads. It provides tools to access messages that the authenticated user can view using a User Token (xoxp).

Available Tools

  • Message Search (search_messages)

    • Search Slack messages with advanced filtering options. You can search by channel, user, date range, and specific features (reactions, files, etc.).
    • Parameters
      • query: Basic search query. Use dedicated fields for inclusion modifiers (bare modifiers in this field are rejected). Exclusion modifiers prefixed with - (e.g., -in:#channel) ARE allowed here
      • in_channel: Filter by channel name (e.g., "general", "team-dev")
      • from_user: Search messages from specific user (User ID)
      • with: Search DMs/threads with specific users (array of User IDs)
      • before, after, on: Date range filtering (YYYY-MM-DD format)
      • during: Period specification (e.g., "July", "2023")
      • has: Messages containing specific features (emoji, "pin", "file", "link", "reaction")
      • hasmy: Messages where you reacted with specific emoji
      • sort: Sort method ("score" or "timestamp")
      • count: Number of results per page (1-100, default: 20)
      • page: Page number (1-100, default: 1)
  • Thread Replies (get_thread_replies)

    • Get all replies in a message thread. Supports pagination for efficiently handling large numbers of replies.
    • Parameters
      • channel_id: Channel ID (required)
      • thread_ts: Parent message timestamp (required)
      • limit: Number of replies to retrieve (1-1000, default: 100)
      • cursor: Pagination cursor
  • User Profiles (get_user_profiles)

    • Get profile information for multiple users in bulk. Retrieve display names, real names, email addresses, and other profile information by specifying a list of user IDs.
    • Parameters
      • user_ids: Array of user IDs (required, max 100)
  • Search Users by Display Name (search_users_by_name)

    • Search users by their display name. Supports both exact match and partial match search with case sensitivity.
    • Parameters
      • display_name: Display name to search for (required)
      • exact: Enable exact match search
  • File Search (search_files)

    • Search for files such as canvases, PDFs, and images. You can filter by file type, channel, user, and date range.
    • Parameters
      • query: Basic search query. Use dedicated fields for inclusion modifiers (bare modifiers in this field are rejected). Exclusion modifiers prefixed with - (e.g., -type:pdfs) ARE allowed here
      • types: Filter by file types (e.g., ["canvases", "pdfs"]). Available types: lists, canvases, documents, emails, images, pdfs, presentations, snippets, spreadsheets, audio, videos
      • in_channel: Filter by channel name (e.g., "general", "team-dev")
      • from_user: Search files from specific user (User ID)
      • with_users: Search files in DMs/threads with specific users (array of User IDs)
      • before, after, on: Date range filtering (YYYY-MM-DD format)
      • count: Number of results per page (1-100, default: 20)
      • page: Page number (1-100, default: 1)
  • Canvas Content (get_canvas_content)

    • Get HTML content of Slack canvases. Retrieve canvas content by specifying canvas IDs.
    • Parameters
      • canvas_ids: Array of canvas IDs (required, max 20)

Setup

Getting a Slack User Token

  1. Create an app at Slack API
  2. Add the following User Token Scopes in OAuth & Permissions:
    • channels:history - For public channels
    • groups:history - For private channels
    • im:history - For direct messages
    • mpim:history - For group direct messages
    • search:read - For message search
    • users.profile:read - For user profiles
    • users:read - For user information
    • files:read - For file content access
  3. Install the app to your workspace
  4. Get the User OAuth Token (starts with xoxp-)
    • Tip: To use with multiple users in the same workspace, add them as Collaborators and have each user reinstall from OAuth & Permissions to get their own User OAuth Token

MCP Server Configuration

  1. Configure 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"
          ]
        }
      }
    }
    

    If you're using 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. Use the agent to perform Slack searches

    Examples:

    • "Search for meeting-related messages in the general channel from last week"
    • "Find messages from @john.doe about 'project'"
    • "Get all thread replies for this post"

Usage

Common Search Patterns

  • Search in a specific channel

    Search for "release" messages in the general channel
    
  • Search messages from a specific user

    Search for yesterday's messages from @john.doe
    
  • Search messages with reactions

    Search for messages with :fire: reactions
    
  • Search messages you reacted to

    Search for messages where you reacted with :eyes:
    
  • Search messages with file attachments

    Search for messages with file attachments
    

Using as Streamable HTTP Server

By default, the server uses stdio for MCP communication. You can start it as a Streamable HTTP server by setting the TRANSPORT=http environment variable. In HTTP mode, pass the Slack token using the X-Slack-User-Token header.

Starting the server:

# 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

Related MCP servers

Read-only SQL, MongoDB, Redis and Elasticsearch access, switchable mid-conversation.

0
TypeScript
MIT
View repository →

Read-only MySQL access, with the database and server switchable mid-conversation.

0
TypeScript
MIT
View repository →
AIAIDataParser logo

Extract schema-guaranteed JSON from PDFs, images and messy text. 50 free credits, no card.

0
JavaScript
MIT
View repository →
AIAISOTools logo

AISOTools

Active

Search, compare, and find alternatives across a catalog of 3,000+ AI tools.

3
MIT
View repository →

Live status probes plus published uptime and incident history for 280+ APIs and cloud services.

1
JavaScript
MIT
View repository →
MYMyMCPTools logo

Find MCP servers and check whether they actually respond, via live handshake probes.

0
JavaScript
MIT
View repository →