使用说明

项目简介

Slack MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,专门为 LLM 客户端提供访问 Slack 工作区消息记录的功能。它允许 LLM 应用安全、可扩展地获取 Slack 平台上的上下文信息,从而增强 LLM 在处理 Slack 相关任务时的能力。

主要功能点

  • 消息记录访问: 提供 'conversations.history' 工具,允许 LLM 获取指定 Slack 频道的消息历史。
  • 标准 MCP 协议: 遵循 MCP 协议规范,易于与任何兼容 MCP 协议的 LLM 客户端集成。
  • 多种传输协议: 支持 Stdio 和 SSE 两种传输协议,满足不同部署环境的需求。
  • 灵活部署: 提供 Docker 和 Docker Compose 两种安装方式,方便用户快速部署和管理。
  • 安全认证: 通过 Slack 令牌进行身份验证,保障数据访问安全。
  • 代理支持: 支持通过代理服务器访问 Slack API,适应复杂的网络环境。

安装步骤

  1. 获取 Slack API Token: 按照仓库 README.md 文件的 "Setup Guide - 1. Authentication Setup" 步骤,分别获取 'SLACK_MCP_XOXC_TOKEN' 和 'SLACK_MCP_XOXD_TOKEN'。
  2. 选择安装方式:
    • Docker: 如果选择 Docker 安装,请确保已安装 Docker 环境。按照 README.md 文件 "2.1. Docker" 步骤,设置环境变量并运行 Docker 命令。
    • Docker Compose: 如果选择 Docker Compose 安装,请确保已安装 Docker Compose 环境。按照 README.md 文件 "2.2. Docker Compose" 步骤,下载 'docker-compose.yml' 和 '.env.dist' 文件,配置 '.env' 文件,并运行 'docker-compose up -d' 命令。
  3. (可选) 配置 TLS 和暴露到公网: 如果需要通过 HTTPS 访问 SSE 接口,可以参考 README.md 文件 "2.2.1 TLS and Exposing to the Internet" 步骤,使用 'ngrok' 等工具进行配置。

服务器配置

MCP 服务器需要配置在 MCP 客户端的配置文件中,以 'claude_desktop_config.json' 为例,配置示例如下:

Option 1: 使用 'stdio' 传输 (推荐本地调试使用)

{
  "mcpServers": {
    "slack": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SLACK_MCP_XOXC_TOKEN",
        "-e",
        "SLACK_MCP_XOXD_TOKEN",
        "slack-mcp-server",
        "--transport",
        "stdio"
      ],
      "env": {
        "SLACK_MCP_XOXC_TOKEN": "YOUR_SLACK_MCP_XOXC_TOKEN",  // 替换为你的 SLACK_MCP_XOXC_TOKEN
        "SLACK_MCP_XOXD_TOKEN": "YOUR_SLACK_MCP_XOXD_TOKEN"   // 替换为你的 SLACK_MCP_XOXD_TOKEN
      }
    }
  }
}

Option 2: 使用 'sse' 传输 (推荐远程部署使用) 首先确保 MCP 服务器已通过 Docker Compose 或其他方式启动,并监听在指定端口(默认为 3001)。

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://YOUR_SERVER_IP:3001/sse",  // 替换为你的服务器 IP 或域名和端口
        "--header",
        "Authorization: Bearer YOUR_SLACK_MCP_SSE_API_KEY" // 替换为你的 SLACK_MCP_SSE_API_KEY (如果配置了的话)
      ],
      "env": {
        "SLACK_MCP_SSE_API_KEY": "YOUR_SLACK_MCP_SSE_API_KEY" // 替换为你的 SLACK_MCP_SSE_API_KEY (如果配置了的话)
      }
    }
  }
}

配置参数说明:

  • 'server name': 'slack' (用户自定义的服务名称)
  • 'command': 运行 MCP 服务器的命令,例如 'docker' 或 'npx'。
  • 'args': 传递给 'command' 的参数列表。
    • 'stdio' 传输: 包含 Docker 运行参数、环境变量传递参数、镜像名称 'slack-mcp-server' 和传输协议参数 '--transport stdio'。
    • 'sse' 传输: 使用 'mcp-remote' 工具连接到远程 SSE 服务器,包含服务器地址 'https://YOUR_SERVER_IP:3001/sse' 和鉴权 Header。
  • 'env': 环境变量配置。
    • 'stdio' 传输: 需要配置 'SLACK_MCP_XOXC_TOKEN' 和 'SLACK_MCP_XOXD_TOKEN' 环境变量。
    • 'sse' 传输: 如果 SSE 服务器配置了 API Key 鉴权,需要配置 'SLACK_MCP_SSE_API_KEY' 环境变量。

注意: 请将 'YOUR_SLACK_MCP_XOXC_TOKEN', 'YOUR_SLACK_MCP_XOXD_TOKEN', 'YOUR_SERVER_IP', 'YOUR_SLACK_MCP_SSE_API_KEY' 替换为实际的值。

基本使用方法

配置完成后,LLM 客户端即可通过 MCP 协议与 Slack MCP Server 进行交互。

目前该服务器提供了一个工具 'conversations.history',用于获取 Slack 频道的消息记录。

例如,在 LLM 客户端中,可以调用该工具并指定 'channel' 参数来获取特定频道的消息历史。工具的具体参数和使用方法请参考仓库 README.md 文件或工具的描述信息。

{
  "action": "call-tool",
  "tool_name": "conversations.history",
  "params": {
    "arguments": {
      "channel": "YOUR_SLACK_CHANNEL_ID" // 替换为你的 Slack 频道 ID
    }
  }
}

注意: 'YOUR_SLACK_CHANNEL_ID' 需要替换为实际的 Slack 频道 ID。

调试工具

可以使用仓库提供的调试工具 'inspector' 进行 MCP 服务器的调试和测试,具体方法请参考 README.md 文件 "Debugging Tools" 章节。

信息

分类

通信与社交