Discord服务器管理工具

一个通过自然语言命令管理Discord服务器的工具,支持139种管理功能,包括角色、频道、成员、消息等。

  • by HardHeadHackerHead
  • TypeScript
  • 本地部署
  • 36 星标
  • 更新于
在 GitHub 查看 HardHeadHackerHead/discord-mcp

使用说明

@quadslab.io/不一致mcp

通过Claude Code、Claude Co-Work、Claude Desktop、Cursor或Windsurf管理您的整个Discord服务器。 139个管理工具,涵盖20个类别——角色、渠道、成员、消息、线程、审核、论坛、阶段、Webhook、事件、投票、DM等。用简单的英语和你的人工智能说话。

建造于 QuadsLab.I | Discord 的中文翻译是“不和谐”或“纷争”。 | npm

如果你觉得这很有用,可以考虑在GitHub上给它一颗星——它可以帮助其他人发现这个项目!


60秒内完成设置

一个命令。没有手动配置文件。没有复制ID。

npx @quadslab.io/discord-mcp init

交互式向导将引导您完成所有操作:

它将:

  1. 指导您创建Discord机器人(或使用现有机器人)
  2. 实时验证您的机器人令牌
  3. 自动生成具有所有必需权限的邀请URL
  4. 让您选择要管理的服务器
  5. 自动检测已安装的MCP客户端并为您编写配置

与每个MCP客户合作

向导会自动检测您安装了哪些客户端:

  Detected MCP clients:

  ● Claude Code      .mcp.json
  ● Claude Desktop   ~/Library/Application Support/Claude/claude_desktop_config.json
  ● Cursor           ~/.cursor/mcp.json
  ○ Windsurf         (not detected)

  ? Which client(s) to configure?
  1. Claude Code (detected)
  2. Claude Desktop (detected)
  3. Cursor (detected)
  4. Windsurf (not found)
  5. All detected (3 clients)
  6. Skip (show config to copy manually)

选择一个、多个或“全部检测到”以一次配置所有内容。

验证您的设置

npx @quadslab.io/discord-mcp check
  QuadsLab.io [discord-mcp] — Health Check
  ────────────────────────────────────────────────────

  Token ............ present
  Bot .............. MyBot#1234
  Server ........... My Gaming Server (1,024 members)

  Permissions
  ────────────────────────────────────────────────────

  ✔ Manage Roles .............. yes
  ✔ Manage Channels ........... yes
  ✔ Kick Members .............. yes
  ✔ Ban Members ............... yes
  ...

  ██████████████████████████████  100% (24/24)

  ✔ All 24 permissions granted

  ┌──────────────────────────────────────────────────┐
  │ MCP server is ready!                             │
  │ Run discord-mcp or use via .mcp.json in Claude   │
  └──────────────────────────────────────────────────┘

你能用它做什么?

一旦连接到Claude Code或Claude Co-Work,只需用自然语言提问:

  • “以#general的方式发送欢迎信息”
  • “锁定#公告频道”
  • “谁对#server guide中的最后一条消息做出了反应?”
  • “创建一个名为VIP的金色角色,并将其分配给@john”
  • “显示过去24小时的审核日志”
  • “设置automod规则以阻止#general中的链接”
  • “显示“API讨论”线程中的最后20条消息”
  • “在‘bug报告’线程中发送回复,说我们正在调查”
  • “按#general列出所有存档的线程”
  • “在#feedback中创建一个名为Bug Reports的论坛帖子”
  • “垃圾邮件发送者发送垃圾邮件超时1小时”
  • “列出所有Webhook并删除未使用的Webhook”
  • “在舞台频道安排周五晚上8点的社区活动”
  • “批量删除#bot测试中的最后50条消息”
  • “让每个具有成员角色的人都可以访问#private channel”
  • “在#general中创建一个民意调查,询问周五玩哪款游戏”
  • “DM所有版主关于即将到来的服务器事件”
  • “将机器人的状态设置为‘监视500多名成员’”
  • “告诉我谁现在在游戏语音频道”

