discp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port to use when running in HTTP / SSE mode (e.g. 8085) | |
| DISCORD_TOKEN | Yes | Your Discord token (user/alt account token or bot token depending on DISCORD_ACCOUNT_TYPE) | |
| MCP_TRANSPORT | No | Set to 'http' to run Discp as a persistent network microservice in HTTP / SSE mode | |
| DISCORD_GUILD_ID | No | Default Server ID (Optional: commands will default to this guild) | |
| DISCORD_ACCOUNT_TYPE | Yes | 'user' (for user/alt account token) or 'bot' (for 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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_serversA | List all Discord servers that the current account is in, including server ID, name, member count, and owner status |
| get_server_infoB | Get detailed discord server information including members, channels, owner, boost level, and features |
| modify_server_settingsC | Edit server settings including name, description, AFK channel/timeout, system channel, rules channel, and verification level |
| create_serverA | Create a new Discord guild. Note: Discord REST API restricts bot accounts to only creating guilds when the bot is in fewer than 10 guilds. |
| setup_community_serverB | Create or configure a fully structured, aesthetic Discord server complete with categories, channels, roles, and permissions in one automated, human-paced workflow (protects against rate limits and warning flags) |
| get_audit_logsB | Fetch server audit log entries with optional filtering by user and limit |
| get_server_vanity_urlA | Get the vanity invite URL for a server if enabled (requires Level 3 boost) |
| get_server_widgetC | Get server widget settings and embed URL |
| modify_server_widgetC | Enable, disable, or configure the server widget channel |
| get_prune_countA | Calculate the number of inactive members that would be pruned |
| prune_membersC | Prune inactive members from the server who have no roles |
| create_text_channelC | Create a new text channel in a server |
| create_voice_channelC | Create a new voice channel in a server |
| create_stage_channelC | Create a new stage channel for audio events and presentations |
| create_categoryC | Create a channel category in a server |
| edit_channelC | Edit properties of a text, voice, or stage channel |
| edit_categoryC | Edit category name or position |
| delete_channelC | Delete a channel from a server |
| delete_categoryB | Delete a channel category (channels inside will become unparented) |
| list_channelsC | List all channels in a server with types and IDs |
| list_channels_in_categoryC | List all channels grouped under a specific category |
| find_channelC | Find a channel by exact or partial name in a server |
| get_channel_infoB | Get detailed information about a specific channel |
| move_channelC | Move a channel to another category and/or change its position index |
| list_channel_permissionsC | List all permission overwrites for a channel broken down by role and member |
| upsert_role_channel_permissionsC | Create or update channel permission overwrite for a role |
| upsert_member_channel_permissionsC | Create or update channel permission overwrite for an individual member |
| delete_channel_permissionC | Delete a permission overwrite for a role or member from a channel |
| send_messageA | Send a message to a specific Discord channel with optional reply threading and automatic mention resolution |
| edit_messageB | Edit an existing message previously sent by the bot with optional automatic mention resolution |
| delete_messageC | Delete a specific message from a channel |
| read_messagesB | Read message history from a channel with pagination support (before, after, around) |
| bulk_delete_messagesA | Bulk delete (purge) multiple recent messages in a channel (max 100, messages must be < 14 days old) |
| pin_messageC | Pin a message to the top of a channel |
| unpin_messageC | Unpin a message from a channel |
| list_pinned_messagesB | List all pinned messages in a channel |
| add_reactionC | Add an emoji reaction to a message |
| remove_reactionC | Remove an emoji reaction from a message |
| clear_reactionsC | Remove all reactions from a message |
| get_message_attachmentsA | Inspect file attachments on a specific message (file names, sizes, content types, URLs) |
| get_user_infoB | Get profile information about a Discord user by ID (avatar, bot status, creation date) |
| get_user_id_by_nameB | Get a Discord user ID by username or nickname in a server for mention formatting (<@id>) |
| send_direct_messageC | Send a direct private message (DM) to a specific Discord user |
| edit_direct_messageC | Edit a previously sent direct message to a user |
| delete_direct_messageC | Delete a previously sent direct message to a user |
| read_direct_messagesC | Read direct message conversation history with a user |
| kick_memberA | Kick a member from the server. They can rejoin if an invite is available. |
| ban_memberC | Ban a user from the server and optionally purge recent messages (0 to 604800 seconds = 7 days) |
| unban_memberC | Remove a ban from a user, allowing them to rejoin |
| timeout_memberB | Place a member in timeout (mute/communication disabled) for up to 28 days (2419200 seconds) |
| remove_timeoutC | Remove an active timeout from a member |
| set_member_nicknameB | Change a member nickname in the server (empty string resets to original username) |
| list_bansC | List banned users from the server with ban reasons |
| get_ban_infoC | Get detailed ban information for a specific banned user |
| list_membersC | List members of the server with roles and join dates |
| search_membersB | Search for members in a server by username or nickname prefix |
| get_member_infoB | Get detailed information about a member in a server (roles, join date, voice state, permissions) |
| list_rolesB | List all roles in a server with ID, color, position, and permission summaries |
| get_role_infoC | Get detailed information about a specific role |
| create_roleC | Create a new role on the server with custom properties |
| edit_roleC | Edit an existing role settings and permissions |
| delete_roleB | Permanently delete a role from the server |
| assign_roleC | Assign a role to a user in the server |
| remove_roleC | Remove a role from a user in the server |
| list_automod_rulesB | List all AutoModeration rules configured on the server |
| get_automod_ruleB | Get detailed configuration of a specific AutoModeration rule |
| create_automod_ruleC | Create a new AutoModeration rule (e.g. block bad words, spam, or mention raids) |
| edit_automod_ruleB | Edit an existing AutoModeration rule (name or toggle enabled state) |
| delete_automod_ruleB | Permanently delete an AutoModeration rule from the server |
| create_pollC | Create an official interactive Discord poll in a channel |
| end_pollA | Immediately end and close an active poll so no further votes can be cast |
| get_poll_answer_votersC | Fetch users who voted for a specific answer in a poll |
| create_threadB | Start a new thread in a text channel or from a specific existing message |
| modify_threadC | Update thread properties (archive/unarchive, lock/unlock, rename, slowmode) |
| join_threadC | Have the bot join a thread to receive notifications and messages |
| leave_threadB | Have the bot leave a thread |
| list_active_threadsB | List all active threads across the server |
| create_forum_channelC | Create a new forum channel for community discussions and threads |
| edit_forum_channelC | Edit forum channel settings (name, topic, sort order, layout, slowmode) |
| list_forum_channelsC | List all forum channels in the server |
| get_forum_channel_infoC | Get detailed forum info including active posts and available tags |
| list_forum_tagsA | List all tags configured on a forum channel |
| create_forum_postC | Create a new forum post (thread) with an initial message and optional tags |
| list_forum_postsC | List active posts in a forum channel |
| modify_forum_postC | Modify forum post properties (lock, archive, pin, tags) |
| move_voice_memberB | Move a member to another voice or stage channel (they must currently be connected to voice) |
| disconnect_voice_memberC | Disconnect a member from their current voice channel |
| modify_voice_stateC | Server mute or deafen a member in voice channels across the server |
| create_scheduled_eventC | Schedule a server event (Stage, Voice, or External location) |
| edit_scheduled_eventB | Modify details of a scheduled event or change its status (start, complete, cancel) |
| delete_scheduled_eventA | Permanently delete a scheduled event |
| list_scheduled_eventsC | List all scheduled and active events on the server |
| get_scheduled_event_usersC | Get users interested in or subscribed to a scheduled event |
| create_inviteC | Create an invite link for a channel with custom expiration and usage limits |
| list_invitesC | List all active invites for the server with statistics |
| delete_inviteA | Revoke/delete an invite link so it can no longer be used |
| get_invite_detailsB | Get details about an invite code (channel, server, online member counts) |
| get_bot_infoB | Get current bot application status, username, ping, server count, and uptime |
| generate_bot_invite_urlB | Generate an official OAuth2 invite link to add a bot or application to a server with custom permissions |
| create_webhookC | Create a new webhook on a specific text channel |
| delete_webhookC | Delete a webhook by ID |
| list_webhooksA | List all webhooks configured on a specific channel or across a whole server |
| send_webhook_messageC | Send a message via webhook URL with custom display name and avatar |
| list_emojisC | List all custom emojis uploaded to the server |
| get_emoji_detailsB | Get details about a specific custom emoji |
| create_emojiA | Upload a new custom emoji to the server from an image URL or base64 data URI (max 256KB) |
| edit_emojiC | Edit custom emoji name or restricted roles |
| delete_emojiC | Permanently delete a custom emoji from the server |
| list_stickersB | List all custom stickers available on the server |
| get_sticker_detailsB | Get details about a specific custom sticker |
| create_stickerB | Upload a new custom sticker to the server (PNG or APNG, max 512KB, exactly 320x320 pixels) |
| delete_stickerB | Permanently delete a custom sticker from the server |
| get_discord_symbolsA | Get curated aesthetic Discord symbols, dividers, channel prefixes, role badges, and server templates for building attractive Discord servers |
| search_discord_symbolsB | Search for Discord symbols, aesthetic combos, and dividers locally and dynamically from online aesthetic symbol databases (emojicombos/emojidb) |
| format_discord_mentionC | Generate proper Discord Markdown mentions and shortcuts for users, roles, channels, timestamps, custom emojis, and slash commands |
| resolve_discord_mentionsB | Automatically converts plain-text channel names (#general), role names (@Moderator), and usernames (@alice) in a message to valid clickable Discord mention syntax (<#id>, <@&id>, <@id>) |
| get_discord_syntax_guideB | Get a comprehensive reference guide of all Discord Markdown shortcuts, techniques, mentions, timestamps, subtext, spoilers, and internal navigation links |
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 117 tools
With 117 tools, several overlapping groups exist (e.g., member lookup via search_members, get_user_id_by_name, get_user_info, get_member_info; channel discovery via list_channels, find_channel, get_channel_info; mention formatting via format_discord_mention and resolve_discord_mentions). Detailed descriptions help clarify intent, but more than a couple of tools could be confused, fitting 'some overlap exists'.
Nearly all tools follow a consistent snake_case verb_noun pattern, making names highly predictable. Minor deviations exist, such as edit_ vs modify_ for update operations and unique verbs like upsert and setup, but overall the convention is strongly maintained.
117 tools vastly exceeds the practical range for an MCP server, creating an unwieldy surface that forces agents to sift through many near-duplicate operations. The rubric explicitly defines 50+ tools as an extreme mismatch.
The tool surface covers CRUD for most Discord entities (servers, channels, messages, roles, members, emojis, webhooks, invites, scheduled events, etc.) with strong breadth. A few gaps remain, such as no edit_sticker, no get_poll details, and no forum tag creation/deletion, but these are minor and can be worked around.