🚀 Discord MCP 服务器
Discord MCP 服务器是一个基于 MCP(模型上下文协议)的服务器,它允许大语言模型(LLMs)通过机器人令牌控制 Discord 服务器。该服务器提供了全面的 Discord 管理工具,包括发送消息、管理成员、角色、频道、权限等功能。

🚀 快速开始
1. 创建 Discord 机器人
- 访问 Discord 开发者门户。
- 点击“新建应用程序”并为其命名。
- 进入“机器人”部分,点击“添加机器人”。
- 复制机器人令牌(请妥善保管,不要泄露!)。
- 启用以下特权网关意图:
2. 将机器人邀请到您的服务器
- 进入 OAuth2 -> URL 生成器。
- 选择范围:
bot、applications.commands。
- 选择机器人权限(根据您需要的功能进行选择):
- 核心权限:
- 管理频道
- 管理角色
- 管理消息
- 读取消息历史记录
- 发送消息
- 添加反应
- 成员管理:
- 踢出成员
- 封禁成员
- 管理昵称
- 管理成员(用于超时禁言)
- 服务器管理:
- 管理服务器(用于服务器设置)
- 查看审核日志
- 管理表情符号和贴纸
- 管理 Webhook
- 管理活动
- 创建即时邀请
- 复制生成的 URL 并打开以邀请机器人。
3. 安装 MCP 服务器
选项 A:从 npm 全局安装
npm install -g @mahesvara/discord-mcpserver
选项 B:直接使用 npx 运行(无需安装)
npx @mahesvara/discord-mcpserver
✨ 主要特性
服务器管理
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 - 删除计划活动
📦 安装指南
安装 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 机器人令牌(必需) |
- |
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"]
}
}
常见权限名称
- 查看与访问:
- 消息:
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"
}
}
编辑角色权限
{
"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
📚 详细文档
响应格式
大多数读取操作支持两种响应格式:
- json(默认):用于程序处理的结构化数据
- markdown:人类可读的格式化输出
错误处理
所有工具在操作失败时都会返回清晰的错误消息和建议,可能的错误包括:
- 缺少权限
- 无效的 ID(服务器、频道、用户、角色、消息)
- 速率限制
- 网络问题
安全注意事项
- 切勿提交您的机器人令牌 - 使用环境变量
- 机器人只能在被邀请的服务器中操作
- 破坏性操作(删除、踢出、封禁)会标记
destructiveHint: true
- 所有输入均使用 Zod 模式进行验证
所需机器人权限
根据您使用的工具,您的机器人需要以下权限:
| 工具类别 |
所需权限 |
| 消息 |
发送消息、读取消息历史记录、管理消息 |
| 频道 |
管理频道 |
| 权限 |
管理角色(用于频道权限覆盖) |
| 成员 |
踢出成员、封禁成员、管理昵称、管理成员 |
| 角色 |
管理角色 |
| 反应 |
添加反应 |
| 服务器设置 |
管理服务器 |
| 表情符号/贴纸 |
管理表情符号和贴纸 |
| 邀请 |
创建即时邀请、管理服务器 |
| Webhook |
管理 Webhook |
| 活动 |
管理活动 |
| 审核日志 |
查看审核日志 |
| 社区/新用户引导 |
管理服务器 |
📄 许可证
本项目采用 MIT 许可证。