Claude使用模糊匹配自动解析通道、角色和成员名称,无需查找ID。


特性

  • 20个类别的139个工具 --无需离开终端即可进行全面的Discord服务器管理
  • 交互式设置向导 — npx init 在一分钟内引导您完成机器人创建、令牌验证和配置
  • 健康检查和权限审核 — npx check 使用可视化进度条验证您的令牌、服务器访问权限和所有24个必需的权限
  • 模糊名称解析 --类型 "bot testing", "bot-testing",或 "bottesting" 正确解决;无需查找ID
  • 线程感知消息传递 --所有消息工具(发送、编辑、固定、反应等)都在线程和通道中工作,不需要单独的工具
  • 零配置名称匹配 --通道、角色和成员都是按名称、ID或提及格式自动解析的
  • 预缓存的服务器数据 -所有通道、角色和成员都在启动时缓存,以便在没有额外API调用的情况下进行即时查找
  • 结构化JSON响应 --每个工具都返回一致、打印精美的JSON
  • 审计日志集成 --所有修改操作都接受 reason 出现在Discord审核日志中的参数
  • 有用的错误恢复 --失败的查找返回建议(例如,“你的意思是:#general,#bot测试?”)
  • MCP资源 --服务器概览数据的三个只读资源

替代设置(手动)

如果您更喜欢手动配置而不是使用向导:

Manual setup steps

1.创建Discord机器人

跟随 机器人设置指南 在Discord开发者门户中创建一个机器人并获取您的令牌。

2.添加到MCP配置中

添加以下内容 discord 进入客户端的配置文件:

{
  "mcpServers": {
    "discord": {
      "command": "npx",
      "args": ["-y", "@quadslab.io/discord-mcp"],
      "env": {
        "DISCORD_TOKEN": "your-bot-token",
        "DISCORD_GUILD_ID": "your-server-id"
      }
    }
  }
}
客户端 配置文件位置
克劳德代码 .mcp.json 在项目根目录中
克劳德桌面版 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows)
光标 ~/.cursor/mcp.json
帆板运动 ~/.codeium/windsurf/mcp_config.json

3.连接

  • 克劳德代码: 类型 /mcp 连接
  • 克劳德桌面: 重新启动应用程序
  • 光标/风帆: 重新加载窗口
Run from source
git clone https://github.com/HardHeadHackerHead/discord-mcp.git
cd discord-mcp
npm install
cp .env.example .env
# Edit .env with your DISCORD_TOKEN and DISCORD_GUILD_ID
npm run build
npm start

CLI参考

$ npx @quadslab.io/discord-mcp [command]
命令 描述
init 交互式设置向导——创建机器人程序、验证令牌、自动配置克劳德代码/协同工作/桌面/光标/Windsurf
check 健康检查--验证令牌、服务器访问和权限审核
update 检查新版本并清除npx缓存,以便下一次运行获取最新版本
start 启动MCP服务器(未给出命令时的默认设置)
help 显示帮助消息
version 显示版本

通过启动时 .mcp.json (stdin不是TTY),服务器会自动启动,不需要子命令。

更新

您的MCP客户端配置没有固定版本,因此更新很简单:

npx @quadslab.io/discord-mcp update

这将检查npm的最新版本,清除npx缓存,您的下一次MCP客户端启动将自动使用新版本。你的机器人令牌、服务器和客户端配置都被保留了——不需要重新配置。

更新后验证:

npx @quadslab.io/discord-mcp version
npx @quadslab.io/discord-mcp check

工具概述

总结

