项目简介
'discord-agent-mcp' 是一个基于 Model Context Protocol (MCP) 构建的 Discord 机器人服务器,旨在为大型语言模型 (LLM) 客户端提供与 Discord API 交互的能力。它将复杂的 Discord 操作封装成标准化的工具、资源和 Prompt 模板,使 AI 助手能够安全、高效地执行消息发送、频道管理、成员管理、表情和贴纸操作等任务,从而实现 Discord 服务器的智能化管理和自动化。
主要功能点
- 丰富的 Discord 工具: 提供超过50个工具,全面覆盖 Discord API 功能,包括消息发送、频道/线程管理、成员/角色管理、服务器设置、内容审核以及表情和贴纸操作。
- MCP 协议兼容: 完全遵循 Model Context Protocol 标准,可与任何兼容 MCP 的 LLM 客户端(如 Anthropic 的 Claude Code CLI)无缝集成。
- 持久连接与高可用: 内置鲁棒的 Discord.js 客户端,支持自动重连机制,确保 Discord 服务稳定运行。
- 灵活的部署选项: 支持本地运行、Docker 容器化部署以及 Kubernetes 集群部署,满足不同环境的需求。
- 多种传输协议: 支持 HTTP 和 Stdio 两种通信模式,方便客户端选择最佳连接方式。
安装步骤
- 克隆仓库: 在您的终端中执行以下命令,克隆项目仓库:
git clone https://github.com/aj-geddes/discord-agent-mcp.git cd discord-agent-mcp - 安装依赖: 使用 npm 或 yarn 安装项目所需的依赖包:
npm install - 配置 Discord 机器人:
- 访问 Discord 开发者门户,创建一个新的应用并添加一个机器人。
- 在机器人设置中获取您的 机器人 Token。
- 在机器人设置中启用必要的 Privileged Gateway Intents (Presence Intent, Server Members Intent, Message Content Intent)。
- 使用 OAuth2 URL Generator 生成邀请链接,将机器人邀请到您的服务器并授予所需权限(例如:管理频道、管理角色、发送消息等)。
- 配置环境变量: 复制 '.env.example' 文件到 '.env',然后编辑 '.env' 文件,填入您的 Discord 机器人 Token。您也可以根据需要调整传输模式、端口和日志级别:
'.env' 文件内容示例:cp .env.example .env # 编辑 .env 文件DISCORD_TOKEN=your_bot_token_here TRANSPORT_MODE=http # 或设置为 stdio HTTP_PORT=3000 LOG_LEVEL=info LOG_FORMAT=json - 编译项目: 执行构建命令,将 TypeScript 代码编译为 JavaScript:
npm run build - 启动 MCP 服务器: 运行以下命令启动服务器:
服务器将默认在 'http://localhost:3000/mcp' (HTTP 模式) 或通过标准输入/输出 (Stdio 模式) 运行。npm start
服务器配置
MCP 客户端需要知道如何连接并识别此服务器。以下是您需要提供给 MCP 客户端的关键配置信息:
- 服务器名称 (Server Name): 'discord-agent'
- 这是一个用户友好的名称或别名,MCP 客户端会用它来引用此服务器。虽然服务器内部可能使用 'discord-mcp-server' 作为默认名称,但 'discord-agent' 是在 Claude Code 等客户端集成时通常使用的名称。
- 传输协议 (Transport Protocol):
- HTTP 模式: 'http'
- 当 'TRANSPORT_MODE' 设置为 'http' 时使用。
- Stdio 模式: 'stdio'
- 当 'TRANSPORT_MODE' 设置为 'stdio' 时使用。
- HTTP 模式: 'http'
- 连接地址 (URL): 'http://localhost:3000/mcp'
- 仅适用于 HTTP 模式。如果您的 MCP 服务器运行在不同的主机或端口上,请相应修改此 URL。
- 运行命令 (Command): 'npm'
- 仅适用于 Stdio 模式。这是 MCP 客户端需要执行的命令,以启动此 MCP 服务器进程并进行通信。
- 命令参数 (Args): 'start'
- 仅适用于 Stdio 模式。这是传递给 'npm' 命令的参数,用于启动服务器。
请注意:具体的 MCP 客户端配置界面和格式可能有所不同,请根据您使用的客户端工具要求填写上述信息。例如,某些客户端可能会要求您将这些信息组织成 JSON 格式。
基本使用方法
- 检查服务器健康状态 (HTTP 模式): 打开终端,执行以下命令:
如果服务器正常运行,您将收到包含状态信息的 JSON 响应。curl http://localhost:3000/health - 列出可用工具 (HTTP 模式): 打开终端,执行以下命令,列出所有可用的 Discord 管理工具:
您将看到一个包含所有 Discord 工具及其描述和参数的列表。curl -X POST http://localhost:3000/mcp \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq - 通过 MCP 客户端调用工具: 使用任何兼容 MCP 的客户端库或命令行工具(例如 Anthropic 的 Claude Code CLI)连接到此服务器。
- 示例 (使用 Claude Code CLI):
- 确保您已启动 'discord-agent-mcp' 服务器。
- 在您的终端中,将此 MCP 服务器添加到 Claude Code CLI 中:
claude mcp add --transport http discord-agent http://localhost:3000/mcp - 验证服务器已添加:
您应该会看到 'discord-agent: http://localhost:3000/mcp (HTTP)' 条目。claude mcp list - 现在,在您的 Claude Code 对话中,AI 即可直接使用 'mcp__discord-agent__' 为前缀的 Discord 工具,例如 'mcp__discord-agent__send_message'、'mcp__discord-agent__list_channels' 等,以实现对 Discord 服务器的智能管理。
- 示例 (使用 Claude Code CLI):
信息
分类
通信与社交