Discord Node Mcp

io.github.Oratorian由 GitHub 帳號 Oratorian 發布v1.1.4更新於 Oct 24, 2026

MCP server for controlling Discord servers via bot token

已驗證STDIO僅桌面效率與工作流溝通與協作

概覽

AI 產生的概覽

一個本機 MCP 伺服器,讓助理透過機器人權杖管理 Discord 伺服器:頻道、角色、成員、訊息、審核與社群設定。

可以做什麼
列出並檢視伺服器、頻道、成員、角色、邀請、Webhook、表情符號、貼圖、排程活動與稽核日誌,讀取操作可選 JSON 或 markdown 輸出。建立、編輯和刪除頻道、分類、論壇標籤、角色、邀請、Webhook、表情符號、貼圖和活動。傳送、編輯、刪除、釘選訊息並加入回應,讀取訊息歷史。管理成員:踢出、封禁、解封、禁言、設定暱稱、在語音頻道間移動以及清理不活躍成員。管理頻道權限覆寫、角色層級、自動審核規則、社群設定、歡迎畫面與新手導引。
適用情境
適合讓助理在對話中完成日常 Discord 伺服器管理或審核:建立頻道和角色、發布和清理訊息,或設定社群與新手導引功能。最適合由你掌控機器人、且能接受較大寫入權限的伺服器。
執行需求
以 npm 套件形式在本機執行(需要 Node.js),可全域安裝或用 npx,預設使用 stdio;可透過 TRANSPORT、HOST 和 PORT 啟用 HTTP 傳輸。需要在 DISCORD_BOT_TOKEN 中提供 Discord 機器人權杖,機器人在 Discord 開發者入口建立並啟用 Server Members 與 Message Content 特權 intent,並以所需權限邀請到目標伺服器。
安裝前請注意
DISCORD_BOT_TOKEN 中的機器人權杖是機器人的完整憑證,不要提交到版本庫。許多工具會寫入或具破壞性:刪除頻道、角色、訊息、表情符號、貼圖、Webhook 和邀請;踢出、封禁、禁言和清理成員;修改權限與角色層級。只授予所需權限,並注意將 HOST 設為 0.0.0.0 會讓 HTTP 傳輸暴露到本機之外。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Discord Node Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[Build] [License] [TAG]

Discord MCP Server

An MCP (Model Context Protocol) server that enables LLMs to control Discord servers via a bot token. This server provides comprehensive Discord management tools including sending messages, managing members, roles, channels, permissions, and more.

Features

Guild/Server Management

  • discord_list_guilds - List all servers the bot has access to
  • discord_get_guild - Get detailed info about a specific server
  • discord_edit_guild - Edit server settings (name, verification level, system channels, etc.)
  • discord_leave_guild - Leave a server

Channel Management

  • discord_list_channels - List channels in a server (filter by type)
  • discord_get_channel - Get channel details (includes forum tags for forum channels)
  • discord_create_channel - Create text/voice/forum channels and categories
  • discord_edit_channel - Edit channel name, topic, position, category, forum tags, and more
  • discord_delete_channel - Delete a channel or category

Forum Channel Features

  • Create forum channels with type: "forum"
  • Set default reaction emoji, sort order, and layout
  • Manage forum tags (create, edit, delete)
  • Tags support custom emojis and moderation settings

Permission Management

  • discord_set_channel_permissions - Set permission overrides for roles/members on channels
  • discord_remove_channel_permissions - Remove permission overrides
  • discord_get_channel_permissions - View all permission overrides on a channel
  • discord_sync_channel_permissions - Sync channel permissions with parent category

Message Operations

  • discord_send_message - Send messages (with optional reply)
  • discord_get_messages - Retrieve channel messages (with pagination)
  • discord_edit_message - Edit bot's messages
  • discord_delete_message - Delete messages
  • discord_add_reaction - Add emoji reactions
  • discord_remove_reaction - Remove bot's reactions
  • discord_pin_message - Pin a message
  • discord_unpin_message - Unpin a message
  • discord_get_pinned_messages - Get all pinned messages

Member Management

  • discord_list_members - List server members (with pagination)
  • discord_get_member - Get member details
  • discord_kick_member - Kick a member
  • discord_ban_member - Ban a member (with message deletion option)
  • discord_unban_member - Unban a user
  • discord_set_nickname - Set/clear member nickname
  • discord_move_member - Move member to a different voice channel
  • discord_timeout_member - Timeout/mute a member (up to 28 days)

Role Management

  • discord_list_roles - List all server roles
  • discord_create_role - Create a new role
  • discord_edit_role - Edit role name, color, permissions, and settings
  • discord_delete_role - Delete a role
  • discord_add_role - Assign role to member
  • discord_remove_role - Remove role from member
  • discord_set_role_positions - Reorder role hierarchy

Server Administration

  • discord_list_bans - List all banned users
  • discord_prune_members - Remove inactive members (with dry-run option)
  • discord_get_audit_log - View audit log entries