类别 工具 描述
Guild 2 服务器信息和元数据
角色 11 角色创建、编辑、权限和分配
频道 20 频道创建、编辑、权限和组织
成员 15 成员管理、审核和批量操作
消息 14 发送、编辑、删除、固定和响应消息(也适用于线程)
反应 1 详细的反应数据和反应器信息
服务器管理 16 服务器设置、邀请、禁止、审核日志和集成
线程 15 线程创建、读取、编辑、归档和成员管理
论坛 5 论坛帖子和标签管理
表情符号和贴纸 7 自定义表情符号和贴纸管理
Webhook 4 Webhook的创建、删除和消息传递
计划事件 5 事件创建、编辑和删除
阶段实例 3 阶段通道管理
自动调节 4 自动创建、编辑和删除规则
民意调查 3 创建民意调查,获取结果,提前结束民意调查
直接消息 2 向服务器成员发送DM并嵌入DM
机器人状态 2 设置机器人状态/活动,获取机器人信息
服务器模板 4 列出、创建、删除、同步服务器模板
应用程序命令 4 管理斜线命令(CRUD)
入职 2 获取和编辑服务器入职配置
总计 139

Full tool reference (click to expand)

公会(2个工具)

工具 说明
list_guilds 列出机器人程序所属的所有服务器
get_guild_info 详细的服务器信息——成员数量、渠道、角色、功能、增强层

角色(11个工具)

工具 说明
list_roles 按职位、颜色和成员数量列出所有角色
create_role 使用名称、颜色、提升和可提及选项创建新角色
delete_role 删除角色(具有托管角色保护)
modify_role 更改角色的名称、颜色、提升、提及或职位
get_role_permissions 查看授予角色的所有权限
modify_role_permissions 授予或撤销角色的特定权限
set_role_icon 将Unicode表情符号或图像设置为角色图标(需要提升等级2+)
assign_role 向成员添加角色
remove_role 从成员中删除角色
get_role_members 列出具有特定角色的所有成员
clone_role 复制一个角色及其所有权限和设置

频道(20个工具)

工具 说明
list_channels 按类别列出所有频道
create_text_channel 创建一个新的文本频道,可选择在某个类别中
create_voice_channel 创建具有比特率和用户限制的新语音频道
create_category 创建新的频道类别
create_forum_channel 使用可选标签和默认设置创建新的论坛频道
delete_channel 删除任何频道类型
modify_channel 更改名称、主题、类别、NSFW、职位、用户限制
set_channel_permissions 为频道上的角色或用户设置权限覆盖
view_channel_permissions 查看频道上的所有权限覆盖
lock_channel 拒绝为@everyone发送消息(快速锁定)
unlock_channel 删除@everyone的拒绝发送邮件
set_slowmode 在文本通道上设置速率限制(0-21600秒)
clone_channel 复制具有所有权限和设置的频道
reorder_channels 通过指定新位置重新排序频道
set_voice_region 设置语音通道的RTC区域
follow_announcement_channel 跟随公告频道交叉发布到另一个频道
create_stage_channel 创建新的舞台频道
get_channel_invites 列出特定频道的所有邀请
set_channel_topic 设置或清除频道的主题/描述
get_voice_members 列出当前在语音或舞台频道中的所有成员

成员(15工具)

工具 说明
list_members 列出具有可选角色和搜索筛选器的成员
get_member 详细的成员信息——角色、加入日期、帐户年龄、权限
kick_member 从服务器中踢出成员
ban_member 通过可选消息删除功能禁止会员(0-7天)
unban_member 按用户名或用户ID删除禁令
timeout_member 应用超时(10m、1h、1d、1w)或删除一个
prune_members 删除非活动成员(支持模拟运行和角色筛选)
bulk_assign_role 同时为多个成员分配角色
bulk_remove_role 一次从多个成员中删除角色
set_nickname 更改或重置成员的昵称
move_to_voice 将成员移动到其他语音频道
disconnect_from_voice 断开成员与其语音通道的连接
get_member_permissions 获取成员在特定频道中的有效权限
search_members 使用高级过滤器按用户名、昵称或角色搜索成员
bulk_timeout_members 同时对多个成员应用超时

消息(14个工具)

所有消息工具都在两个常规渠道中工作 和 threads——只需将线程名称或ID作为通道传递即可。

