{
  "markdown": "# Slack Explorer MCP Server\n\nA 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).\n\n## Available Tools\n\n- Message Search (`search_messages`)\n  - Search Slack messages with advanced filtering options. You can search by channel, user, date range, and specific features (reactions, files, etc.).\n  - Parameters\n    - `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\n    - `in_channel`: Filter by channel name (e.g., \"general\", \"team-dev\")\n    - `from_user`: Search messages from specific user (User ID)\n    - `with`: Search DMs/threads with specific users (array of User IDs)\n    - `before`, `after`, `on`: Date range filtering (YYYY-MM-DD format)\n    - `during`: Period specification (e.g., \"July\", \"2023\")\n    - `has`: Messages containing specific features (emoji, \"pin\", \"file\", \"link\", \"reaction\")\n    - `hasmy`: Messages where you reacted with specific emoji\n    - `sort`: Sort method (\"score\" or \"timestamp\")\n    - `count`: Number of results per page (1-100, default: 20)\n    - `page`: Page number (1-100, default: 1)\n\n- Thread Replies (`get_thread_replies`)\n  - Get all replies in a message thread. Supports pagination for efficiently handling large numbers of replies.\n  - Parameters\n    - `channel_id`: Channel ID (required)\n    - `thread_ts`: Parent message timestamp (required)\n    - `limit`: Number of replies to retrieve (1-1000, default: 100)\n    - `cursor`: Pagination cursor\n\n- User Profiles (`get_user_profiles`)\n  - 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.\n  - Parameters\n    - `user_ids`: Array of user IDs (required, max 100)\n\n- Search Users by Display Name (`search_users_by_name`)\n  - Search users by their display name. Supports both exact match and partial match search with case sensitivity.\n  - Parameters\n    - `display_name`: Display name to search for (required)\n    - `exact`: Enable exact match search\n\n- File Search (`search_files`)\n  - Search for files such as canvases, PDFs, and images. You can filter by file type, channel, user, and date range.\n  - Parameters\n    - `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\n    - `types`: Filter by file types (e.g., [\"canvases\", \"pdfs\"]). Available types: lists, canvases, documents, emails, images, pdfs, presentations, snippets, spreadsheets, audio, videos\n    - `in_channel`: Filter by channel name (e.g., \"general\", \"team-dev\")\n    - `from_user`: Search files from specific user (User ID)\n    - `with_users`: Search files in DMs/threads with specific users (array of User IDs)\n    - `before`, `after`, `on`: Date range filtering (YYYY-MM-DD format)\n    - `count`: Number of results per page (1-100, default: 20)\n    - `page`: Page number (1-100, default: 1)\n\n- Canvas Content (`get_canvas_content`)\n  - Get HTML content of Slack canvases. Retrieve canvas content by specifying canvas IDs.\n  - Parameters\n    - `canvas_ids`: Array of canvas IDs (required, max 20)\n\n## Setup\n\n### Getting a Slack User Token\n\n1. Create an app at [Slack API](https://api.slack.com/apps)\n2. Add the following User Token Scopes in OAuth & Permissions:\n   - `channels:history` - For public channels\n   - `groups:history` - For private channels\n   - `im:history` - For direct messages\n   - `mpim:history` - For group direct messages\n   - `search:read` - For message search\n   - `users.profile:read` - For user profiles\n   - `users:read` - For user information\n   - `files:read` - For file content access\n3. Install the app to your workspace\n4. Get the User OAuth Token (starts with xoxp-)\n   - 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\n\n### MCP Server Configuration\n\n1. Configure mcp.json\n\n    ```json\n    {\n      \"mcpServers\": {\n        \"slack-explorer-mcp\": {\n          \"command\": \"docker\",\n          \"args\": [\"run\", \"-i\", \"--rm\", \"--pull\", \"always\",\n            \"-e\", \"SLACK_USER_TOKEN=xoxp-your-token-here\",\n            \"ghcr.io/shibayu36/slack-explorer-mcp:latest\"\n          ]\n        }\n      }\n    }\n    ```\n\n    If you're using Claude Code:\n\n    ```bash\n    claude mcp add slack-explorer-mcp -- docker run -i --rm --pull always \\\n      -e SLACK_USER_TOKEN=xoxp-your-token-here \\\n      ghcr.io/shibayu36/slack-explorer-mcp:latest\n    ```\n\n2. Use the agent to perform Slack searches\n\n    Examples:\n    - \"Search for meeting-related messages in the general channel from last week\"\n    - \"Find messages from @john.doe about 'project'\"\n    - \"Get all thread replies for this post\"\n\n## Usage\n\n### Common Search Patterns\n\n- **Search in a specific channel**\n  ```\n  Search for \"release\" messages in the general channel\n  ```\n\n- **Search messages from a specific user**\n  ```\n  Search for yesterday's messages from @john.doe\n  ```\n\n- **Search messages with reactions**\n  ```\n  Search for messages with :fire: reactions\n  ```\n\n- **Search messages you reacted to**\n  ```\n  Search for messages where you reacted with :eyes:\n  ```\n\n- **Search messages with file attachments**\n  ```\n  Search for messages with file attachments\n  ```\n\n### Using as Streamable HTTP Server\n\nBy 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.\n\nStarting the server:\n```bash\n# Start HTTP server (default: all interfaces 0.0.0.0, port 8080)\ndocker run -i --rm --pull always \\\n  -e TRANSPORT=http \\\n  -p 8080:8080 \\\n  ghcr.io/shibayu36/slack-explorer-mcp:latest\n\n# Start with custom host and port\ndocker run -i --rm --pull always \\\n  -e TRANSPORT=http \\\n  -e HTTP_HOST=127.0.0.1 \\\n  -e HTTP_PORT=9090 \\\n  -p 9090:9090 \\\n  ghcr.io/shibayu36/slack-explorer-mcp:latest\n```\n",
  "bytes": 6281,
  "sha": "b27ba44f94b5548895ca5b967a089dddc5bc9197778786525dad604c5ccd061a",
  "repo_slug": "shibayu36/slack-explorer-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_shibayu36_slack_explorer_mcp_03a2e082/readme"
}