Community Features

  • discord_get_community_settings - View community settings (rules channel, features, etc.)
  • discord_setup_community - Configure community channels (rules, updates, safety alerts)

Welcome Screen

  • discord_get_welcome_screen - Get welcome screen configuration
  • discord_edit_welcome_screen - Edit welcome screen (description, channels, emojis)

Onboarding

  • discord_get_onboarding - Get onboarding configuration
  • discord_edit_onboarding - Edit existing onboarding settings
  • discord_setup_onboarding - Setup onboarding from scratch (prompts, default channels, roles)

Auto Moderation

  • discord_list_automod_rules - List auto moderation rules
  • discord_get_automod_rule - Get details of an auto mod rule
  • discord_create_automod_rule - Create auto moderation rule
  • discord_edit_automod_rule - Edit auto moderation rule
  • discord_delete_automod_rule - Delete auto moderation rule

Emoji Management

  • discord_list_emojis - List custom emojis
  • discord_create_emoji - Create emoji from image URL
  • discord_delete_emoji - Delete a custom emoji

Sticker Management

  • discord_list_stickers - List custom stickers
  • discord_delete_sticker - Delete a custom sticker

Invite Management

  • discord_list_invites - List active invites
  • discord_create_invite - Create channel invite
  • discord_delete_invite - Delete an invite

Webhook Management

  • discord_list_webhooks - List webhooks (guild or channel)
  • discord_create_webhook - Create a webhook
  • discord_edit_webhook - Edit webhook name or channel
  • discord_delete_webhook - Delete a webhook

Scheduled Events

  • discord_list_events - List scheduled events
  • discord_create_event - Create a scheduled event (stage, voice, or external)
  • discord_delete_event - Delete a scheduled event

Setup

1. Create a Discord Bot

  1. Go to the Discord Developer Portal
  2. Click "New Application" and give it a name
  3. Go to the "Bot" section and click "Add Bot"
  4. Copy the bot token (keep this secret!)
  5. Enable these Privileged Gateway Intents:
    • Server Members Intent
    • Message Content Intent

2. Invite the Bot to Your Server

  1. Go to OAuth2 -> URL Generator

  2. Select scopes: bot, applications.commands

  3. Select bot permissions (choose based on features you need):

    Core Permissions:

    • Manage Channels
    • Manage Roles
    • Manage Messages
    • Read Message History
    • Send Messages
    • Add Reactions

    Member Management:

    • Kick Members
    • Ban Members
    • Manage Nicknames
    • Moderate Members (for timeouts)

    Server Administration:

    • Manage Guild (for server settings)
    • View Audit Log
    • Manage Emojis and Stickers
    • Manage Webhooks
    • Manage Events
    • Create Instant Invite
  4. Copy the generated URL and open it to invite the bot

3. Install the MCP Server

Option A: Install globally from npm

bash
npm install -g @mahesvara/discord-mcpserver

Option B: Run directly with npx (no install required)

bash
npx @mahesvara/discord-mcpserver

Usage

MCP Client Configuration

Add to your MCP client configuration (e.g., Claude Desktop or Claude Code):

Using globally installed package:

json
{  "mcpServers": {    "discord": {      "command": "discord-mcpserver",      "env": {        "DISCORD_BOT_TOKEN": "your_bot_token_here"      }    }  }}

Using npx (no install required):

json
{  "mcpServers": {    "discord": {      "command": "npx",      "args": ["-y", "@mahesvara/discord-mcpserver"],      "env": {        "DISCORD_BOT_TOKEN": "your_bot_token_here"      }    }  }}

Environment Variables

The server supports loading environment variables from a .env file in the current directory:

env
DISCORD_BOT_TOKEN=your_bot_token_hereTRANSPORT=httpPORT=3000HOST=localhost
VariableDescriptionDefault
DISCORD_BOT_TOKENYour Discord bot token (required)-
TRANSPORTTransport mode: stdio or httpstdio
PORTHTTP server port (when using http transport)3000
HOSTHTTP server host (use 0.0.0.0 for remote access)localhost

HTTP Transport

For remote access, run the server with HTTP transport enabled:

Linux/macOS:

bash
DISCORD_BOT_TOKEN=your_token TRANSPORT=http PORT=3000 HOST=0.0.0.0 discord-mcpserver

Windows (Command Prompt):

cmd
set DISCORD_BOT_TOKEN=your_token && set TRANSPORT=http && set PORT=3000 && set HOST=0.0.0.0 && discord-mcpserver

Windows (PowerShell):

powershell
$env:DISCORD_BOT_TOKEN="your_token"; $env:TRANSPORT="http"; $env:PORT="3000"; $env:HOST="0.0.0.0"; discord-mcpserver

Or use a .env file (works on all platforms):

bash
discord-mcpserver

Then configure your MCP client to connect via HTTP:

json
{  "mcpServers": {    "discord": {      "type": "http",      "url": "http://your-server-ip:3000/mcp"    }  }}

