Discord MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DISCORD_BOT_TOKEN | Yes | Discord bot token used to authenticate Discord API calls |
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_guildsA | Fetch all guilds (servers) the bot belongs to. |
| get_guildC | Fetch guild information. |
| get_guild_channelsC | Fetch all channels in a guild. |
| edit_channelC | Modify channel settings. |
| create_channelC | Create a text channel. |
| delete_channelD | Delete a channel. |
| send_messageB | Send a message to a channel. |
| get_messagesC | Fetch recent messages from a channel. |
| edit_messageC | Edit an existing message. |
| get_guild_rolesC | Fetch all roles in a guild. |
| create_roleC | Create a new role in a guild. |
| edit_roleC | Edit an existing role's settings. |
| delete_roleC | Delete a role from a guild. |
| add_member_roleC | Assign a role to a guild member. |
| remove_member_roleC | Remove a role from a guild member. |
| get_guild_membersA | Fetch members of a guild (up to |
| get_guild_memberC | Fetch a single guild member's info. |
| edit_memberC | Edit a guild member (nickname, voice mute/deafen state). |
| kick_memberC | Kick a member from the guild. |
| ban_memberC | Ban a member from the guild. |
| timeout_memberA | Timeout a member for |
| create_webhookB | Create a webhook in a channel — useful for posting alerts without full bot permissions. |
| get_channel_webhooksB | Fetch all webhooks for a channel. |
| delete_webhookC | Delete a webhook. |
| execute_webhookC | Send a message via webhook, with optional embeds. |
| add_reactionB | Add a reaction to a message. |
| create_threadC | Create a thread from an existing message. |
| create_inviteA | Create an invite link for a channel. max_age in seconds (0 = never expires), max_uses (0 = unlimited). |
| get_guild_invitesC | Fetch all active invites for a guild. |
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 29 tools
Each tool targets a distinct action and resource (e.g., send_message vs create_webhook, add_reaction vs timeout_member). No two tools overlap in purpose.
All tools use snake_case with a verb_noun pattern (e.g., delete_channel, add_member_role). Naming is uniform and predictable.
29 tools is slightly high but reasonable given the broad domain coverage (channels, roles, members, webhooks, etc.). Each tool serves a clear need.
Covers most common Discord operations (CRUD for channels, roles, messages, members, webhooks). Missing delete_message and thread lifecycle beyond creation, but core workflows are present.