使用说明
项目简介
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 长时间等待。
安装步骤
- 克隆仓库:
首先,你需要将 GitHub 仓库克隆到本地:git clone https://github.com/emiliobool/MCP-Relay.git cd MCP-Relay - 安装依赖:
确保你已经安装了 Node.js 和 npm (或 yarn)。然后,在项目根目录下运行命令安装项目依赖:npm install - 构建项目:
运行构建命令,将 TypeScript 代码编译为 JavaScript 代码:npm run build - 配置 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 客户端。
信息
分类
通信与社交