mcpField
D
discord-management-mcp

discord-management-mcp

本地服务
github.com/TheStreamCode通信协作0今天更新

关于 discord-management-mcp

discord-management-mcp 是用于检查、备份和管理 Discord 服务器的本地 MCP 服务。它提供多类管理工具,并为变更和恢复操作设置确认与备份防护。

主要功能

  1. 01检查服务器、成员和审计数据
  2. 02管理频道、角色和服务器设置
  3. 03审核成员并配置 AutoMod
  4. 04创建 JSON 备份并比较快照
  5. 05规划并执行受保护的恢复
  6. 06变更操作要求确认和理由

适用场景

  1. 01变更服务器设置前创建备份
  2. 02应用变更前检查计划
  3. 03恢复受支持的角色和频道设置
  4. 04通过审计理由管理服务器

MCP 相关

向本地 stdio MCP 客户端提供 54 项 Discord 管理、审核、备份和恢复规划工具。变更操作需明确确认并填写审计理由;高影响操作还需匹配的服务器备份或明确豁免确认。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"thestreamcode-discord-management": {
"command": "npx",
"args": [
"-y",
"discord-management-mcp"
],
"env": {
"DISCORD_TOKEN": "<DISCORD_TOKEN>",
"BACKUP_DIR": "<BACKUP_DIR>",
"LOG_LEVEL": "<LOG_LEVEL>",
"ENABLE_MESSAGE_CONTENT": "<ENABLE_MESSAGE_CONTENT>",
"ENABLE_GUILD_MEMBERS": "<ENABLE_GUILD_MEMBERS>"
}
}
}
}
启动命令npx -y discord-management-mcp
需要配置的环境变量
DISCORD_TOKEN密钥Discord bot token from Developer Portal > Bot > Token.
BACKUP_DIRRelative directory for local JSON backups. It must stay inside the project directory.
LOG_LEVELStderr log level: error, warn, info, or debug.
ENABLE_MESSAGE_CONTENTEnables message-content tools and requires the Discord Message Content intent.
ENABLE_GUILD_MEMBERSEnables the Guild Members gateway intent.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmdiscord-management-mcp0.2.0

工具

54

收录的工具列表 · 更新于 1 周前

此工具无需参数。

详细介绍

Discord 管理 MCP

从任意 MCP 客户端安全地管理 Discord

CI License npm

Discord Management MCP 主视觉图

Discord Management MCP 是一个本地 Model Context Protocol(MCP)服务,用于检查、备份和管理 Discord 服务器。它通过 stdio 运行,将机器人令牌和备份文件保存在操作者的计算机上,并在每项变更操作前设置确认、备份和恢复防护。该服务提供 54 个工具,涵盖服务器清单、审核、角色、频道、服务器设置、备份和恢复规划。

它适用于任何支持本地 stdio 服务的 MCP 客户端,包括 Claude Desktop、Claude Code、Cursor、VS Code、Codex、Windsurf 和 Cline。本项目由独立开发,与 Discord Inc. 无关联,也未获其认可、赞助或批准。

不熟悉 Discord 机器人?设置与首次使用指南将引导你创建应用、使用正确的权限邀请机器人、复制服务器 ID、注册客户端、验证连接,并执行首次安全备份和恢复。

安装

发布的包只需一条命令即可运行:

npx --yes discord-management-mcp

该包以 discord-management-mcp 的名称发布在 npm 上,并通过 package.json 和 server.json 声明 io.github.TheStreamCode/discord-management-mcp 的 MCP 注册表元数据。

在客户端中注册

每个客户端都需要相同的命令、参数和 DISCORD_TOKEN 环境变量。将以下条目等效的配置粘贴到客户端的 MCP 配置中:

