项目简介

Slack MCP 服务器是一个基于 Model Context Protocol (MCP) 的后端服务,它将 Slack 的常用功能封装为可供大型语言模型 (LLM) 客户端调用的工具。通过运行此服务器,LLM 应用可以安全、便捷地与 Slack 工作区进行交互,执行诸如发送消息、获取历史记录等任务。

主要功能点

该服务器当前提供以下功能,作为可被 LLM 客户端调用的“工具”:

  • 列出频道: 获取您所在 Slack 工作区中的所有频道列表。
  • 获取频道历史: 读取指定频道的最近消息记录。
  • 发送消息: 向指定的频道发送文本消息,支持发送到特定消息的回复线程。
  • 添加回应: 给指定的 Slack 消息添加表情符号回应。

安装步骤

运行此服务器的最简便方式是使用容器(如 Podman 或 Docker)。您需要安装相应的容器运行时。

  1. 拉取容器镜像:
    podman pull quay.io/maorfr/slack-mcp
    # 或使用 Docker
    docker pull quay.io/maorfr/slack-mcp
  2. 获取 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 呈现给您。

信息

分类

通信与社交