discord-rpc-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DISCORD_CLIENT_ID | Yes | Your Discord application ID (also called Client ID) | |
| DISCORD_ALLOW_CONTROL | No | Set to 1 to enable control actions like changing volume or switching channels. Disabled by default. | 0 |
| DISCORD_CLIENT_SECRET | Yes | Your Discord application's client secret |
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
} |
| resources | {
"subscribe": true,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_guildsA | List guild metadata available to the Discord client. |
| get_guildA | Get one guild by ID. |
| get_channelsA | List channel metadata for a guild. |
| get_channelA | Read a known channel, DM or group DM. Only the client-loaded message window is available; this can move the Discord view. It is not full history or server-side search. |
| get_selected_voice_channelA | Get the currently selected voice channel, or null. |
| get_voice_settingsB | Get local voice settings. |
| subscribeA | Subscribe to an RPC event. Channel events require channel_id; GUILD_STATUS requires guild_id. Read received events with get_events. Subscribe again after a connection gap. Additional Discord scopes may be required. |
| unsubscribeA | Unsubscribe using the same event and target IDs used to subscribe. |
| get_eventsA | Read the bounded in-memory event buffer. Pass nextCursor as after on subsequent calls. Does not connect to Discord or fetch historical messages. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| discord-events | Snapshot of the bounded Discord event buffer, including cursor and gap metadata. Subscribe to resource updates for change notifications; use get_events for cursor-based reads. |
TDQS
Scored across 9 tools
Each tool targets a distinct concern: voice state, event subscription, guild/channel lookup, and the event buffer. The singular/plural pairs like get_guild vs get_guilds and get_channel vs get_channels are clearly separated by their descriptions.
The retrieval tools consistently follow a get_<resource> pattern using lowercase snake_case. subscribe and unsubscribe deviate by being verb-only, but they form a clear paired command group, so the mix is minor rather than confusing.
Nine tools is a well-scoped size for a Discord RPC client surface: voice/event tools plus guild/channel lookup tools cover the core use case without redundancy. Each tool has a clear purpose and the set does not feel bloated.
The set covers the main read-only Discord RPC workflows: retrieving guilds, channels, voice state, and subscribing to/reading events. It lacks mutating RPC operations like set_voice_settings or activity control, but those appear to be outside the server's apparent monitoring-oriented scope.