🚀 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 許可證。