better-discord-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DISCORD_MCP_PORT | No | Port for the WebSocket server (must match plugin port) | 6473 |
| DISCORD_MCP_TIMEOUT | No | Timeout in milliseconds for requests | 15000 |
| DISCORD_MCP_REQUIRE_CONFIRM | No | Set to 'false' to disable confirmation requirement for destructive tools | true |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| discord_statusA | Check whether the BetterDiscord plugin bridge is connected. |
| discord_get_contextA | Get the currently selected guild, channel, and the logged-in user. |
| discord_get_guildsA | List all guilds (servers) the user is in. |
| discord_get_channelsA | List channels in a guild. |
| discord_get_messagesA | Read messages from a channel. Use before/after/around (message IDs) to page through history beyond the latest 100. |
| discord_send_messageC | Send a message to a channel. |
| discord_edit_messageA | Edit one of your own messages. |
| discord_search_messagesC | Search messages in a guild (set guildId) or a DM/channel (set channelId). |
| discord_add_reactionB | Add a reaction. Use a unicode emoji (e.g. 👍) or custom as name:id. |
| discord_remove_reactionC | Remove your reaction from a message. |
| discord_trigger_typingC | Show the typing indicator in a channel. |
| discord_open_dmB | Open (or fetch) a DM channel with a user; returns the channelId. |
| discord_get_dmsA | List your open DM and group-DM channels. |
| discord_get_rolesC | List a guild's roles. |
| discord_add_roleB | Add a role to a member (requires Manage Roles). |
| discord_remove_roleC | Remove a role from a member (requires Manage Roles). |
| discord_delete_messageB | Delete a message in a channel. |
| discord_purge_messagesA | Bulk-delete recent messages in a channel (optionally only from one user). Only affects messages newer than 14 days; requires Manage Messages. |
| discord_get_userB | Get info about a user by ID (optionally as a guild member). |
| discord_ban_userA | Ban a user from a guild (requires your account to have Ban Members). |
| discord_kick_userC | Kick a user from a guild (requires Kick Members). |
| discord_timeout_userC | Time out (mute) a guild member for a duration in seconds. Pass 0 to remove the timeout. |
| discord_create_channelB | Create a channel or category in a guild. type: 0=text, 2=voice, 4=category, 5=announcement, 13=stage, 15=forum. Put a channel under a category with parentId. |
| discord_edit_channelC | Edit a channel/category (name, topic, parent/category, position, slowmode, nsfw, voice bitrate/limit). |
| discord_delete_channelA | Delete a channel or category (deleting a category does NOT delete its channels). |
| discord_create_roleC | Create a role. permissions is a permission bitfield as a string. |
| discord_edit_roleB | Edit a role's name/permissions/color/hoist/mentionable. |
| discord_delete_roleC | Delete a role from a guild. |
| discord_pin_messageC | Pin a message. |
| discord_unpin_messageC | Unpin a message. |
| discord_get_pinnedB | List pinned messages in a channel. |
| discord_create_threadC | Create a thread. Pass messageId to thread off a message, otherwise a standalone thread in the channel. |
| discord_edit_threadC | Archive/unarchive, lock/unlock, or rename a thread. |
| discord_create_inviteB | Create an invite link for a channel. |
| discord_get_invitesC | List a guild's invites. |
| discord_delete_inviteC | Revoke an invite by code. |
| discord_search_membersC | Search guild members by username/nickname prefix. |
| discord_set_nicknameA | Set a member's nickname (omit userId to set your own). Pass empty/no nickname to clear. |
| discord_move_member_voiceA | Move a member to another voice channel (they must already be connected). Omit channelId to disconnect. |
| discord_list_emojisC | List a guild's custom emojis. |
| discord_create_emojiB | Create a custom emoji. imageDataUri must be a data URI (data:image/png;base64,...). |
| discord_delete_emojiC | Delete a custom emoji. |
| discord_list_webhooksC | List a channel's webhooks. |
| discord_create_webhookC | Create a webhook on a channel. |
| discord_delete_webhookA | Delete a webhook. |
| discord_get_guild_infoC | Get details about a guild. |
| discord_edit_guildC | Edit guild name/description/icon (iconDataUri is a data URI). |
| discord_leave_guildC | Leave a guild. |
| discord_requestA | Advanced: call ANY Discord REST endpoint directly (covers every feature not wrapped by a named tool). path is relative, e.g. /guilds/{id}/templates. |
| discord_get_messageC | Fetch a single message. |
| discord_get_reactionsB | List users who reacted with an emoji. |
| discord_list_bansD | List a guild's bans. |
| discord_get_banC | Get a single ban entry. |
| discord_get_audit_logC | Read the guild audit log. |
| discord_list_active_threadsC | List active threads in a guild. |
| discord_list_archived_threadsC | List archived threads in a channel. |
| discord_list_stickersA | List a guild's stickers. |
| discord_list_scheduled_eventsC | List a guild's scheduled events. |
| discord_list_automod_rulesC | List a guild's AutoMod rules. |
| discord_reply_messageB | Reply to a message (set ping:false to not ping the author). |
| discord_send_embedC | Send a message with rich embeds (Discord embed objects). |
| discord_crosspost_messageC | Publish (crosspost) a message from an announcement channel. |
| discord_remove_all_reactionsB | Remove all reactions (or all of one emoji) from a message. |
| discord_remove_user_reactionC | Remove a specific user's reaction. |
| discord_create_pollC | Create a poll message. |
| discord_end_pollC | End a poll early. |
| discord_set_channel_permissionB | Set a permission overwrite. type 0=role, 1=member. allow/deny are bitfield strings. |
| discord_delete_channel_permissionC | Remove a permission overwrite. |
| discord_reorder_channelsB | Reorder channels. positions: array of {id, position, parent_id?}. |
| discord_follow_announcementC | Follow an announcement channel into a target channel. |
| discord_create_forum_postC | Create a forum post (thread + starter message). |
| discord_set_voice_statusC | Set a voice channel's status text (empty to clear). |
| discord_unban_userC | Unban a user. |
| discord_get_prune_countB | Count members who would be pruned for inactivity. |
| discord_prune_membersC | Prune (kick) inactive members. |
| discord_set_voice_stateC | Server mute/deafen a member (mute/deaf booleans). |
| discord_reorder_rolesB | Reorder roles. positions: array of {id, position}. |
| discord_thread_joinB | Join a thread. |
| discord_thread_leaveB | Leave a thread. |
| discord_thread_add_memberC | Add a member to a thread. |
| discord_thread_remove_memberC | Remove a member from a thread. |
| discord_delete_stickerC | Delete a guild sticker. |
| discord_create_scheduled_eventC | Create a scheduled event. entityType: 1=stage,2=voice,3=external. Times are ISO8601. |
| discord_edit_scheduled_eventC | Edit a scheduled event. fields = raw Discord event fields. |
| discord_delete_scheduled_eventC | Delete a scheduled event. |
| discord_create_automod_ruleC | Create an AutoMod rule. rule = raw Discord AutoMod rule object. |
| discord_delete_automod_ruleC | Delete an AutoMod rule. |
| discord_list_integrationsC | List guild integrations. |
| discord_delete_integrationC | Delete a guild integration. |
| discord_get_vanity_urlC | Get the guild's vanity invite. |
| discord_get_welcome_screenC | Get the guild welcome screen. |
| discord_edit_welcome_screenC | Edit the welcome screen. fields = raw Discord welcome-screen fields. |
| discord_list_relationshipsB | List friends/blocked (relationships). |
| discord_add_friendB | Send a friend request (by userId, or username+discriminator). |
| discord_remove_relationshipB | Remove a friend / cancel request / unblock. |
| discord_block_userC | Block a user. |
| discord_get_noteC | Get your private note on a user. |
| discord_set_noteC | Set your private note on a user. |
| discord_set_statusA | Set your status (online/idle/dnd/invisible) and/or custom status text. |
| discord_edit_webhookB | Edit a webhook's name/channel. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sys0xdbg/better-discord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server