工具 说明
get_messages 从文本频道、语音频道或线程获取最近的消息
get_message 按ID获取包含完整详细信息的单个消息
send_message 发送短信,可选择作为回复
send_embed 发送包含标题、字段、图像和页脚的丰富嵌入
edit_message 编辑机器人之前发送的消息
delete_message 按ID删除单个消息
bulk_delete_messages 一次删除2-100条消息(<14天),可选择按用户筛选
crosspost_message 在公告频道中向以下所有频道发布消息
pin_message 固定消息
unpin_message 不愉快的消息
list_pinned_messages 获取频道中的所有固定消息
add_reaction 将机器人的反应添加到消息中
remove_reaction 从消息中删除机器人的反应
search_messages 按内容、作者或日期范围搜索频道中的邮件

反应(1个工具)

工具 说明
get_reactions 获取消息上的所有反应,包括完整的反应器详细信息——帐户创建日期、服务器加入日期、角色、头像、提升状态。可选择通过表情符号进行过滤。

服务器管理(16个工具)

工具 说明
edit_server 修改服务器名称、描述、验证级别、通知默认值
list_invites 列出所有活动邀请链接,包括使用统计数据和过期时间
create_invite 生成具有可配置的最大年龄、使用和临时标志的新邀请
delete_invite 按代码撤销邀请
get_audit_log 获取审核日志条目,可选择按操作类型或用户进行筛选
list_bans 查看所有被禁止的用户及其原因
get_welcome_screen 获取服务器欢迎屏幕配置
set_welcome_screen 使用描述和特色频道配置欢迎屏幕
get_widget 获取服务器小部件设置
set_widget 配置服务器小部件(启用/禁用、设置频道)
get_vanity_url 获取服务器虚荣URL(需要vanity_URL功能)
list_integrations 列出连接到服务器的所有集成(机器人、应用程序)
delete_integration 从服务器中删除集成
get_server_preview 获取服务器的公开预览信息
set_server_icon 设置或删除URL中的服务器图标
set_server_banner 设置或删除服务器横幅图像(需要增强级别2+)

螺纹(15个工具)

工具 说明
list_threads 列出活动线程,可选择过滤到通道
list_archived_threads 在带有分页的通道中列出公共或私有存档线程
get_thread 获取详细的线程信息——类型、慢模式、自动存档、所有者、URL
get_thread_messages 从分页前后的线程中获取消息
get_thread_pinned_messages 在一个线程中获取所有固定消息
create_thread 从消息或作为独立的公共线程启动线程
edit_thread 编辑线程名称、自动存档持续时间、慢速模式或锁定/存档状态
archive_thread 存档一个线程
unarchive_thread 取消线程存档
delete_thread 删除线程
lock_thread 锁定线程(防止没有存档的新消息)
unlock_thread 解锁线程
list_thread_members 列出一个线程的所有成员
add_thread_member 向线程添加成员
remove_thread_member 从线程中删除成员

论坛(5个工具)

工具 说明
create_forum_post 在论坛频道中创建一个带有可选标签的新帖子(帖子)
list_forum_tags 列出论坛频道上的所有可用标签
create_forum_tag 在论坛频道中添加新标签(每个频道最多20个)
edit_forum_tag 编辑现有论坛标签的名称、表情符号或缓和状态
delete_forum_tag 从论坛频道中删除标签

表情符号和贴纸(7工具)

工具 说明
list_emojis 列出所有带有名称、ID、动画状态和URL的自定义表情符号
create_emoji 从URL上载新的自定义表情符号
delete_emoji 按姓名或ID删除自定义表情符号
rename_emoji 重命名自定义表情符号
list_stickers 列出所有带有描述和格式信息的自定义贴纸
create_sticker 从URL上传新的自定义标签
delete_sticker 按名称或ID删除自定义标签

Webhooks(4个工具)

工具 说明
list_webhooks 列出所有Webhook,可选择筛选到一个频道
create_webhook 在频道上创建一个带有名称和可选头像的webhook
delete_webhook 按ID删除webhook
send_webhook_message 通过webhook发送带有可选名称/头像覆盖的消息

预定事件(5个工具)

