项目简介
Slack MCP 服务器是一个基于 Model Context Protocol (MCP) 的后端服务,它将 Slack 的常用功能封装为可供大型语言模型 (LLM) 客户端调用的工具。通过运行此服务器,LLM 应用可以安全、便捷地与 Slack 工作区进行交互,执行诸如发送消息、获取历史记录等任务。
主要功能点
该服务器当前提供以下功能,作为可被 LLM 客户端调用的“工具”:
- 列出频道: 获取您所在 Slack 工作区中的所有频道列表。
- 获取频道历史: 读取指定频道的最近消息记录。
- 发送消息: 向指定的频道发送文本消息,支持发送到特定消息的回复线程。
- 添加回应: 给指定的 Slack 消息添加表情符号回应。
安装步骤
运行此服务器的最简便方式是使用容器(如 Podman 或 Docker)。您需要安装相应的容器运行时。
- 拉取容器镜像:
podman pull quay.io/maorfr/slack-mcp # 或使用 Docker docker pull quay.io/maorfr/slack-mcp - 获取 Slack 令牌: 运行此服务器需要您的 Slack 'xoxc-' 和 'xoxd-' 令牌。请参考 https://github.com/maorfr/slack-token-extractor 等方法安全地获取这些令牌。请注意,这些令牌具有较高的权限,请务必妥善保管。
服务器配置 (供 MCP 客户端使用)
Slack MCP 服务器是为 MCP 客户端(通常是支持 MCP 协议的 LLM 应用)设计的。您需要在您的 MCP 客户端配置中添加对此服务器的定义。典型的配置需要指定如何启动或连接到此服务器进程。以下是基于容器运行的常见配置参数描述,您需要在客户端的配置界面或文件中填写这些信息:
- 服务器名称 (Server Name): 给这个 MCP 服务器起一个名字,例如 'slack'。这是 LLM 客户端内部识别服务器的名称。
- 启动命令 (Command): 用于启动容器的命令,例如 'podman' 或 'docker'。
- 启动参数 (Args): 传递给启动命令的参数列表。对于容器运行,这通常包括:
- 'run': 容器运行时命令。
- '-i': 保持标准输入打开,因为 MCP 默认通过 Stdio 传输。
- '--rm': 容器停止后自动移除。
- '-e SLACK_MCP_XOXC_TOKEN': 设置名为 'SLACK_MCP_XOXC_TOKEN' 的环境变量,用于将 Slack 令牌传递给容器内的应用。
- '-e SLACK_MCP_XOXD_TOKEN': 设置名为 'SLACK_MCP_XOXD_TOKEN' 的环境变量。
- 'quay.io/maorfr/slack-mcp': 要运行的容器镜像名称。
- 环境变量 (Env): 需要在启动服务器进程时设置的环境变量及其值。在这里,您需要设置 'SLACK_MCP_XOXC_TOKEN' 和 'SLACK_MCP_XOXD_TOKEN' 的实际值(您获取到的 Slack 令牌)。这些变量会被注入到容器环境中,供服务器代码读取。
请根据您的 MCP 客户端的具体配置方式,填入上述参数和您的 Slack 令牌。
基本使用方法
一旦 Slack MCP 服务器在您的 MCP 客户端中配置并成功启动,LLM 客户端将能够发现并使用服务器暴露的 Slack 工具。您可以通过与 LLM 自然语言交互来利用这些工具,例如:
- 向 LLM 提问:“列出我在 Slack 中的频道。” (对应 'list_channels' 工具)
- 请求 LLM:“阅读一下 #general 频道的最新消息。” (对应 'get_channel_history' 工具)
- 让 LLM 执行:“请代我向 #开发频道发送一条消息:会议推迟到下午两点。” (对应 'post_message' 工具)
- 请 LLM 操作:“给 #announcements 频道里关于新版本发布的那条消息加个 🎉 表情。” (对应 'add_reaction' 工具)
LLM 客户端会解析您的请求,判断需要调用的 Slack 工具及其参数,然后通过 MCP 协议向 Slack MCP 服务器发送 JSON-RPC 请求。服务器执行相应的 Slack API 调用并将结果返回给客户端,最终由 LLM 呈现给您。
信息
分类
通信与社交