{
  "mcpServers": {
    "discord-management": {
      "command": "npx",
      "args": ["--yes", "discord-management-mcp"],
      "env": {
        "DISCORD_TOKEN": "your_bot_token"
      }
    }
  }
}
客户端注册方式
Claude Desktop将上述条目添加到 MCP 服务配置中。
Claude Code添加具有相同命令和参数的本地 stdio 服务。
Cursor将上述条目添加到 MCP 配置中。
VS Code在客户端的 MCP 配置中添加相同的命令和参数。
Codex添加具有相同命令和参数的 stdio 服务条目。
Windsurf将上述条目添加到 MCP 配置中。
Cline在 MCP 设置面板中添加该服务。

Claude Desktop、Cursor、Windsurf 和 Cline 支持上方所示的 mcpServers JSON 结构。使用其他配置架构的客户端也支持相同的 command、args 和 env 值。具体文件或命令请参阅各客户端自己的文档。

设置

简要步骤如下,完整流程请参阅设置与首次使用:

  1. 创建机器人。 Developer Portal > New Application > Bot > Reset Token。该令牌是服务唯一需要的凭据。不要使用 Application ID、Public Key 或 OAuth2 client secret。
  2. 邀请机器人。 OAuth2 > URL Generator > 选择 bot 范围,并添加所需权限。建议从 View Channels、Manage Channels、Manage Roles、Manage Server、View Audit Log,以及计划使用的审核权限开始。然后将机器人角色拖到它需要编辑的角色上方。
  3. 复制服务器 ID。 启用 Developer Mode,右键点击服务器图标,然后选择 Copy Server ID。这个数字是 guildId 参数,不是机器人的应用 ID。
  4. 注册客户端。 使用向客户端注册中的配置,并在 env 中设置 DISCORD_TOKEN;或者将令牌放入工作目录下的 .env.local。
  5. 验证并备份。 让客户端运行 discord_list_guilds,然后针对你的服务器运行 discord_backup_create,并查看 coverage.channels.complete。

首次请求示例:

Use discord_list_guilds, then discord_backup_create for the server I name, and report the backup ID and coverage.

之后只通过受保护的流程进行更改:创建备份、检查目标对象、应用一项小改动,并确认结果。每次变更都需要提供审核原因:

{
  "guildId": "123456789012345678",
  "confirm": true,
  "reason": "Create the approved community announcements channel"
}

高影响操作还需要提供与服务器匹配的 backupId,除非操作员明确接受 allowWithoutBackup: true。工具目录列出了每个变更工具的具体策略。

为什么选择它

许多 Discord MCP 服务仅支持只读检查或预览更改,有些还会通过托管服务传递机器人令牌。Discord Management MCP 可在本地执行更改,但仅通过保护与恢复流程进行:

能力典型的仅预览服务Discord Management MCP
只读检查是是,提供 23 个只读工具
执行更改否是,提供 31 个变更与审核工具
风险更改前进行本地备份很少JSON schema v2 快照,包含频道覆盖情况
恢复否先生成带计划哈希的计划,再应用并进行预恢复备份
回滚保证不提供尽力恢复,并如实报告 NOT_RESTORED 警告
数据路径通常为托管服务仅限本地 stdio

实际意义如下:

  • 专为本地运行而设计。 机器人令牌、快照、恢复计划和 stdio 传输都保留在操作员的计算机上。没有托管中继,也没有公共 HTTP 监听器。
  • 先预览,再应用。 在进行任何更改之前,可以比较备份差异并生成恢复计划;计划会携带一个哈希值,供应用时验证。
  • 以备份为恢复保障。 高风险更改可指定同一服务器的快照;恢复应用会在首次更改 Discord 之前写入新的预恢复备份。
  • 明确的安全策略矩阵。 每次 Discord 变更都需要 confirm: true 和原因。列出的高影响工具需要同一服务器的备份。紧急事件处置操作无需备份也可使用。
  • 如实报告恢复情况。 恢复会报告已跳过、有损、已应用和失败的操作,而不会承诺不可能实现的完整回滚。

备份与恢复