工具 说明
list_events 列出所有已安排的事件,包括时间、状态、类型和与会者人数
create_event 创建带有开始/结束时间的语音、舞台或外部事件
edit_event 修改事件的名称、描述、时间或状态
delete_event 删除已安排的事件
get_event_users 列出对活动表示兴趣的用户

阶段实例(3个工具)

工具 说明
list_stage_instances 列出所有活动阶段实例,包括主题和频道信息
start_stage 在舞台频道上用主题启动一个新的舞台实例
end_stage 结束活动阶段实例

自动调节(4个工具)

工具 说明
list_automod_rules 列出所有带有触发器、操作和豁免的automod规则
create_automod_rule 创建规则——关键字过滤器、垃圾邮件检测、关键字预设或提及垃圾邮件
edit_automod_rule 修改规则的关键字、操作、豁免或启用状态
delete_automod_rule 删除automod规则

民意调查(3个工具)

工具 说明
create_poll 在具有多种选择选项和持续时间的频道中创建投票
get_poll_results 获取投票的当前结果和投票计数
end_poll 提前结束投票并最终确定结果

直接消息(2个工具)

工具 说明
send_dm 向服务器成员发送直接消息
send_dm_embed 将丰富的嵌入作为直接消息发送给服务器成员

机器人存在(2个工具)

工具 说明
set_bot_presence 设置机器人的状态和活动(玩、看、听等)
get_bot_info 获取机器人的当前用户信息、状态和连接详细信息

服务器模板(4个工具)

工具 说明
list_templates 列出服务器的所有模板
create_template 从当前服务器配置创建新的服务器模板
delete_template 按代码删除服务器模板
sync_template 将服务器模板与当前服务器状态同步

应用程序命令(4个工具)

工具 说明
list_commands 列出所有已注册的应用程序(斜线)命令
create_command 注册一个包含名称、描述和选项的新斜线命令
edit_command 修改现有的斜线命令
delete_command 删除已注册的斜线命令

入职培训(2个工具)

工具 说明
get_onboarding 获取服务器的入职配置和提示
edit_onboarding 编辑服务器入职设置、提示和默认通道

模糊匹配

所有接受通道、角色或成员名称的工具都使用智能模糊匹配。您永远不需要手动查找ID。决议顺序为:

  1. ID完全匹配 --直接传递Discord雪花ID
  2. 名称完全匹配 不区分大小写
  3. 标准化比赛 --忽略连字符、空格和下划线("bot testing" 火柴 "bot-testing")
  4. 子字符串匹配 --部分名称匹配为0.7+相似性阈值
  5. 线程回退 --如果没有通道匹配,则使用上述相同步骤搜索活动线程
  6. 已存档线程回退 --如果提供了ID,但在活动线程中找不到,则直接获取该线程(包括已存档的线程)

提及格式也会自动处理:

  • 频道: #name 或 <#id>
  • 角色: @name 或 <@&id>
  • 成员: @name 或 <@id> 或 <@!id>

如果没有找到匹配项,错误消息将包括类似名称的建议,以帮助您更正输入。


MCP资源

三个只读资源用于快速服务器概览数据:

URI 描述
discord://server/summary 服务器的文本概述(频道、角色、成员)
discord://server/channels 按类别组织的所有频道的JSON列表
discord://server/roles 按职位排序的所有角色的JSON列表

必需的权限

Discord机器人需要以下权限才能实现完整功能:

类别 权限
将军 管理服务器、管理角色、管理频道、查看审核日志、管理Webhooks、管理事件、管理表情符号和贴纸
文本 发送消息、管理消息、读取消息历史记录、添加反应、使用外部表情符号
语音 移动成员、断开成员连接
节制 Kick会员、Ban会员、温和派会员、管理自动审核

这 init 向导会自动生成一个包含所有这些内容的邀请URL。如果您手动设置,请参阅 机器人设置指南 要选中哪些复选框。

机器人只能在其角色层次结构内运行,不能管理高于其最高角色的角色。

网关意图

这些特权意图必须在 Discord开发者门户:

  • 服务器成员意图 --会员管理所需
  • 消息内容意图 --阅读消息内容所需