Tool Examples

Create a Forum Channel with Tags

json
{  "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 }    ]  }}

Setup Server Onboarding

json
{  "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"] }        ]      }    ]  }}

Configure Community Settings

json
{  "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"  }}

Edit Welcome Screen

json
{  "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": "👋" }    ]  }}

Create a Category

json
{  "tool": "discord_create_channel",  "params": {    "guild_id": "1234567890123456789",    "name": "Bot Testing",    "type": "category"  }}

Create a Channel in a Category

json
{  "tool": "discord_create_channel",  "params": {    "guild_id": "1234567890123456789",    "name": "bot-commands",    "type": "text",    "topic": "Channel for bot interactions",    "parent_id": "CATEGORY_ID_HERE"  }}

Set Channel Permissions

json
{  "tool": "discord_set_channel_permissions",  "params": {    "channel_id": "1234567890123456789",    "target_id": "ROLE_ID_HERE",    "target_type": "role",    "allow": ["ViewChannel", "SendMessages", "ReadMessageHistory"],    "deny": ["CreatePublicThreads"]  }}

Common Permission Names

View & Access:

  • ViewChannel - See the channel

Messages:

  • SendMessages, ReadMessageHistory, ManageMessages
  • EmbedLinks, AttachFiles, AddReactions
  • UseExternalEmojis, UseExternalStickers
  • MentionEveryone

Threads:

  • CreatePublicThreads, CreatePrivateThreads
  • SendMessagesInThreads, ManageThreads

Voice:

  • Connect, Speak, Stream
  • MuteMembers, DeafenMembers, MoveMembers
  • UseVAD, PrioritySpeaker

Management:

  • ManageChannels, ManageRoles, ManageWebhooks

Send a Message

json
{  "tool": "discord_send_message",  "params": {    "channel_id": "1234567890123456789",    "content": "Hello from the MCP server!"  }}

Assign a Role

json
{  "tool": "discord_add_role",  "params": {    "guild_id": "1234567890123456789",    "user_id": "9876543210987654321",    "role_id": "1111111111111111111"  }}

Response Formats

Most read operations support two response formats:

  • json (default): Structured data for programmatic processing
  • markdown: Human-readable formatted output

Error Handling

All tools return clear error messages with suggestions when operations fail:

  • Missing permissions
  • Invalid IDs (guild, channel, user, role, message)
  • Rate limiting
  • Network issues

Security Notes

  • Never commit your bot token - use environment variables
  • The bot can only operate in servers it's been invited to
  • Destructive operations (delete, kick, ban) are marked with destructiveHint: true
  • All inputs are validated with Zod schemas

Required Bot Permissions

Depending on which tools you use, your bot needs these permissions:

Tool CategoryRequired Permissions
MessagesSend Messages, Read Message History, Manage Messages
ChannelsManage Channels
PermissionsManage Roles (for channel permission overrides)
MembersKick Members, Ban Members, Manage Nicknames, Moderate Members
RolesManage Roles
ReactionsAdd Reactions
Server SettingsManage Guild
Emojis/StickersManage Emojis and Stickers
InvitesCreate Instant Invite, Manage Guild
WebhooksManage Webhooks
EventsManage Events
Audit LogView Audit Log
Community/OnboardingManage Guild

Tool Examples

Edit Role Permissions

json
{  "tool": "discord_edit_role",  "params": {    "guild_id": "1234567890123456789",    "role_id": "1111111111111111111",    "name": "Moderators",    "color": 3447003,    "permissions": ["KickMembers", "BanMembers", "ManageMessages", "ModerateMembers"]  }}

Reorder Role Hierarchy

json
{  "tool": "discord_set_role_positions",  "params": {    "guild_id": "1234567890123456789",    "positions": [      { "role_id": "1111111111111111111", "position": 5 },      { "role_id": "2222222222222222222", "position": 4 }    ]  }}

Timeout a Member

json
{  "tool": "discord_timeout_member",  "params": {    "guild_id": "1234567890123456789",    "user_id": "9876543210987654321",    "duration_minutes": 60,    "reason": "Spamming in chat"  }}

Create an Invite

json
{  "tool": "discord_create_invite",  "params": {    "channel_id": "1234567890123456789",    "max_age": 86400,    "max_uses": 10,    "temporary": false  }}

Create a Scheduled Event

json
{  "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"  }}

Role Permission Names

When editing roles, use these permission names:

General:

  • Administrator - Full access (use with caution)
  • ManageGuild, ManageRoles, ManageChannels
  • KickMembers, BanMembers, ModerateMembers
  • ViewAuditLog, ViewGuildInsights

Messages:

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

Voice:

  • Connect, Speak, Stream
  • MuteMembers, DeafenMembers, MoveMembers

Other:

  • ManageWebhooks, ManageEmojisAndStickers
  • ManageEvents, CreateEvents

License

MIT

來源:README.md,提交 06847bb

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.1.4最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分