恢复流程分为三个步骤:

  1. discord_backup_create 会以原子方式将 JSON 快照写入 BACKUP_DIR,剔除邀请代码、Webhook 令牌和其他机密,并在 coverage.channels 中记录频道覆盖范围。
  2. discord_backup_diff 和 discord_backup_restore_plan 会显示将发生哪些更改。计划包含 planHash,以及针对已捕获但 Discord 无法重建的部分发出的 NOT_RESTORED 警告。
  3. discord_backup_restore_apply 可以验证 expectedPlanHash,先创建恢复前备份,然后保守地应用受支持的角色和频道字段。删除操作仍需显式启用。

删除并重新创建后,Discord 无法恢复原始 ID、消息或审计日志历史记录、完全相同的邀请代码、Webhook 令牌,以及所有社区和发现设置。服务会如实报告这些限制,而不是将其隐藏。完整说明请参阅安全与备份。

工具覆盖范围

服务会注册 54 个工具。所有工具名称请参阅工具目录,备份策略请参阅防护矩阵。

领域工具数
服务器、成员和审计清单17
备份与恢复6
频道6
角色7
管理与 AutoMod13
服务器配置5
总计54

只读工具会标注为只读,且从不需要确认。会修改 Discord 的工具需要 confirm: true 和非空审计原因;所有修改操作都会通过共享队列运行,以避免交错执行。discord_backup_create 只会写入本地快照,无需确认。

安全模型

  • 每项 Discord 修改操作都需要 confirm: true 和非空的 reason;在 Discord 支持审计日志原因的地方,此原因会传递给 Discord。
  • 高影响工具需要提供来自同一服务器的备份,或明确确认 allowWithoutBackup: true。
  • discord_set_incident_actions 有意豁免此要求:它用于应对突袭,其更改可撤销。
  • 恢复应用会自行创建恢复前备份,并在每种错误情况下保留其 ID。
  • 备份写入采用原子操作;备份路径限定在项目目录内,并拒绝符号链接和 junction。
  • 只读工具均以只读方式实现并标注。

防护矩阵、频道覆盖范围和恢复行为请参阅安全与备份;运行时模型请参阅设计与信任边界。请通过 SECURITY.md 私下报告漏洞。

要求

  • Node.js 24 或更高版本。
  • 一个带有 Bot 令牌的 Discord 应用。
  • 邀请到目标服务器的 Bot,且仅授予预期工具所需的权限。

ENABLE_MESSAGE_CONTENT 和 ENABLE_GUILD_MEMBERS 均为可选启用项,且需要在 Discord Developer Portal 中启用相应的特权意图。自 2026-06-10 起,Discord 会在用户数达到 10,000(而非 100 个服务器)时审核特权意图的使用情况,获批应用必须每年重新申请。详情请参阅配置。

配置

首先从进程环境中读取配置,然后从工作目录中的 .env.local 读取。布尔值接受 true/false、yes/no、on/off 或 1/0。

变量用途默认值
DISCORD_TOKEN来自 Developer Portal > Bot > Token 的 Discord Bot 令牌必需
BACKUP_DIR本地 JSON 备份的相对目录;必须位于项目目录内backups
LOG_LEVEL标准错误日志级别:error、warn、info 或 debug;日志为 JSON 行格式info
ENABLE_MESSAGE_CONTENT启用消息内容工具,并要求启用 Discord Message Content 意图false
ENABLE_GUILD_MEMBERS为需要此意图的工作流启用 Guild Members 网关意图false

令牌规则、日志行为和特权意图设置请参阅配置参考。

隐私与安全

所有内容都通过 stdio 在本地运行:机器人令牌、备份文件、恢复计划以及服务进程本身都不会离开操作者的计算机。所有变更都需要明确确认;在制定计划或恢复之前,备份还会经过大小、深度、结构、符号链接和服务器身份验证。恢复操作会在首次修改 Discord 之前创建恢复前备份,并在操作失败时如实停止。有关完整模型,请参阅设计与信任边界和安全性与备份;有关私下报告漏洞的信息,请参阅 SECURITY.md。

