使用说明

项目简介

本项目 'slack-mcp-server' 是一个 Model Context Protocol (MCP) 服务器的实现,旨在作为连接大型语言模型 (LLM) 客户端(如 Claude Desktop)与 Slack 工作区的桥梁。通过此服务器,LLM 可以安全地访问 Slack 的部分功能,例如发送消息到频道以及查询 Slack 用户列表。

主要功能点

  • 发送 Slack 消息: 允许 LLM 通过 'slack_post_message' 工具向指定的 Slack 频道发送消息。
  • 获取 Slack 用户列表: 允许 LLM 通过 'slack_get_users' 工具查询 Slack 工作区中的用户列表。
  • MCP 协议兼容: 基于 '@modelcontextprotocol/sdk' 开发,遵循 MCP 协议标准,可与任何兼容 MCP 协议的客户端进行通信。
  • Stdio 传输: 使用 Stdio 作为默认的传输协议,简化本地开发和部署。

安装步骤

  1. 前提条件: 确保已安装 Node.js 和 npm。
  2. 克隆仓库: 将 'slack-mcp-server' 仓库克隆到本地。
    git clone https://github.com/AVIMBU/slack-mcp-server.git
    cd slack-mcp-server
  3. 安装依赖: 使用 npm 安装项目依赖。
    npm install
  4. 构建项目: 构建 TypeScript 代码到 JavaScript。
    npm run build

服务器配置

要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要提供以下配置信息。请注意,以下配置为 JSON 格式,您需要将其添加到您的 MCP 客户端的服务器配置文件中。

{
  "mcpServers": {
    "mcp-slack-local": {  // 服务器名称,可以自定义
      "command": "node",  // 启动服务器的命令,这里使用 node
      "args": ["/path/to/project/dist/index.js"], // 启动命令的参数,指向编译后的 index.js 文件路径,请替换为您的项目 dist 目录的绝对路径
      "env": {  // 环境变量配置
        "SLACK_BOT_USER_OAUTH_TOKEN": "YOUR_SLACK_BOT_TOKEN", // Slack Bot User OAuth Token,请替换为您的 Slack Bot Token
        "SLACK_TEAM_ID": "YOUR_SLACK_TEAM_ID"  // Slack Team ID,请替换为您的 Slack Team ID
      }
    }
  }
}

配置参数说明:

  • 'mcp-slack-local': 服务器的名称,您可以自定义,用于在 MCP 客户端中标识此服务器。
  • 'command': 运行服务器的命令,通常为 'node',因为这是一个 Node.js 项目。
  • 'args': 命令的参数,指向编译后的 'index.js' 文件。请务必将 '/path/to/project/dist/index.js' 替换为您本地项目 'dist/index.js' 文件的实际绝对路径
  • 'env': 环境变量配置,用于传递 Slack API 密钥和 Team ID。
    • 'SLACK_BOT_USER_OAUTH_TOKEN': 必需。您的 Slack Bot User OAuth Token。您需要在 Slack 应用管理后台创建应用并获取 Bot Token,并为其添加 'chat:write' 和 'users:read' 权限。
    • 'SLACK_TEAM_ID': 必需。您的 Slack 工作区的 Team ID。

基本使用方法

  1. 启动服务器: 在项目根目录下,运行以下命令启动 MCP 服务器。

    node dist/index.js

    或者,如果您在开发环境中,可以使用 'npm run watch' 在监听文件更改的同时自动构建并运行服务器。

    npm run watch
  2. 配置 MCP 客户端: 将上述服务器配置 JSON 添加到您的 MCP 客户端配置文件中,并确保已正确设置 'args' 中的路径和 'env' 中的环境变量。

  3. 在 MCP 客户端中使用: 在 MCP 客户端中,您可以使用以下示例提示来测试功能:

    • 'Can you list all users of my Slack team?' (调用 'slack_get_users' 工具)
    • 'Can you send a welcome message to my Slack Channel with the ID '<channel id>'?' (调用 'slack_post_message' 工具,请替换 '<channel id>' 为实际的 Slack 频道 ID)

    客户端会将这些自然语言指令转换为对 MCP 服务器的工具调用请求,服务器会执行相应的 Slack API 操作并将结果返回给客户端。

信息

分类

通信与社交