discord-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DISCORD_GUILD_ID | No | Optional default server ID so tools don't need guild_id every call | |
| DISCORD_BOT_TOKEN | Yes | Your Discord bot token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| discord_list_channelsA | List a server's channels and categories, optionally filtered by kind or name. |
| discord_get_channelA | Get one channel or thread: type, topic, parent, slowmode, and for threads the archive/lock state. |
| discord_create_channelA | Create a channel or category in a server. Needs the Manage Channels permission. |
| discord_edit_channelA | Rename, retopic, move, set slowmode on a channel — or archive/lock a thread. |
| discord_delete_channelA | Permanently delete a channel or thread and every message in it. Irreversible. |
| discord_list_threadsA | List active (unarchived) threads in a server, optionally only under one channel. |
| discord_create_threadA | Start a thread — from an existing message, or standalone in a channel. |
| discord_whoamiA | Identify the bot account this server is running as. |
| discord_list_guildsA | List every server (guild) the bot has been invited to. |
| discord_get_guildB | Get details for one server: name, owner, member and online counts, creation date. |
| discord_search_membersA | Find server members whose username or nickname starts with a string. |
| discord_list_membersA | List server members in join order with cursor pagination. |
| discord_get_memberA | Get one member's profile in this server: nickname, roles, join date, timeout status. |
| discord_set_member_roleA | Give a role to a member, or take it away. |
| discord_read_messagesA | Read recent messages from a channel or thread, newest first, with cursor pagination. |
| discord_get_messageA | Fetch one message by ID, including attachments, embeds and reactions. |
| discord_search_messagesA | Find messages in a channel containing a phrase, optionally by one author. |
| discord_send_messageA | Post a message to a channel, thread, or DM channel as the bot. Optionally as a reply. |
| discord_edit_messageA | Replace the text of a message the bot sent. Cannot edit other users' messages. |
| discord_delete_messageA | Delete one message. Deleting others' messages needs Manage Messages. Irreversible. |
| discord_reactA | Add or remove the bot's own reaction on a message. |
| discord_list_pinsA | List the pinned messages in a channel (max 50). |
| discord_pin_messageB | Pin or unpin a message in its channel. Needs Manage Messages. |
| discord_send_dmA | Send a direct message from the bot to a user. |
| discord_timeout_memberA | Time out a member (no posting, reacting or voice) for up to 28 days, or lift a timeout with minutes=0. |
| discord_kick_memberA | Remove a member from the server. They can rejoin with an invite. Needs Kick Members. |
| discord_ban_memberA | Ban a user from the server (they cannot rejoin until unbanned), optionally deleting their recent messages. |
| discord_unban_memberA | Lift a ban so the user can rejoin. Needs Ban Members. |
| discord_list_bansA | List banned users and the reason recorded for each. Needs Ban Members. |
| discord_bulk_delete_messagesA | Delete 2–100 messages from one channel in a single call. Irreversible. Needs Manage Messages. |
| discord_get_audit_logA | Read the server's audit log — who did what (bans, kicks, deletions, channel/role changes) and why. |
| discord_list_rolesA | List a server's roles from highest to lowest, with IDs, colors and flags. |
| discord_create_roleA | Create a role. Needs Manage Roles. New roles appear at the bottom of the hierarchy. |
| discord_edit_roleA | Change a role's name, color, hoist/mentionable flags, or permissions. Only passed fields change. |
| discord_delete_roleA | Delete a role, removing it from every member. Irreversible — confirm with the user first. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 35 tools
Each tool targets a distinct resource plus action (list/get/create/edit/delete on channels, roles, members, messages), and descriptions explicitly disambiguate the closest pairs like discord_delete_message vs discord_bulk_delete_messages and discord_search_members vs discord_list_members. The channel/thread overlap is handled by clear notes (e.g. discord_get_channel covers threads, discord_send_message accepts a thread ID).
Every tool follows a strict discord_verb_noun pattern (discord_list_channels, discord_create_role, discord_ban_member) with the same namespace prefix. No camelCase or naming drift anywhere in the set.
35 tools is heavy and at the upper end of what an agent can reliably select from, even though Discord is a genuinely broad domain. Most tools earn their place, but some (pins, reactions, bulk delete) could be consolidated.
Coverage is strong across messages, channels, threads, roles, members, moderation, and the audit log, including lifecycle operations like edit/delete and unban. Minor gaps remain (invites, emoji/sticker/webhook management, guild settings), but core workflows have no dead ends.