故障排除

服务器因缺少或无效的 DISCORD_TOKEN 而退出

在进程环境中或工作目录下的 .env.local 中设置 Bot Token。如果某个值看起来像 Discord Application Public Key,系统会明确拒绝:请使用 Bot Token,而不是 Application ID、Public Key 或 OAuth2 客户端密钥。

返回的消息内容为空

消息内容工具需要同时设置 ENABLE_MESSAGE_CONTENT=true,并在 Discord Developer Portal 中启用 Message Content Intent。如果缺少其中任何一项,Discord 可能会返回空的 content、embeds 和 attachments 字段。更改任一设置后,都要重启服务器。如果应用即将达到审核门槛,请记住,特权 Intent 访问权限会在用户数达到 10,000 时接受审核,并且必须每年续期。

变更在到达 Discord 之前被拒绝

变更工具需要 confirm: true 和非空的 reason。高影响工具还需要提供来自同一服务器的 backupId,或明确确认 allowWithoutBackup: true。紧急情况下使用的 discord_set_incident_actions 是例外。重试前请查看防护矩阵。

备份或频道列表中缺少频道

机器人只能备份其有权查看的频道。从 2026-11-16 开始,Discord 会从 GET /guilds/{id}/channels 中省略机器人无权查看的频道,网关负载中也可能包含经过混淆处理的频道对象。备份会在 coverage.channels 中记录这一情况,并在覆盖不完整时发出警告。对于重要频道,请授予 VIEW_CHANNEL 权限;并将 complete: false 视为部分回滚点。请参阅频道覆盖范围与混淆处理。

恢复报告显示已跳过或有损操作

Discord 无法重建原始 ID、消息或审计日志历史记录、完全相同的邀请码、Webhook 令牌、托管的集成对象,也无法重建所有社区和发现设置。请检查计划的 planHash 和其中的 NOT_RESTORED 警告,然后在重试前查看报告中的操作。

日志过于简略或过于冗长

将 LOG_LEVEL 设置为 error、warn、info 或 debug。日志以 JSON 行的形式写入 stderr,因此 stdout 保留给 MCP 协议流量。诊断工具调用时使用 debug,需要安静运行时使用 error。

开发

要求:Node.js 24 或更高版本,以及与 lockfile 匹配的 npm。

git clone https://github.com/TheStreamCode/discord-management-mcp.git
cd discord-management-mcp
npm ci
npm run lint
npm run typecheck
npm test
npm run build
npm run verify:mcp
npm run preflight
npm run pack:check
npm audit --omit=dev --audit-level=high

npm run verify:mcp 会使用占位令牌通过 stdio 启动构建后的服务器,并检查其声明的 MCP 接口:54 个工具、确定性的工具列表、标题、描述、输入和输出架构,以及注释提示。它不会调用 Discord API。

测试使用模拟对象,不得联系 Discord。常规验证绝不会执行实时变更。仓库将工程指导保存在 AGENTS.md 中;该文件不会随 npm 包发布。贡献规则请参阅 CONTRIBUTING.md。

支持

请参阅 SUPPORT.md。可通过 GitHub Issues 提交可复现的错误和功能提案,并通过 GitHub Security Advisories 私下报告漏洞。

贡献

请参阅 CONTRIBUTING.md。拉取请求必须通过 npm run preflight、npm run verify:mcp 和必需的 CI 检查。

许可证

MIT,详见 LICENSE。版权所有 (c) 2026 Michael Gasperini (Mikesoft)。

本项目为独立开发,与 Discord Inc. 无关,也未获得其认可、赞助或批准。Discord 是 Discord Inc. 的商标。适用的 Discord 条款和政策请参阅 NOTICE。


由 Michael Gasperini (Mikesoft) 维护。 如果本项目能帮助你安全地管理 Discord 社区,不妨考虑 赞助其维护工作。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。