discord-bot-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DISCORD_GUILD_ID | Yes | The only Discord server this instance may operate (required). | |
| DISCORD_BOT_TOKEN | No | Bot token supplied by the process environment (non-Keychain option). | |
| DISCORD_ALLOW_WRITES | No | Enables messaging and other ordinary mutations. | false |
| DISCORD_KEYCHAIN_ACCOUNT | No | Narrows the Keychain lookup to one account. | |
| DISCORD_KEYCHAIN_SERVICE | No | Keychain service containing the token (macOS option). | |
| DISCORD_ALLOWED_CHANNEL_IDS | No | Comma-separated channel IDs. | |
| DISCORD_ALLOW_DESTRUCTIVE_ADMIN | No | Enables admin/destructive and raw non-GET operations. | false |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| discord_get_serverA | Get the Discord server configured for this local MCP instance. |
| discord_list_channelsA | List channels visible through this local MCP instance. A local allowlist may narrow the result. |
| discord_read_messagesA | Read recent messages from an allowed channel. |
| discord_send_messageA | Send a Discord message or reply as the configured bot. Writes must be enabled locally. |
| discord_create_threadA | Create a public thread in an allowed text channel. Writes must be enabled locally. |
| discord_add_reactionA | Add a reaction as the configured bot. Writes must be enabled locally. |
| discord_admin_serverC | Read or modify the configured Discord server's settings. |
| discord_admin_channelsB | List, create, update, delete, reorder, or change permission overwrites for rooms and categories. |
| discord_admin_rolesB | List, create, update, reorder, or delete server roles. |
| discord_admin_membersC | Inspect or administer members, roles, timeouts, voice state, kicks, and bans. |
| discord_admin_messagesC | Get, edit, delete, bulk-delete, pin, unpin, or list pinned messages. |
| discord_admin_threadsC | List active threads or update and manage thread membership. |
| discord_admin_eventsC | List, create, update, or delete scheduled server events. |
| discord_admin_automodB | List, get, create, update, or delete AutoMod rules. |
| discord_admin_emojisC | List, get, create, update, or delete server emojis. |
| discord_admin_stickersB | List, get, create, update, or delete server stickers using JSON-capable endpoints. |
| discord_admin_webhooksA | List, create, update, or delete webhooks. Returned webhook tokens are always redacted. |
| discord_admin_invitesA | List or create invites for the server/channels. Deletion is available through the guarded raw admin tool. |
| discord_admin_audit_logB | Read the server audit log with Discord's standard filters. |
| discord_admin_requestA | Advanced access to any Discord REST endpoint scoped to the configured guild, its channels, or its webhooks. Non-GET calls require destructive admin to be enabled locally. Full URLs and cross-guild paths are rejected; returned secrets are redacted. |
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 20 tools
Most tools have clearly distinct purposes, but there is overlap between basic interaction tools and admin tools, e.g., discord_list_channels vs discord_admin_channels both list channels, and discord_read_messages vs discord_admin_messages both read messages. The admin prefix helps, but an agent might still misselect when a simple action could be done by either.
The naming is largely consistent: basic tools use discord_verb_noun (e.g., discord_list_channels, discord_send_message), while admin tools uniformly use discord_admin_resource (e.g., discord_admin_roles, discord_admin_webhooks). The main inconsistency is discord_get_server vs discord_admin_server, and 'read' vs 'list' verbs, but the overall pattern is predictable.
20 tools is borderline heavy. The count is justified by the broad admin scope covering many Discord resources, but it feels somewhat large for a single MCP server. The basic interaction tools are only 5, while the admin tools take up 15, making the set feel imbalanced.
The tool set covers a comprehensive range of Discord server operations: channels, roles, members, messages, threads, events, automod, emojis, stickers, webhooks, invites, and audit logs. Basic bot interactions (send, read, react, thread) are included, and the raw admin request tool fills any remaining gaps, leaving no obvious dead ends.