MCP.Market

Discord Node MCP server

by Oratorian·io.github.Oratorian/discord-node-mcp·v1.1.4

MCP server for controlling Discord servers via bot token

C66/100grade C
What users say
No reviews yet
Be the first
Safety scan
C66/100

full report

Adoption
New

0 stars59 downloads/wk

Reviews

Write one

Nobody has reviewed Discord Node yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Discord Node tools (67, 22 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • discord_add_reaction

    Add an emoji reaction to a message. Args: - channel_id (string): Discord channel ID - message_id (string): Message ID to react to - emoji (string): Emoji to react with (e.g., '\u{1F44D}' or custom emoji format) Returns: Confirmation of reaction added

  • discord_add_role

    Add a role to a Discord member. Args: - guild_id (string): Discord server/guild ID - user_id (string): Discord user ID - role_id (string): Discord role ID to add Returns: Confirmation of role added

  • discord_ban_member

    Ban a member from a Discord server. Args: - guild_id (string): Discord server/guild ID - user_id (string): Discord user ID to ban - reason (string, optional): Reason for ban (visible in audit log) - delete_message_days (number): Days of messages to delete (0-7, default: 0) Returns: Confirmation of ban

  • discord_create_automod_rulewrite action

    Create a new auto moderation rule for a server. Args: - guild_id (string): Discord server/guild ID - name (string): Rule name - event_type ('message_send'): Event that triggers the rule - trigger_type ('keyword' | 'spam' | 'keyword_preset' | 'mention_spam'): Trigger type - trigger_metadata (object, optional): Trigger configuration (keyword_filter, presets, etc.) - actions (array): Actions to take

  • discord_create_channelwrite action
  • discord_create_emojiwrite action

    Create a custom emoji in a server. Args: - guild_id (string): Discord server/guild ID - name (string): Emoji name (2-32 chars, alphanumeric and underscores) - image_url (string): URL of image (PNG, JPG, GIF under 256KB) - roles (string[], optional): Role IDs that can use this emoji Returns: Created emoji details

  • discord_create_eventwrite action

    Create a scheduled event in a server. Args: - guild_id (string): Discord server/guild ID - name (string): Event name - description (string, optional): Event description - scheduled_start_time (string): ISO8601 timestamp for start - scheduled_end_time (string, optional): ISO8601 timestamp for end - entity_type ('stage' | 'voice' | 'external'): Type of event - channel_id (string, optional): Channel

  • discord_create_invitewrite action

    Create an invite link for a channel. Args: - channel_id (string): Discord channel ID - max_age (number): Duration in seconds (0 = never expires, max 604800 = 7 days) - max_uses (number): Max uses (0 = unlimited) - temporary (boolean): Kick members when they disconnect if not assigned a role - unique (boolean): Create new unique invite vs reuse existing Returns: Created invite URL

  • discord_create_rolewrite action

    Create a new role in a Discord server. Args: - guild_id (string): Discord server/guild ID - name (string): Role name - color (number, optional): Role color as decimal integer (e.g., 16711680 for red) - mentionable (boolean): Whether the role can be mentioned (default: false) - hoist (boolean): Whether to display role members separately (default: false) Returns: The created role's details

  • discord_create_webhookwrite action

    Create a webhook in a channel. Args: - channel_id (string): Discord channel ID - name (string): Webhook name - avatar_url (string, optional): Avatar image URL Returns: Created webhook details including URL

  • discord_delete_automod_rulewrite action

    Delete an auto moderation rule from a server. Args: - guild_id (string): Discord server/guild ID - rule_id (string): Auto moderation rule ID to delete Returns: Confirmation of deletion

  • discord_delete_channelwrite action

    Delete a channel from a Discord server. This action is permanent! Args: - channel_id (string): Discord channel ID to delete Returns: Confirmation of deletion

  • discord_delete_emojiwrite action

    Delete a custom emoji from a server. Args: - guild_id (string): Discord server/guild ID - emoji_id (string): Discord emoji ID Returns: Confirmation of deletion

  • discord_delete_eventwrite action

    Delete a scheduled event from a server. Args: - guild_id (string): Discord server/guild ID - event_id (string): Discord scheduled event ID Returns: Confirmation of deletion

  • discord_delete_invitewrite action

    Delete an invite by its code. Args: - invite_code (string): The invite code to delete Returns: Confirmation of deletion

  • discord_delete_messagewrite action

    Delete a message from a Discord channel. Args: - channel_id (string): Discord channel ID - message_id (string): Message ID to delete Returns: Confirmation of deletion

  • discord_delete_rolewrite action

    Delete a role from a Discord server. This action is permanent! Args: - guild_id (string): Discord server/guild ID - role_id (string): Discord role ID to delete Returns: Confirmation of deletion

  • discord_delete_stickerwrite action

    Delete a custom sticker from a server. Args: - guild_id (string): Discord server/guild ID - sticker_id (string): Discord sticker ID Returns: Confirmation of deletion

  • discord_delete_webhookwrite action

    Delete a webhook. Args: - webhook_id (string): Discord webhook ID Returns: Confirmation of deletion

  • discord_edit_automod_rule

    Edit an existing auto moderation rule. Args: - guild_id (string): Discord server/guild ID - rule_id (string): Auto moderation rule ID - name (string, optional): New rule name - trigger_metadata (object, optional): New trigger configuration - actions (array, optional): New actions - enabled (boolean, optional): Enable/disable rule - exempt_roles (array, optional): New exempt roles - exempt_channels

  • discord_edit_channel
  • discord_edit_guild

    Edit server settings like name, verification level, and system channel. Args: - guild_id (string): Discord server/guild ID - name (string, optional): New server name - verification_level (string, optional): 'none', 'low', 'medium', 'high', 'very_high' - default_notifications (string, optional): 'all_messages' or 'only_mentions' - afk_channel_id (string, optional): AFK voice channel ID - afk_timeou

  • discord_edit_message

    Edit a message sent by the bot. Args: - channel_id (string): Discord channel ID - message_id (string): Message ID to edit - content (string): New message content (max 2000 characters) Returns: Confirmation of edit

  • discord_edit_onboarding

    Edit the onboarding configuration for a server. Configure prompts/questions that new members answer to customize their server experience. Each prompt can assign roles or show channels based on member selections. Args: - guild_id (string): Discord server/guild ID - prompts (array, optional): Onboarding prompts with options - default_channel_ids (array, optional): Channels shown to all new members -

  • discord_edit_role
  • discord_edit_webhook

    Edit an existing webhook. Args: - webhook_id (string): Discord webhook ID - name (string, optional): New webhook name - channel_id (string, optional): Move webhook to different channel Returns: Updated webhook details

  • discord_edit_welcome_screen

    Edit the welcome screen configuration for a server. Requires the server to have Community features enabled and bot must have MANAGE_GUILD permission. Args: - guild_id (string): Discord server/guild ID - enabled (boolean, optional): Enable/disable the welcome screen - description (string, optional): Server description (max 140 chars) - welcome_channels (array, optional): Up to 5 channels to show (c

  • discord_get_audit_log

    Get the audit log for a server. Shows who did what actions. Common action types: 1=GuildUpdate, 10=ChannelCreate, 11=ChannelUpdate, 12=ChannelDelete, 20=MemberKick, 22=MemberBanAdd, 23=MemberBanRemove, 24=MemberUpdate, 25=MemberRoleUpdate, 30=RoleCreate, 31=RoleUpdate, 32=RoleDelete, 72=MessageDelete, 73=MessageBulkDelete Args: - guild_id (string): Discord server/guild ID - user_id (string, option

  • discord_get_automod_rule

    Get details of a specific auto moderation rule. Args: - guild_id (string): Discord server/guild ID - rule_id (string): Auto moderation rule ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: Auto moderation rule details

  • discord_get_channel

    Get detailed information about a specific channel. Args: - channel_id (string): Discord channel ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: Channel details including name, type, topic, and category

  • discord_get_channel_permissions

    Get all permission overrides for a channel. Args: - channel_id (string): Discord channel ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: List of permission overrides with allow/deny for each role/member

  • discord_get_community_settings

    Get the community settings for a server. Shows rules channel, updates channel, and other community-related settings. Args: - guild_id (string): Discord server/guild ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: Community settings including channels and features

  • discord_get_guild

    Get detailed information about a specific Discord server. Args: - guild_id (string): Discord server/guild ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: Server details including name, member count, owner, and icon

  • discord_get_member

    Get detailed information about a specific member. Args: - guild_id (string): Discord server/guild ID - user_id (string): Discord user ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: Member details including username, nickname, roles, join date

  • discord_get_messages

    Retrieve messages from a Discord channel. Args: - channel_id (string): Discord channel ID - limit (number): Number of messages to retrieve (1-100, default: 20) - before (string, optional): Get messages before this message ID - after (string, optional): Get messages after this message ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: List of messages with content,

  • discord_get_onboarding

    Get the onboarding configuration for a server. Onboarding guides new members through a questionnaire to customize their experience. Args: - guild_id (string): Discord server/guild ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: Onboarding settings including prompts, options, and default channels

  • discord_get_pinned_messages

    Get all pinned messages in a channel. Args: - channel_id (string): Discord channel ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: List of pinned messages

  • discord_get_welcome_screen

    Get the welcome screen configuration for a server. Requires the server to have Community features enabled. Args: - guild_id (string): Discord server/guild ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: Welcome screen settings including description and channels

  • discord_kick_member

    Kick a member from a Discord server. Args: - guild_id (string): Discord server/guild ID - user_id (string): Discord user ID to kick - reason (string, optional): Reason for kick (visible in audit log) Returns: Confirmation of kick

  • discord_leave_guild

    Leave a Discord server (guild). The bot will no longer have access to this server. WARNING: This is a destructive action. The bot will need to be re-invited to rejoin. Args: - guild_id (string): Discord server/guild ID to leave - confirm (boolean): Must be set to true to confirm leaving Returns: Confirmation message with server details

  • discord_list_automod_rules

    List all auto moderation rules for a server. Args: - guild_id (string): Discord server/guild ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: List of auto moderation rules

  • discord_list_bans

    List all banned users in a server. Args: - guild_id (string): Discord server/guild ID - limit (number): Number of bans to return (1-1000, default 100) - response_format ('json' | 'markdown'): Output format Returns: List of banned users with reasons

  • discord_list_channels

    List channels in a Discord server. Args: - guild_id (string): Discord server/guild ID - type ('text' | 'voice' | 'category' | 'all'): Filter by channel type (default: 'all') - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: List of channels with id, name, type, topic, and category info

  • discord_list_emojis

    List all custom emojis in a server. Args: - guild_id (string): Discord server/guild ID - response_format ('json' | 'markdown'): Output format Returns: List of emojis with name, ID, and whether animated

  • discord_list_events

    List all scheduled events in a server. Args: - guild_id (string): Discord server/guild ID - response_format ('json' | 'markdown'): Output format Returns: List of events with name, time, location, and status

  • discord_list_guilds

    List all Discord servers (guilds) the bot has access to. Returns server names, IDs, member counts, and owner information. Args: - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: List of guilds with id, name, memberCount, icon, ownerId

  • discord_list_invites

    List all active invites in a server. Args: - guild_id (string): Discord server/guild ID - response_format ('json' | 'markdown'): Output format Returns: List of invites with code, uses, max uses, expiration

  • discord_list_members

    List members in a Discord server. Args: - guild_id (string): Discord server/guild ID - limit (number): Maximum number of members (1-100, default: 20) - after (string, optional): Get members after this user ID (for pagination) - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: List of members with username, nickname, roles, join date

  • discord_list_roles

    List all roles in a Discord server. Args: - guild_id (string): Discord server/guild ID - response_format ('markdown' | 'json'): Output format (default: 'json') Returns: List of roles with name, color, position, permissions

  • discord_list_stickers

    List all custom stickers in a server. Args: - guild_id (string): Discord server/guild ID - response_format ('json' | 'markdown'): Output format Returns: List of stickers with name, description, and format

  • discord_list_webhooks

    List webhooks in a guild or channel. Args: - guild_id (string, optional): List all webhooks in the server - channel_id (string, optional): List webhooks for a specific channel - response_format ('json' | 'markdown'): Output format Returns: List of webhooks with name, channel, and URL

  • discord_move_member

    Move a member to a different voice channel or disconnect them from voice. The member must currently be connected to a voice channel to be moved. Args: - guild_id (string): Discord server/guild ID - user_id (string): Discord user ID to move - channel_id (string | null): Target voice channel ID, or null to disconnect Returns: Confirmation of move or disconnect

  • discord_pin_message

    Pin a message in a channel. Args: - channel_id (string): Discord channel ID - message_id (string): Message ID to pin Returns: Confirmation of message pinned

  • discord_prune_memberswrite action

    Remove inactive members from the server. Args: - guild_id (string): Discord server/guild ID - days (number): Days of inactivity required (1-30) - include_roles (string[], optional): Role IDs to include in prune (by default only members without roles) - dry_run (boolean): If true, returns count without actually pruning (default true) Returns: Number of members pruned (or would be pruned if dry_run)

  • discord_remove_channel_permissionswrite action

    Remove all permission overrides for a role or member on a channel. Args: - channel_id (string): Discord channel ID - target_id (string): Role or User ID to remove permission overrides for Returns: Confirmation of removal

  • discord_remove_reactionwrite action

    Remove the bot's emoji reaction from a message. Args: - channel_id (string): Discord channel ID - message_id (string): Message ID - emoji (string): Emoji to remove Returns: Confirmation of reaction removed

  • discord_remove_rolewrite action

    Remove a role from a Discord member. Args: - guild_id (string): Discord server/guild ID - user_id (string): Discord user ID - role_id (string): Discord role ID to remove Returns: Confirmation of role removed

  • discord_send_messagewrite action

    Send a message to a Discord channel. Args: - channel_id (string): Discord channel ID - content (string): Message content (max 2000 characters) - reply_to (string, optional): Message ID to reply to Returns: The sent message details including ID

  • discord_set_channel_permissions
  • discord_set_nickname

    Set or clear a member's nickname. Args: - guild_id (string): Discord server/guild ID - user_id (string): Discord user ID - nickname (string, optional): New nickname (empty/null to reset) Returns: Confirmation of nickname change

  • discord_set_role_positions

    Reorder role hierarchy by setting role positions. Higher position = more authority in the hierarchy. The @everyone role is always at position 0. Roles can only manage other roles below them in the hierarchy. IMPORTANT: The bot can only move roles that are below its own highest role in the hierarchy. Args: - guild_id (string): Discord server/guild ID - positions (array): Array of objects with: - ro

  • discord_setup_community

    Configure the required channels for a Community server. Sets the rules channel and public updates channel which are required for Community features. The server must already have Community enabled in Discord Server Settings. Args: - guild_id (string): Discord server/guild ID - rules_channel_id (string): Channel for server rules (required) - public_updates_channel_id (string): Channel for Discord up

  • discord_setup_onboarding
  • discord_sync_channel_permissions

    Sync a channel's permissions with its parent category. Args: - channel_id (string): Discord channel ID Returns: Confirmation of sync

  • discord_timeout_member

    Timeout (mute) a member for a specified duration. They cannot send messages, react, or join voice. Args: - guild_id (string): Discord server/guild ID - user_id (string): Discord user ID to timeout - duration_minutes (number): Timeout duration in minutes (0 to remove, max 40320 = 28 days) - reason (string, optional): Reason for timeout (visible in audit log) Returns: Confirmation of timeout

  • discord_unban_memberwrite action

    Remove a ban from a user. Args: - guild_id (string): Discord server/guild ID - user_id (string): Discord user ID to unban Returns: Confirmation of unban

  • discord_unpin_message

    Unpin a message in a channel. Args: - channel_id (string): Discord channel ID - message_id (string): Message ID to unpin Returns: Confirmation of message unpinned

Public scan report

scanner v0.1.10 · 2026-09-28 · same rubric, same numbers if you re-run it

no findings
  • Code scan61 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 240 days ago4/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 66/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Discord Node compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
66/100
higher than 23% of 48,273 servers
Tools
67
the typical server has 7
Tools that change things
33%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
59
more than 50% of 11,915 servers with a package

What its tools let an agent do: 45 read · 22 change

Install Discord Node in Claude Code, Cursor or VS Code

Runs npx -y @mahesvara/discord-mcpserver on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add discord-node-mcp -- npx -y @mahesvara/discord-mcpserver
Add to Cursor

Discord Node: common questions

Is Discord Node MCP server safe?
With care: it is graded C, so read the findings first (66/100). Read the Discord Node safety report
How do I install Discord Node?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Discord Node need an API key?
Yes. The registry entry asks for DISCORD_BOT_TOKEN.
Is Discord Node maintained?
The last commit was 275 days ago (2026-01-31). The latest release is v1.1.4.
How does Discord Node compare with other MCP servers?
safety score 66/100 (higher than 23% of 48,273 servers); tools 67 (the typical server has 7); tools that change things 33% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.