故障排除

运行运行状况检查以诊断问题:

npx @quadslab.io/discord-mcp check
Common issues and fixes

“DISCORD_TOKEN未设置”

MCP服务器找不到您的机器人令牌。要么:

  • 跑 npx @quadslab.io/discord-mcp init 自动设置
  • 或者检查你的 .mcp.json /MCP客户端配置具有 DISCORD_TOKEN 在 env 块

“使用操作码8的请求受到速率限制”

不一致率限制了网关连接(通常来自大型服务器上的成员缓存)。服务器会自动重试——如果您仍然看到这种情况,请等待30秒,然后重试。这是一个Discord侧限制,而不是bug。

“角色@未找到所有人”

已在v1.2.2+版本中修复。更新到最新版本:

npx @quadslab.io/discord-mcp@latest init

“缺少访问权限”或“缺少权限”

机器人的角色没有所需的权限。要么:

  • 使用来自的URL重新邀请机器人 npx @quadslab.io/discord-mcp init (包括所有权限)
  • 或前往 服务器设置>角色 并将缺失的权限授予机器人角色
  • 跑 npx @quadslab.io/discord-mcp check 查看到底缺少哪些权限

Bot无法管理特定角色

Discord强制执行角色层次结构——机器人只能管理角色 在......下面 自己的最高作用。将机器人的角色移到更高的位置 服务器设置>角色.

Bot无法读取消息

启用 消息内容意图 在 Discord开发者门户 >Bot选项卡。

“使用了不允许的意图”

启用 服务器成员意图 和 消息内容意图 在 Discord开发者门户 >Bot选项卡。两者都是必需的。

工具工作,但速度慢

由于缓存,启动后的第一次工具调用可能会很慢。后续调用使用缓存的数据,并且应该是即时的。如果所有通话都很慢,请检查您与Discord的网络连接。

.mcp.json 在错误的目录中创建

如果你跑了 init 从桌面或下载,更新到v1.2.3+,它会自动检测到这一点并写入 ~/.claude.json (全局配置)。或者移动 .mcp.json 将文件保存到项目根目录。


建筑

@quadslab.io/discord-mcp/
├── package.json
├── tsconfig.json
├── README.md
├── LICENSE
├── .env.example
├── docs/
│   ├── discord-mcp-server.md    # Full tool reference documentation
│   └── bot-setup-guide.md       # Step-by-step bot creation guide
└── src/
    ├── cli.ts                   # CLI — init wizard, health check, server start
    ├── mcp-server.ts            # MCP server entry — validates env, exports main()
    ├── index.ts                 # Tool/resource registration and MCP request routing
    ├── discord-client.ts        # Discord.js client — intents, caching, rate limit retry
    └── tools/
        ├── index.ts             # Tool registry — routes calls to category handlers
        ├── utils.ts             # Fuzzy matching for channels, roles, members
        ├── guild.ts             # Server info (2)
        ├── roles.ts             # Role management (11)
        ├── channels.ts          # Channel management (20)
        ├── members.ts           # Member management (15)
        ├── messages.ts          # Messaging (14)
        ├── reactions.ts         # Reactions (1)
        ├── server.ts            # Server admin (16)
        ├── threads.ts           # Thread management (15)
        ├── forums.ts            # Forum channels (5)
        ├── emojis.ts            # Emoji & stickers (7)
        ├── webhooks.ts          # Webhooks (4)
        ├── events.ts            # Scheduled events (5)
        ├── stage.ts             # Stage instances (3)
        ├── automod.ts           # Auto-moderation (4)
        ├── polls.ts             # Polls (3)
        ├── dms.ts               # Direct messages (2)
        ├── presence.ts          # Bot presence (2)
        ├── templates.ts         # Server templates (4)
        ├── commands.ts          # Application commands (4)
        └── onboarding.ts        # Onboarding (2)

社区


贡献

欢迎投稿!看 贡献.md 用于开发设置、代码风格和指南。


许可证

MIT许可证。版权所有(c)2026 QuadsLab.I.

看 许可证 全文。