关于 Slack Explorer MCP
Slack Explorer MCP 是专门用于检索 Slack 消息和线程信息的 MCP 服务,使用用户令牌(xoxp)访问当前用户可见的内容。适合需要在 AI 客户端中查询 Slack 历史信息的用户。
主要功能
- 01按频道、用户、日期等条件搜索消息
- 02获取消息线程的全部回复
- 03批量查询用户资料
- 04搜索文件并读取画布内容
- 05支持 stdio 与 Streamable HTTP 两种传输方式
适用场景
- 01在 AI 客户端中查找上周某频道的相关讨论
- 02获取某条消息的全部线程回复进行总结
- 03按关键词或文件类型查找 Slack 中的文件与画布
MCP 相关
该项目是 MCP 服务,向 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 消息和线程信息的模型上下文协议(MCP)服务。它使用用户令牌(xoxp)提供工具,以访问经过身份验证的用户可查看的消息。
可用工具
-
消息搜索(
search_messages)- 使用高级筛选选项搜索 Slack 消息。可按频道、用户、日期范围和特定特征(回应、文件等)搜索。
- 参数
query:基本搜索查询。包含修饰符请使用专用字段(此字段不接受未指定字段的修饰符)。此处允许使用前缀为-的排除修饰符(例如,-in:#channel)。in_channel:按频道名称筛选(例如,“general”、“team-dev”)from_user:搜索特定用户发出的消息(用户 ID)with:搜索与特定用户的私信/线程(用户 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)- 搜索画布、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:搜索与特定用户的私信/线程中的文件(用户 ID 数组)before、after、on:按日期范围筛选(YYYY-MM-DD 格式)count:每页结果数(1-100,默认值:20)page:页码(1-100,默认值:1)
-
画布内容(
get_canvas_content)- 获取 Slack 画布的 HTML 内容。指定画布 ID 即可检索画布内容。
- 参数
canvas_ids:画布 ID 数组(必填,最多 20 个)
设置
获取 Slack 用户令牌
- 在 Slack API 中创建应用
- 在 OAuth & Permissions 中添加以下用户令牌范围:
channels:history- 用于公共频道groups:history- 用于私密频道im:history- 用于私信mpim:history- 用于群组私信search:read- 用于搜索消息users.profile:read- 用于用户个人资料users:read- 用于用户信息files:read- 用于访问文件内容
- 将应用安装到你的工作区
- 获取用户 OAuth 令牌(以 xoxp- 开头)
- 提示:若要在同一工作区中供多个用户使用,请将他们添加为协作者,并让每位用户从 OAuth & Permissions 重新安装应用,以获取各自的用户 OAuth 令牌
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 -
使用 Agent 执行 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 服务
默认情况下,服务使用 stdio 进行 MCP 通信。你可以通过设置 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。