article
README
🚀 Slack Explorer MCP Server
这是一个专门用于从Slack消息和线程中检索信息的模型上下文协议(MCP)服务器。借助用户令牌(xoxp),它提供了一系列工具,可帮助用户访问已认证用户可见的消息。
🚀 快速开始
获取Slack用户令牌
- 在 Slack API 创建一个应用。
- 在“OAuth & 权限”中添加以下用户令牌权限范围:
channels:history- 用于公共频道groups:history- 用于私有频道im:history- 用于直接消息mpim:history- 用于群组直接消息search:read- 用于消息搜索users.profile:read- 用于用户资料users:read- 用于用户信息files:read- 用于文件内容访问
- 将应用安装到你的工作区。
- 获取用户OAuth令牌(以xoxp - 开头)
- 提示:若要在同一工作区为多个用户使用,可将他们添加为协作者,让每个用户从“OAuth & 权限”重新安装以获取自己的用户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 -
使用代理执行Slack搜索 示例:
- "搜索上周在通用频道中与会议相关的消息"
- "查找 @john.doe 关于 '项目' 的消息"
- "获取此帖子的所有线程回复"
✨ 主要特性
可用工具
-
消息搜索 (
search_messages)- 可使用高级过滤选项搜索Slack消息。你可以按频道、用户、日期范围和特定特征(反应、文件等)进行搜索。
- 参数
query:基本搜索查询(无修饰符)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:基本搜索查询(无修饰符)types:按文件类型过滤(例如,["canvases", "pdfs"])。可用类型:列表、画布、文档、电子邮件、图像、PDF、演示文稿、代码片段、电子表格、音频、视频in_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个)
💻 使用示例
常见搜索模式
-
在特定频道中搜索
搜索通用频道中包含 "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
微信扫一扫