返回 MCP 目录
public公开dns本地运行

slack-explorer-mcp

一个基于MCP协议的Slack信息检索服务器,提供消息搜索、文件查找、用户信息获取等功能,帮助用户高效查询和管理Slack工作区内容。

article

README

🚀 Slack Explorer MCP Server

这是一个专门用于从Slack消息和线程中检索信息的模型上下文协议(MCP)服务器。借助用户令牌(xoxp),它提供了一系列工具,可帮助用户访问已认证用户可见的消息。

🚀 快速开始

获取Slack用户令牌

  1. Slack API 创建一个应用。
  2. 在“OAuth & 权限”中添加以下用户令牌权限范围:
    • channels:history - 用于公共频道
    • groups:history - 用于私有频道
    • im:history - 用于直接消息
    • mpim:history - 用于群组直接消息
    • search:read - 用于消息搜索
    • users.profile:read - 用于用户资料
    • users:read - 用于用户信息
    • files:read - 用于文件内容访问
  3. 将应用安装到你的工作区。
  4. 获取用户OAuth令牌(以xoxp - 开头)
    • 提示:若要在同一工作区为多个用户使用,可将他们添加为协作者,让每个用户从“OAuth & 权限”重新安装以获取自己的用户OAuth令牌。

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搜索 示例:

    • "搜索上周在通用频道中与会议相关的消息"
    • "查找 @john.doe 关于 '项目' 的消息"
    • "获取此帖子的所有线程回复"

✨ 主要特性

可用工具

  • 消息搜索 (search_messages)

    • 可使用高级过滤选项搜索Slack消息。你可以按频道、用户、日期范围和特定特征(反应、文件等)进行搜索。
    • 参数
      • query:基本搜索查询(无修饰符)
      • in_channel:按频道名称过滤(例如,"general"、"team - dev")
      • from_user:搜索特定用户的消息(用户ID)
      • with:搜索与特定用户的直接消息/线程(用户ID数组)
      • beforeafteron:日期范围过滤(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)

    • 搜索诸如画布、PDF和图像等文件。你可以按文件类型、频道、用户和日期范围进行过滤。
    • 参数
      • query:基本搜索查询(无修饰符)
      • types:按文件类型过滤(例如,["canvases", "pdfs"])。可用类型:列表、画布、文档、电子邮件、图像、PDF、演示文稿、代码片段、电子表格、音频、视频
      • in_channel:按频道名称过滤(例如,"general"、"team - dev")
      • from_user:搜索特定用户的文件(用户ID)
      • with_users:搜索与特定用户的直接消息/线程中的文件(用户ID数组)
      • beforeafteron:日期范围过滤(YYYY - MM - DD格式)
      • count:每页结果数量(1 - 100,默认:20)
      • page:页码(1 - 100,默认:1)
  • 画布内容 (get_canvas_content)

    • 获取Slack画布的HTML内容。通过指定画布ID来检索画布内容。
    • 参数
      • canvas_ids:画布ID数组(必需,最多20个)

💻 使用示例

常见搜索模式

  • 在特定频道中搜索

    搜索通用频道中包含 "release" 的消息
    
  • 搜索特定用户的消息

    搜索 @john.doe 昨天的消息
    
  • 搜索带有反应的消息

    搜索带有 :fire: 反应的消息
    
  • 搜索你做出反应的消息

    搜索你用 :eyes: 做出反应的消息
    
  • 搜索带有文件附件的消息

    搜索带有文件附件的消息
    

作为可流式HTTP服务器使用

默认情况下,服务器使用标准输入输出进行MCP通信。你可以通过设置 TRANSPORT=http 环境变量将其作为可流式HTTP服务器启动。在HTTP模式下,使用 X - Slack - User - Token 头传递Slack令牌。

启动服务器:

# 启动HTTP服务器(默认:所有接口 0.0.0.0,端口 8080)
docker run -i --rm --pull always \
  -e TRANSPORT=http \
  -p 8080:8080 \
  ghcr.io/shibayu36/slack-explorer-mcp:latest

# 使用自定义主机和端口启动
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
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端