使用说明

项目简介

Discord Relay 是一个 MCP 服务器,旨在桥接大型语言模型 (LLM) 与 Discord 平台。它提供了一个名为 'send-message' 的工具,允许 LLM 客户端通过此服务器向指定的 Discord 频道发送消息(包括通知和 Prompt),并能接收来自 Discord 用户的回复。这使得 LLM 应用能够利用 Discord 作为交互界面,进行信息传递和用户互动。

主要功能点

  • 发送 Discord 消息: 支持 LLM 发送两种类型的消息到 Discord 频道:
    • 通知 (notification): 单向消息,用于向 Discord 频道发送通知类信息,无需等待回复。
    • Prompt (prompt): 双向消息,用于向 Discord 频道发送提问或指令,并等待用户在 Discord 频道内的回复。Prompt 消息可以包含操作按钮,方便用户快速选择回复。
  • 接收 Discord 响应: 对于 Prompt 消息,服务器能够监听 Discord 频道内的用户回复(包括文本消息和按钮点击),并将用户的响应传递回 LLM 客户端。
  • 支持操作按钮: Prompt 消息可以配置多个操作按钮,用户可以通过点击按钮进行快速回复。
  • Prompt 超时机制: 可以为 Prompt 消息设置超时时间,如果在指定时间内未收到用户回复,Prompt 将自动失败,避免 LLM 长时间等待。

安装步骤

  1. 克隆仓库:
    首先,你需要将 GitHub 仓库克隆到本地:
    git clone https://github.com/emiliobool/MCP-Relay.git
    cd MCP-Relay
  2. 安装依赖:
    确保你已经安装了 Node.js 和 npm (或 yarn)。然后,在项目根目录下运行命令安装项目依赖:
    npm install
  3. 构建项目:
    运行构建命令,将 TypeScript 代码编译为 JavaScript 代码:
    npm run build
  4. 配置 Discord Bot: 按照仓库 README.md 文件中的 "Setup Instructions" 步骤,完成 Discord Bot 的创建、授权和频道 ID 的获取。这包括:
    • 创建 Discord 应用程序和 Bot
    • 启用 Bot 的必要权限 (Message Content Intent, Server Members Intent, Presence Intent)
    • 邀请 Bot 加入你的 Discord 服务器
    • 获取目标 Discord 频道的 Channel ID

服务器配置

为了让 MCP 客户端能够连接到 Discord Relay 服务器,你需要在 MCP 客户端的配置文件中添加服务器配置信息。以下是一个 JSON 格式的配置示例,你需要根据你的实际情况进行修改:

{
    "serverName": "discord-relay",
    "command": "node",
    "args": [
        "/ABSOLUTE/PATH/TO/MCP-Relay/build/index.js"  // 将 "/ABSOLUTE/PATH/TO/MCP-Relay" 替换为你的 MCP-Relay 项目的绝对路径
    ],
    "env": {
        "DISCORD_TOKEN": "YOUR_DISCORD_BOT_TOKEN",      // 将 "YOUR_DISCORD_BOT_TOKEN" 替换为你的 Discord Bot Token
        "DISCORD_CHANNEL_ID": "YOUR_DISCORD_CHANNEL_ID" // 将 "YOUR_DISCORD_CHANNEL_ID" 替换为你的 Discord 频道 ID
    }
}

配置参数说明:

  • 'serverName': 服务器名称,可以自定义,用于在 MCP 客户端中标识此服务器。例如: "discord-relay"。
  • 'command': 启动服务器的命令,通常为 "node"。
  • 'args': 启动服务器命令的参数,指向服务器入口文件。你需要将 '/ABSOLUTE/PATH/TO/MCP-Relay/build/index.js' 替换为 你本地 MCP-Relay 项目 'build/index.js' 文件的绝对路径
  • 'env': 环境变量配置,用于传递 Discord Bot 的 Token 和 Channel ID。
    • 'DISCORD_TOKEN': 必须替换为你在 Discord 开发者平台获取的 Bot Token
    • 'DISCORD_CHANNEL_ID': 必须替换为你想要进行消息 relay 的 Discord 频道 ID

注意: 请务必使用 绝对路径 配置 'args' 中的文件路径,并正确填写 'env' 中的 'DISCORD_TOKEN' 和 'DISCORD_CHANNEL_ID'。

基本使用方法

配置完成后,启动 MCP 客户端,客户端将自动连接到 Discord Relay 服务器。你可以通过 MCP 客户端调用 'discord-relay/send-message' 工具来向 Discord 频道发送消息。

发送通知 (Notification) 示例:

{
  "tool_call": {
    "tool_name": "discord-relay/send-message",
    "parameters": {
      "type": "notification",
      "title": "服务器状态",
      "content": "服务器已成功启动并运行!"
    }
  }
}

发送 Prompt (Prompt) 示例 (带操作按钮):

{
  "tool_call": {
    "tool_name": "discord-relay/send-message",
    "parameters": {
      "type": "prompt",
      "title": "请选择操作",
      "content": "你想要执行哪个操作?",
      "actions": [
        { "label": "操作 A", "value": "action_a" },
        { "label": "操作 B", "value": "action_b" }
      ],
      "timeout": 30000 // 设置 30 秒超时时间 (可选)
    }
  }
}

当用户在 Discord 频道中点击按钮或发送文本消息回复 Prompt 时,服务器会将响应数据返回给 MCP 客户端。

信息

分类

通信与社交