discord-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DISCORD_MCP_TZ | No | IANA timezone for timestamps, such as Asia/Seoul. Defaults to the local timezone. | |
| DISCORD_BOT_TOKEN | No | Bot token. Takes priority over the .env file. Alternatively, the token can be provided in a file at ~/.claude/channels/discord/.env (or in the directory set by DISCORD_STATE_DIR) as a single line DISCORD_BOT_TOKEN=...; if you already ran /discord:configure for the channel plugin, that file already exists. | |
| DISCORD_STATE_DIR | No | Where to find the .env file containing the bot token. Defaults to ~/.claude/channels/discord. Same variable the channel plugin uses. |
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 |
|---|---|
| list_serversA | List the Discord servers (guilds) the bot is a member of. |
| list_channelsA | List a server's channels and active threads, in category order. server_id: a server ID from list_servers Channels of type "forum" hold no messages themselves; read their threads instead. |
| read_messagesA | Read messages from one channel, thread, or DM, oldest first. channel_id : a channel or thread ID from list_channels limit : maximum number of messages (default 50, max 500) since_hours: if set, only messages from the last N hours. e.g. 24 = the last day before : read messages older than this message ID (to page further back) |
| read_server_recentA | Collect recent messages from every channel and active thread in a server. server_id : a server ID from list_servers since_hours : how many hours back to read (default 24) per_channel_limit: maximum messages per channel (default 100, max 500) Channels with no new messages are skipped without an API call. Channels the bot cannot view are listed under "skipped" with the reason. |
| send_messageA | Post a message as the bot to a channel, thread, or DM. Always show the user the target channel and the exact text, and get their confirmation, before calling this. channel_id: target channel or thread ID content : message text. Over 2000 characters, it is split at line breaks reply_to : message ID to reply to (optional) @everyone, @here, and role mentions never ping; only user mentions do. |
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 5 tools
The five tools have mostly distinct purposes: listing servers, listing channels, reading messages, reading a server's recent messages, and sending messages. The only potential overlap is between read_messages and read_server_recent, but their scope (one channel vs. all channels in a server) is clearly described.
All tool names follow a consistent snake_case verb_noun pattern (list_servers, list_channels, read_messages, read_server_recent, send_message). The slight variation in read_server_recent is still predictable and readable.
Five tools is a well-scoped size for a Discord bot focused on discovering servers/channels, reading messages, and sending messages. Each tool has a clear role and there is no redundant clutter.
The core read-and-send workflow is covered, but the surface lacks message editing/deletion, direct message lookup by ID, and any way to discover DM channels despite read_messages and send_message claiming DM support. These are notable gaps for a general Discord messaging toolset.