关于 discord-node-mcp
通过 Bot token 管理 Discord 服务器的 MCP 服务,适用于负责社区运营和服务器管理的团队。工具涵盖服务器设置、频道、消息、成员、角色、审核及社区功能。
主要功能
- 01管理服务器和频道
- 02发送和管理消息
- 03管理成员与角色
- 04配置权限和自动审核
- 05管理引导流程、活动和 Webhook
适用场景
- 01创建频道并配置权限
- 02审核成员并查看审计日志
- 03设置社区引导和欢迎界面
- 04管理消息、角色和定时活动
MCP 相关
通过 Discord Bot token 访问 Discord,并向 MCP 客户端提供管理工具。支持 stdio 和 HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
67收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| response_format | enum | 否 | 输出格式:'markdown' 表示便于阅读,'json' 表示结构化数据json | markdown |
详细介绍
Discord MCP 服务
一个 MCP(Model Context Protocol)服务,可通过机器人令牌让大模型控制 Discord 服务。此服务提供全面的 Discord 管理工具,包括发送消息、管理成员、角色、频道、权限等。
功能
服务器管理
discord_list_guilds- 列出机器人可访问的所有服务器discord_get_guild- 获取特定服务器的详细信息discord_edit_guild- 编辑服务器设置(名称、验证级别、系统频道等)discord_leave_guild- 离开服务器
频道管理
discord_list_channels- 列出服务器中的频道(按类型筛选)discord_get_channel- 获取频道详情(包括论坛频道的论坛标签)discord_create_channel- 创建文本、语音、论坛频道和分类discord_edit_channel- 编辑频道名称、主题、位置、分类、论坛标签等discord_delete_channel- 删除频道或分类
论坛频道功能
- 使用
type: "forum"创建论坛频道 - 设置默认反应表情、排序方式和布局
- 管理论坛标签(创建、编辑、删除)
- 标签支持自定义表情和审核设置
权限管理
discord_set_channel_permissions- 为频道中的角色或成员设置权限覆盖discord_remove_channel_permissions- 移除权限覆盖discord_get_channel_permissions- 查看频道上的所有权限覆盖discord_sync_channel_permissions- 将频道权限与上级分类同步
消息操作
discord_send_message- 发送消息(可选回复)discord_get_messages- 获取频道消息(支持分页)discord_edit_message- 编辑机器人发送的消息discord_delete_message- 删除消息discord_add_reaction- 添加表情回应discord_remove_reaction- 移除机器人的表情回应discord_pin_message- 置顶消息discord_unpin_message- 取消置顶消息discord_get_pinned_messages- 获取所有置顶消息
成员管理
discord_list_members- 列出服务器成员(支持分页)discord_get_member- 获取成员详情discord_kick_member- 踢出成员discord_ban_member- 封禁成员(可选择删除消息)discord_unban_member- 解封用户discord_set_nickname- 设置或清除成员昵称discord_move_member- 将成员移至其他语音频道discord_timeout_member- 对成员实施超时或禁言(最长 28 天)
角色管理
discord_list_roles- 列出服务器中的所有角色discord_create_role- 创建新角色discord_edit_role- 编辑角色名称、颜色、权限和设置discord_delete_role- 删除角色discord_add_role- 为成员分配角色discord_remove_role- 移除成员的角色discord_set_role_positions- 调整角色层级顺序
服务器管理
discord_list_bans- 列出所有被封禁的用户discord_prune_members- 移除不活跃成员(支持试运行选项)discord_get_audit_log- 查看审计日志条目
社区功能
discord_get_community_settings- 查看社区设置(规则频道、功能等)discord_setup_community- 配置社区频道(规则、动态、安全提醒)
欢迎界面
discord_get_welcome_screen- 获取欢迎界面配置discord_edit_welcome_screen- 编辑欢迎界面(描述、频道、表情)
入门
discord_get_onboarding- 获取入门配置discord_edit_onboarding- 编辑现有入门设置discord_setup_onboarding- 从头设置入门流程(提示词、默认频道、角色)
自动审核
discord_list_automod_rules- 列出自动审核规则discord_get_automod_rule- 获取自动审核规则详情discord_create_automod_rule- 创建自动审核规则discord_edit_automod_rule- 编辑自动审核规则discord_delete_automod_rule- 删除自动审核规则
表情符号管理
discord_list_emojis- 列出自定义表情符号discord_create_emoji- 根据图片 URL 创建表情符号discord_delete_emoji- 删除自定义表情符号
贴纸管理
discord_list_stickers- 列出自定义贴纸discord_delete_sticker- 删除自定义贴纸
邀请管理
discord_list_invites- 列出有效邀请discord_create_invite- 创建频道邀请discord_delete_invite- 删除邀请
Webhook 管理
discord_list_webhooks- 列出 Webhook(服务器或频道)discord_create_webhook- 创建 Webhookdiscord_edit_webhook- 编辑 Webhook 名称或频道discord_delete_webhook- 删除 Webhook
计划活动
discord_list_events- 列出计划活动discord_create_event- 创建计划活动(舞台、语音或外部活动)discord_delete_event- 删除计划活动
设置
1. 创建 Discord Bot
- 前往 Discord Developer Portal
- 点击“New Application”并为其命名
- 前往“Bot”部分并点击“Add Bot”
- 复制 Bot 令牌(请妥善保密!)
- 启用以下特权网关意图:
- Server Members Intent
- Message Content Intent
2. 邀请 Bot 加入你的服务器
-
前往 OAuth2 -> URL Generator
-
选择作用域:
bot、applications.commands -
选择 Bot 权限(根据需要的功能选择):
核心权限:
- 管理频道
- 管理角色
- 管理消息
- 查看消息历史记录
- 发送消息
- 添加回应
成员管理:
- 踢出成员
- 封禁成员
- 管理昵称
- 管理成员(用于超时)
服务器管理:
- 管理服务器(用于服务器设置)
- 查看审计日志
- 管理表情符号和贴纸
- 管理 Webhook
- 管理活动
- 创建即时邀请
-
复制生成的 URL 并打开,以邀请 Bot
3. 安装 MCP 服务
选项 A:通过 npm 全局安装
npm install -g @mahesvara/discord-mcpserver
选项 B:通过 npx 直接运行(无需安装)
npx @mahesvara/discord-mcpserver
使用方法
MCP 客户端配置
将以下内容添加到 MCP 客户端配置中(例如 Claude Desktop 或 Claude Code):
使用全局安装的包:
{
"mcpServers": {
"discord": {
"command": "discord-mcpserver",
"env": {
"DISCORD_BOT_TOKEN": "your_bot_token_here"
}
}
}
}
使用 npx(无需安装):
{
"mcpServers": {
"discord": {
"command": "npx",
"args": ["-y", "@mahesvara/discord-mcpserver"],
"env": {
"DISCORD_BOT_TOKEN": "your_bot_token_here"
}
}
}
}
环境变量
服务支持从当前目录中的 .env 文件加载环境变量:
DISCORD_BOT_TOKEN=your_bot_token_here
TRANSPORT=http
PORT=3000
HOST=localhost
| 变量 | 描述 | 默认值 |
|---|---|---|
DISCORD_BOT_TOKEN | 你的 Discord Bot 令牌(必需) | - |
TRANSPORT | 传输模式:stdio 或 http | stdio |
PORT | HTTP 服务端口(使用 http 传输时) | 3000 |
HOST | HTTP 服务主机(远程访问时使用 0.0.0.0) | localhost |
HTTP 传输
如需远程访问,请启用 HTTP 传输并运行服务:
Linux/macOS:
DISCORD_BOT_TOKEN=your_token TRANSPORT=http PORT=3000 HOST=0.0.0.0 discord-mcpserver
Windows(命令提示符):
set DISCORD_BOT_TOKEN=your_token && set TRANSPORT=http && set PORT=3000 && set HOST=0.0.0.0 && discord-mcpserver
Windows(PowerShell):
$env:DISCORD_BOT_TOKEN="your_token"; $env:TRANSPORT="http"; $env:PORT="3000"; $env:HOST="0.0.0.0"; discord-mcpserver
或者使用 .env 文件(适用于所有平台):
discord-mcpserver
然后配置 MCP 客户端通过 HTTP 连接:
{
"mcpServers": {
"discord": {
"type": "http",
"url": "http://your-server-ip:3000/mcp"
}
}
}
工具示例
创建带标签的论坛频道
{
"tool": "discord_create_channel",
"params": {
"guild_id": "1234567890123456789",
"name": "help-forum",
"type": "forum",
"topic": "Ask questions and get help",
"default_reaction_emoji": "✅",
"default_sort_order": "latest_activity",
"default_forum_layout": "list_view",
"available_tags": [
{ "name": "Solved", "emoji_name": "✅", "moderated": false },
{ "name": "Bug", "emoji_name": "🐛", "moderated": false },
{ "name": "Question", "emoji_name": "❓", "moderated": false },
{ "name": "Announcement", "emoji_name": "📢", "moderated": true }
]
}
}
设置服务器入门流程
{
"tool": "discord_setup_onboarding",
"params": {
"guild_id": "1234567890123456789",
"default_channel_ids": ["1111111111111111111"],
"prompts": [
{
"type": "multiple_choice",
"title": "What are you interested in?",
"single_select": false,
"required": true,
"options": [
{ "title": "Gaming", "emoji_name": "🎮", "role_ids": ["2222222222222222222"] },
{ "title": "Tech", "emoji_name": "💻", "role_ids": ["3333333333333333333"] }
]
}
]
}
}
配置社区设置
{
"tool": "discord_setup_community",
"params": {
"guild_id": "1234567890123456789",
"rules_channel_id": "1111111111111111111",
"public_updates_channel_id": "2222222222222222222",
"description": "A friendly gaming community",
"preferred_locale": "en-US"
}
}
编辑欢迎界面
{
"tool": "discord_edit_welcome_screen",
"params": {
"guild_id": "1234567890123456789",
"enabled": true,
"description": "Welcome to our server!",
"welcome_channels": [
{ "channel_id": "1111111111111111111", "description": "Read the rules", "emoji_name": "📜" },
{ "channel_id": "2222222222222222222", "description": "Introduce yourself", "emoji_name": "👋" }
]
}
}
创建分类
{
"tool": "discord_create_channel",
"params": {
"guild_id": "1234567890123456789",
"name": "Bot Testing",
"type": "category"
}
}
在分类中创建频道
{
"tool": "discord_create_channel",
"params": {
"guild_id": "1234567890123456789",
"name": "bot-commands",
"type": "text",
"topic": "Channel for bot interactions",
"parent_id": "CATEGORY_ID_HERE"
}
}
设置频道权限
{
"tool": "discord_set_channel_permissions",
"params": {
"channel_id": "1234567890123456789",
"target_id": "ROLE_ID_HERE",
"target_type": "role",
"allow": ["ViewChannel", "SendMessages", "ReadMessageHistory"],
"deny": ["CreatePublicThreads"]
}
}
常见权限名称
查看与访问:
ViewChannel- 查看频道
消息:
SendMessages、ReadMessageHistory、ManageMessagesEmbedLinks、AttachFiles、AddReactionsUseExternalEmojis、UseExternalStickersMentionEveryone
帖子串:
CreatePublicThreads、CreatePrivateThreadsSendMessagesInThreads、ManageThreads
语音:
Connect、Speak、StreamMuteMembers、DeafenMembers、MoveMembersUseVAD、PrioritySpeaker
管理:
ManageChannels、ManageRoles、ManageWebhooks
发送消息
{
"tool": "discord_send_message",
"params": {
"channel_id": "1234567890123456789",
"content": "Hello from the MCP server!"
}
}
分配角色
{
"tool": "discord_add_role",
"params": {
"guild_id": "1234567890123456789",
"user_id": "9876543210987654321",
"role_id": "1111111111111111111"
}
}
响应格式
大多数读取操作支持两种响应格式:
- json(默认):用于程序化处理的结构化数据
- markdown:便于阅读的格式化输出
错误处理
所有工具在操作失败时都会返回清晰的错误消息和建议:
- 缺少权限
- ID 无效(服务器、频道、用户、角色、消息)
- 速率限制
- 网络问题
安全说明
- 切勿提交你的机器人令牌——请使用环境变量
- 机器人只能在已邀请它加入的服务器中操作
- 破坏性操作(删除、踢出、封禁)标记为
destructiveHint: true - 所有输入均使用 Zod 架构进行验证
所需机器人权限
根据你使用的工具,机器人需要以下权限:
| 工具类别 | 所需权限 |
|---|---|
| 消息 | 发送消息、读取消息历史记录、管理消息 |
| 频道 | 管理频道 |
| 权限 | 管理角色(用于频道权限覆盖) |
| 成员 | 踢出成员、封禁成员、管理昵称、管理成员 |
| 角色 | 管理角色 |
| 表情回应 | 添加表情回应 |
| 服务器设置 | 管理服务器 |
| 表情符号/贴纸 | 管理表情符号和贴纸 |
| 邀请 | 创建即时邀请、管理服务器 |
| Webhook | 管理 Webhook |
| 事件 | 管理事件 |
| 审计日志 | 查看审计日志 |
| 社区/新手引导 | 管理服务器 |
工具示例
编辑角色权限
{
"tool": "discord_edit_role",
"params": {
"guild_id": "1234567890123456789",
"role_id": "1111111111111111111",
"name": "Moderators",
"color": 3447003,
"permissions": ["KickMembers", "BanMembers", "ManageMessages", "ModerateMembers"]
}
}
调整角色层级顺序
{
"tool": "discord_set_role_positions",
"params": {
"guild_id": "1234567890123456789",
"positions": [
{ "role_id": "1111111111111111111", "position": 5 },
{ "role_id": "2222222222222222222", "position": 4 }
]
}
}
对成员设置超时
{
"tool": "discord_timeout_member",
"params": {
"guild_id": "1234567890123456789",
"user_id": "9876543210987654321",
"duration_minutes": 60,
"reason": "Spamming in chat"
}
}
创建邀请
{
"tool": "discord_create_invite",
"params": {
"channel_id": "1234567890123456789",
"max_age": 86400,
"max_uses": 10,
"temporary": false
}
}
创建计划事件
{
"tool": "discord_create_event",
"params": {
"guild_id": "1234567890123456789",
"name": "Community Game Night",
"description": "Join us for games!",
"scheduled_start_time": "2024-12-01T20:00:00Z",
"entity_type": "voice",
"channel_id": "1111111111111111111"
}
}
角色权限名称
编辑角色时,请使用以下权限名称:
常规:
Administrator- 完全访问权限(谨慎使用)ManageGuild、ManageRoles、ManageChannelsKickMembers、BanMembers、ModerateMembersViewAuditLog、ViewGuildInsights
消息:
SendMessages、ManageMessages、ReadMessageHistoryEmbedLinks、AttachFiles、AddReactionsMentionEveryone、UseExternalEmojis
语音:
Connect、Speak、StreamMuteMembers、DeafenMembers、MoveMembers
其他:
ManageWebhooks、ManageEmojisAndStickersManageEvents、CreateEvents
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。