discord-mcp MCP Server

If you find this useful, consider giving it a star on GitHub — it helps others discover the project!

Local serverstdioMIT

What is the discord-mcp Server?

discord-mcp is an MCP project maintained in the hardheadhackerhead/discord-mcp repository. The maintainer describes its purpose as “If you find this useful, consider giving it a star on GitHub — it helps others discover the project!”. Read the project documentation for the complete scope.

Installation

The documented npm package is @quadslab.io/discord-mcp. The configuration below comes from the maintainer’s example; adapt its paths and account values to your environment.

Configuration values

The example declares DISCORD_TOKEN, DISCORD_GUILD_ID. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
CategoryTools
Guild2
Roles11
Channels20
Members15
Messages14
Reactions1
Threads15
Forums5
Webhooks4
Auto-Moderation4
Polls3
Onboarding2
Total139
list_guildsList all servers the bot is a member of
get_guild_infoDetailed server info — member count, channels, roles, features, boost tier
list_rolesList all roles sorted by position with colors and member counts
create_roleCreate a new role with name, color, hoist, and mentionable options
delete_roleDelete a role (with managed role protection)
modify_roleChange a role's name, color, hoist, mentionable, or position
get_role_permissionsView all permissions granted to a role
modify_role_permissionsGrant or revoke specific permissions on a role
set_role_iconSet a Unicode emoji or image as the role icon (requires boost level 2+)
assign_roleAdd a role to a member
remove_roleRemove a role from a member
get_role_membersList all members who have a specific role
clone_roleDuplicate a role with all its permissions and settings
list_channelsList all channels organized by category
create_text_channelCreate a new text channel, optionally in a category
create_voice_channelCreate a new voice channel with bitrate and user limit
create_categoryCreate a new channel category
create_forum_channelCreate a new forum channel with optional tags and default settings
delete_channelDelete any channel type
modify_channelChange name, topic, category, NSFW, position, user limit
set_channel_permissionsSet permission overwrites for a role or user on a channel
view_channel_permissionsView all permission overwrites on a channel
lock_channelDeny SendMessages for @everyone (quick lock)
unlock_channelRemove SendMessages deny for @everyone
set_slowmodeSet rate limit (0–21600 seconds) on a text channel
clone_channelDuplicate a channel with all permissions and settings
reorder_channelsReorder channels by specifying new positions
set_voice_regionSet the RTC region for a voice channel
follow_announcement_channelFollow an announcement channel to cross-post into another channel
create_stage_channelCreate a new stage channel
get_channel_invitesList all invites for a specific channel
set_channel_topicSet or clear a channel's topic/description
get_voice_membersList all members currently in a voice or stage channel
list_membersList members with optional role and search filters
get_memberDetailed member info — roles, join date, account age, permissions
kick_memberKick a member from the server
ban_memberBan a member with optional message deletion (0–7 days)
unban_memberRemove a ban by username or user ID
timeout_memberApply a timeout (10m, 1h, 1d, 1w) or remove one
prune_membersRemove inactive members (supports dry run and role filtering)
bulk_assign_roleAssign a role to multiple members at once
bulk_remove_roleRemove a role from multiple members at once
set_nicknameChange a member's nickname or reset it
move_to_voiceMove a member to a different voice channel
disconnect_from_voiceDisconnect a member from their voice channel
get_member_permissionsGet a member's effective permissions in a specific channel
search_membersSearch members by username, nickname, or role with advanced filters
bulk_timeout_membersApply a timeout to multiple members at once
get_messagesFetch recent messages from a text channel, voice channel, or thread
get_messageFetch a single message by ID with full details
send_messageSend a text message, optionally as a reply
send_embedSend a rich embed with title, fields, images, and footer
edit_messageEdit a message previously sent by the bot
delete_messageDelete a single message by ID
bulk_delete_messagesDelete 2–100 messages at once (< 14 days old), optionally filtered by user
crosspost_messagePublish a message in an announcement channel to all following channels
pin_messagePin a message
unpin_messageUnpin a message
list_pinned_messagesGet all pinned messages in a channel
add_reactionAdd a reaction from the bot to a message
remove_reactionRemove the bot's reaction from a message
search_messagesSearch messages in a channel by content, author, or date range
get_reactionsGet all reactions on a message with full reactor details — account creation date, server join date, roles, avatar, boost status. Optionally filter by emoji.
edit_serverModify server name, description, verification level, notification defaults
list_invitesList all active invite links with usage stats and expiration
create_inviteGenerate a new invite with configurable max age, uses, and temporary flag
delete_inviteRevoke an invite by code
get_audit_logFetch audit log entries, optionally filtered by action type or user
list_bansView all banned users with reasons
get_welcome_screenGet the server welcome screen configuration
set_welcome_screenConfigure the welcome screen with description and featured channels
get_widgetGet the server widget settings
set_widgetConfigure the server widget (enable/disable, set channel)
get_vanity_urlGet the server vanity URL (requires VANITY_URL feature)
list_integrationsList all integrations (bots, apps) connected to the server
delete_integrationRemove an integration from the server
get_server_previewGet the server's public preview information
set_server_iconSet or remove the server icon from a URL
set_server_bannerSet or remove the server banner image (requires boost level 2+)
list_threadsList active threads, optionally filtered to a channel
list_archived_threadsList public or private archived threads in a channel with pagination
get_threadGet detailed thread info — type, slowmode, auto-archive, owner, URL
get_thread_messagesFetch messages from a thread with before/after pagination
get_thread_pinned_messagesGet all pinned messages in a thread
create_threadStart a thread from a message or as a standalone public thread
edit_threadEdit thread name, auto-archive duration, slowmode, or locked/archived status
archive_threadArchive a thread
unarchive_threadUnarchive a thread
delete_threadDelete a thread
lock_threadLock a thread (prevent new messages without archiving)
unlock_threadUnlock a thread
list_thread_membersList all members of a thread
add_thread_memberAdd a member to a thread
remove_thread_memberRemove a member from a thread
create_forum_postCreate a new post (thread) in a forum channel with optional tags
list_forum_tagsList all available tags on a forum channel
create_forum_tagAdd a new tag to a forum channel (max 20 per channel)
edit_forum_tagEdit an existing forum tag's name, emoji, or moderated status
delete_forum_tagRemove a tag from a forum channel
list_emojisList all custom emojis with names, IDs, animated status, and URLs
create_emojiUpload a new custom emoji from a URL
delete_emojiRemove a custom emoji by name or ID
rename_emojiRename a custom emoji
list_stickersList all custom stickers with descriptions and format info
create_stickerUpload a new custom sticker from a URL
delete_stickerRemove a custom sticker by name or ID
list_webhooksList all webhooks, optionally filtered to a channel
create_webhookCreate a webhook on a channel with name and optional avatar
delete_webhookDelete a webhook by ID
send_webhook_messageSend a message via webhook with optional name/avatar override
list_eventsList all scheduled events with times, status, type, and attendee count
create_eventCreate a voice, stage, or external event with start/end times
edit_eventModify an event's name, description, times, or status
delete_eventDelete a scheduled event
get_event_usersList users who have expressed interest in an event
list_stage_instancesList all active stage instances with topic and channel info
start_stageStart a new stage instance on a stage channel with a topic
end_stageEnd an active stage instance
list_automod_rulesList all automod rules with triggers, actions, and exemptions
create_automod_ruleCreate a rule — keyword filter, spam detection, keyword presets, or mention spam
edit_automod_ruleModify a rule's keywords, actions, exemptions, or enabled state
delete_automod_ruleDelete an automod rule
create_pollCreate a poll in a channel with multiple choice options and duration
get_poll_resultsGet the current results and vote counts for a poll
end_pollEnd a poll early and finalize the results
send_dmSend a direct message to a server member
send_dm_embedSend a rich embed as a direct message to a server member
set_bot_presenceSet the bot's status and activity (playing, watching, listening, etc.)
get_bot_infoGet the bot's current user info, status, and connection details
list_templatesList all templates for the server
create_templateCreate a new server template from the current server configuration
delete_templateDelete a server template by code
sync_templateSync a server template with the current server state
list_commandsList all registered application (slash) commands
create_commandRegister a new slash command with name, description, and options
edit_commandModify an existing slash command
delete_commandRemove a registered slash command
get_onboardingGet the server's onboarding configuration and prompts
edit_onboardingEdit the server onboarding settings, prompts, and default channels

How to install the discord-mcp Server

{
  "mcpServers": {
    "discord": {
      "command": "npx",
      "args": [
        "-y",
        "@quadslab.io/discord-mcp"
      ],
      "env": {
        "DISCORD_TOKEN": "YOUR_DISCORD_TOKEN",
        "DISCORD_GUILD_ID": "your-server-id"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
DISCORD_TOKENDeclared in the maintainer’s client configuration.Check documentation
DISCORD_GUILD_IDDeclared in the maintainer’s client configuration.Check documentation