mcpField
D
discord-node-mcp

discord-node-mcp

本地服务
github.com/Oratorian通信协作039 周前更新

关于 discord-node-mcp

通过 Bot token 管理 Discord 服务器的 MCP 服务,适用于负责社区运营和服务器管理的团队。工具涵盖服务器设置、频道、消息、成员、角色、审核及社区功能。

主要功能

  1. 01管理服务器和频道
  2. 02发送和管理消息
  3. 03管理成员与角色
  4. 04配置权限和自动审核
  5. 05管理引导流程、活动和 Webhook

适用场景

  1. 01创建频道并配置权限
  2. 02审核成员并查看审计日志
  3. 03设置社区引导和欢迎界面
  4. 04管理消息、角色和定时活动

MCP 相关

通过 Discord Bot token 访问 Discord,并向 MCP 客户端提供管理工具。支持 stdio 和 HTTP 传输。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"oratorian-discord-node": {
"command": "npx",
"args": [
"-y",
"@mahesvara/discord-mcpserver"
],
"env": {
"DISCORD_BOT_TOKEN": "<DISCORD_BOT_TOKEN>",
"TRANSPORT": "<TRANSPORT>",
"PORT": "<PORT>",
"HOST": "<HOST>"
}
}
}
}
启动命令npx -y @mahesvara/discord-mcpserver
需要配置的环境变量
DISCORD_BOT_TOKEN密钥Your Discord bot token
TRANSPORTTransport type: stdio or http
PORTPort for HTTP transport
HOSTHost for HTTP transport

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

安装包
npm@mahesvara/discord-mcpserver1.1.4

工具

67

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

参数类型必填说明
response_formatenum否输出格式:'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 - 创建 Webhook
  • discord_edit_webhook - 编辑 Webhook 名称或频道
  • discord_delete_webhook - 删除 Webhook
计划活动
  • discord_list_events - 列出计划活动
  • discord_create_event - 创建计划活动(舞台、语音或外部活动)
  • discord_delete_event - 删除计划活动

设置

1. 创建 Discord Bot
  1. 前往 Discord Developer Portal
  2. 点击“New Application”并为其命名
  3. 前往“Bot”部分并点击“Add Bot”
  4. 复制 Bot 令牌(请妥善保密!)
  5. 启用以下特权网关意图:
    • Server Members Intent
    • Message Content Intent
2. 邀请 Bot 加入你的服务器
  1. 前往 OAuth2 -> URL Generator

  2. 选择作用域:bot、applications.commands

  3. 选择 Bot 权限(根据需要的功能选择):

    核心权限:

    • 管理频道
    • 管理角色
    • 管理消息
    • 查看消息历史记录
    • 发送消息
    • 添加回应

    成员管理:

    • 踢出成员
    • 封禁成员
    • 管理昵称
    • 管理成员(用于超时)

    服务器管理:

    • 管理服务器(用于服务器设置)
    • 查看审计日志
    • 管理表情符号和贴纸
    • 管理 Webhook
    • 管理活动
    • 创建即时邀请
  4. 复制生成的 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 或 httpstdio
PORTHTTP 服务端口(使用 http 传输时)3000
HOSTHTTP 服务主机(远程访问时使用 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、ManageMessages
  • EmbedLinks、AttachFiles、AddReactions
  • UseExternalEmojis、UseExternalStickers
  • MentionEveryone

帖子串:

  • CreatePublicThreads、CreatePrivateThreads
  • SendMessagesInThreads、ManageThreads

语音:

  • Connect、Speak、Stream
  • MuteMembers、DeafenMembers、MoveMembers
  • UseVAD、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、ManageChannels
  • KickMembers、BanMembers、ModerateMembers
  • ViewAuditLog、ViewGuildInsights

消息:

  • SendMessages、ManageMessages、ReadMessageHistory
  • EmbedLinks、AttachFiles、AddReactions
  • MentionEveryone、UseExternalEmojis

语音:

  • Connect、Speak、Stream
  • MuteMembers、DeafenMembers、MoveMembers

其他:

  • ManageWebhooks、ManageEmojisAndStickers
  • ManageEvents、CreateEvents

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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