# Discord Bot — how to use (mcp.ai)

Discordbot refers to automated programs on Discord servers, performing tasks like moderation, music playback, and user engagement to enhance community interactions

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_discordbot?ms=1781542320000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `discordbot_add_group_dm_user`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/discordbot`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/discordbot/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/discordbot/add/group/dm/user` — Adds a user to a discord group direct message (dm) channel.
  - body: { nick?: string, user_id: string, channel_id: string, access_token?: string }
- `POST https://api.mcp.ai/api/discordbot/add/guild/member` — Adds a user (who is not already a member) to a guild using their `access token` (which must have `guilds.join` scope), optionally setting nickname, roles, mute/deaf status, or flags.
  - body: { deaf?: boolean, mute?: boolean, nick?: string, flags?: integer, roles?: null[], user_id: string, guild_id: string, access_token: string }
- `POST https://api.mcp.ai/api/discordbot/add/guild/member/role` — Assigns a role to a guild member, provided the bot has 'manage roles' permission in the guild and the role to be assigned is hierarchically lower than the bot's highest role.
  - body: { role_id: string, user_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/add/my/message/reaction` — Adds an emoji reaction from the authenticated user/bot to a specific message in a discord channel; does not return information about existing reactions.
  - body: { channel_id: string, emoji_name: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/add/thread/member` — Adds a user to a specific, unarchived thread; the user must have access to the thread's parent channel, and for private threads, the bot must already be a member.
  - body: { user_id: string, channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/ban/user/from/guild` — Permanently bans a user from a discord guild, optionally deleting their recent messages (specify deletion period in seconds or days, not both).
  - body: { user_id: string, guild_id: string, delete_message_days?: integer, delete_message_seconds?: integer }
- `POST https://api.mcp.ai/api/discordbot/bulk/ban/users/from/guild` — Bans up to 200 users from a discord guild, optionally deleting their recent messages; the bot must have 'ban members' permission in the guild, and this action is irreversible.
  - body: { guild_id: string, user_ids: string[], delete_message_seconds?: integer }
- `POST https://api.mcp.ai/api/discordbot/bulk/delete/messages` — Atomically bulk deletes messages in a discord channel for moderation or maintenance; deletion may not be instantaneous and messages are unrecoverable.
  - body: { messages: string[], channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/create/application/command` — Creates a new global discord application command, accessible across guilds and in dms (if `dm permission` is true), noting global commands can take up to an hour to propagate and have registration lim
  - body: { name: string, type?: null, options?: object[], description?: string, dm_permission?: boolean, application_id: string, name_localizations?: object, description_localizations?: object, default_member_permissions?: integer }
- `POST https://api.mcp.ai/api/discordbot/create/auto/moderation/rule` — Creates a new auto moderation rule for a discord guild, requiring 'manage guild' permission; rule parameters are passed in the json request body (see request schema description for body content).
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/create/channel/invite` — Creates a new invite for the specified discord channel, provided the bot has 'create instant invite' permission for that channel.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/create/dm` — Creates a new direct message (dm) channel or retrieves an existing one, using `recipient id` for a 1-on-1 dm or `access tokens` for a group dm; this action only establishes or fetches the channel and 
  - body: { nicks?: object, recipient_id?: null, access_tokens?: string[] }
- `POST https://api.mcp.ai/api/discordbot/create/guild` — Creates a new discord guild (server) with the specified name, roles, and channels; icon must be a base64 encoded 128x128 image, and if `afk channel id` is set, `afk timeout` must also be set.
  - body: { icon?: string, name: string, roles?: object[], region?: string, channels?: object[], afk_timeout?: null, description?: string, afk_channel_id?: null, preferred_locale?: null, system_channel_id?: null, verification_level?: null, system_channel_flags?: integer, explicit_content_filter?: null, default_message_notifications?: null }
- `POST https://api.mcp.ai/api/discordbot/create/guild/application/command` — Creates a new guild-specific application command (slash, user, or message) in discord; command name must be unique per type within the guild (max 100 total commands), and client ui updates may take up
  - body: { name: string, type?: null, options?: object[], guild_id: string, description?: string, dm_permission?: boolean, application_id: string, name_localizations?: object, description_localizations?: object, default_member_permissions?: integer }
- `POST https://api.mcp.ai/api/discordbot/create/guild/channel` — Creates a new discord channel (text, voice, category, etc.) within a guild, with options for permissions, topic, and type-specific settings.
  - body: { name: string, nsfw?: boolean, type?: integer, topic?: string, bitrate?: integer, guild_id: string, position?: integer, parent_id?: string, rtc_region?: string, user_limit?: integer, available_tags?: string[], default_sort_order?: integer, video_quality_mode?: integer, rate_limit_per_user?: integer, default_forum_layout?: integer, permission_overwrites?: object[], default_reaction_emoji?: string, default_auto_archive_duration?: integer, default_thread_rate_limit_per_user?: integer }
- `POST https://api.mcp.ai/api/discordbot/create/guild/emoji` — Creates a new custom emoji in a specified discord guild, requiring `create expressions` permission and adherence to guild emoji limits.
  - body: { name: string, image: string, roles?: null[], guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/create/guild/from/template` — Creates a new discord guild by applying channels, roles, and settings from a specified, valid, and accessible guild template code.
  - body: { code: string, icon?: string, name: string }
- `POST https://api.mcp.ai/api/discordbot/create/guild/role` — Creates a new role in a discord guild with customizable name, permissions, color, hoist, mentionability, and icon; `icon` (custom image hash) and `unicode emoji` (standard emoji) are mutually exclusiv
  - body: { icon?: string, name?: string, color?: integer, hoist?: boolean, guild_id: string, mentionable?: boolean, permissions?: integer, unicode_emoji?: string }
- `POST https://api.mcp.ai/api/discordbot/create/guild/scheduled/event` — Creates a new scheduled event in a discord guild; a separate json request body (not defined in this action's request schema model) with event details (e.g., name, type, schedule) is required, and its 
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/create/guild/sticker` — Uploads a png, apng, or lottie json file (max 512kb) as a new custom sticker to the specified discord guild; requires 'manage expressions' permissions and sufficient server boost level for sticker slo
  - body: { file?: string, name?: string, tags?: string, guild_id: string, description?: string }
- `POST https://api.mcp.ai/api/discordbot/create/guild/template` — Creates a template of an existing discord guild's structure (settings, roles, channels) but not its content (e.g., messages, members).
  - body: { name: string, guild_id: string, description?: string }
- `POST https://api.mcp.ai/api/discordbot/create/interaction/response` — Sends a response to a discord interaction (e.g., slash command, component); ensure response type is context-appropriate and initial reply is within 3 seconds.
  - body: { interaction_id: string, interaction_token: string }
- `POST https://api.mcp.ai/api/discordbot/create/message` — Sends a message to a specified discord channel (text, embeds, stickers, components, attachments); requires `send messages` permission and one of `content`, `embeds`, `sticker ids`, or `attachments`.
  - body: { tts?: boolean, flags?: integer, nonce?: integer, embeds?: object[], content?: string, channel_id: string, components?: object[], attachments?: object[], sticker_ids?: string[], allowed_mentions?: null, message_reference?: null }
- `POST https://api.mcp.ai/api/discordbot/create/stage/instance` — Creates a new stage instance in a specified stage channel for live audio events; requires `manage channels`, `mute members`, and `move members` permissions in the channel.
  - body: { topic: string, channel_id: string, privacy_level?: null, send_start_notification?: boolean, guild_scheduled_event_id?: null }
- `POST https://api.mcp.ai/api/discordbot/create/thread` — Creates a new thread in a text or announcement discord channel; requires a 'name' and optionally other details (e.g., 'auto archive duration', an initial 'message') in the request body.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/create/thread/from/message` — Creates a new thread from a specific message in a discord channel, requiring `create public threads` permission (and `send messages` if in a forum/media channel).
  - body: { name: string, channel_id: string, message_id: string, rate_limit_per_user?: integer, auto_archive_duration?: null }
- `POST https://api.mcp.ai/api/discordbot/create/webhook` — Creates a webhook in a specified discord channel for external applications to post messages, provided the caller has 'manage webhooks' permission in that channel.
  - body: { name: string, avatar?: string, channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/crosspost/message` — Crossposts a message from an announcement channel to all following channels, provided the message has not been previously crossposted and is not a system message or a message sent by a webhook.
  - body: { channel_id: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/all/message/reactions` — Deletes all reactions (not just the bot's) from a message in a channel; requires 'manage messages' permission.
  - body: { channel_id: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/all/message/reactions/by/emoji` — Removes all reactions for a specific emoji from a message in a discord channel; requires 'manage messages' permission and this operation is irreversible.
  - body: { channel_id: string, emoji_name: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/application/command` — Permanently deletes a specific application command; this action is irreversible.
  - body: { command_id: string, application_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/auto/moderation/rule` — Deletes a specific auto-moderation rule from a discord guild.
  - body: { rule_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/channel` — Permanently deletes a discord channel by its id; this action is irreversible and the channel must exist and be deletable.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/channel/permission/overwrite` — Deletes a specific user's or role's permission overwrite in a discord channel, reverting their permissions to default; this action is irreversible.
  - body: { channel_id: string, overwrite_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/group/dm/user` — Permanently removes a user from an accessible discord group dm channel, revoking their access.
  - body: { user_id: string, channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/guild` — Permanently deletes a specified discord guild (server); the authenticated user must be the owner of the guild.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/guild/application/command` — Permanently deletes a specific application command (e.g., slash, user, or message) for an application from a discord guild, used to remove outdated or unnecessary commands.
  - body: { guild_id: string, command_id: string, application_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/guild/emoji` — Permanently deletes a specified custom emoji from a guild, requiring 'manage expressions' permissions; cannot delete default emojis and is irreversible.
  - body: { emoji_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/guild/integration` — Permanently deletes a specific, unwanted or problematic integration from a discord guild; requires 'manage server' or 'administrator' permissions.
  - body: { guild_id: string, integration_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/guild/member` — Removes (kicks) a member from a discord guild; the user must be an existing member of the specified guild, and this action is permanent.
  - body: { user_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/guild/member/role` — Removes a specified role from a member of a discord guild, provided the member currently possesses that role.
  - body: { role_id: string, user_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/guild/role` — Permanently deletes a specified role from a discord guild, revoking it from all members; requires 'manage roles' permission and the target role must be lower in hierarchy than the bot's highest role.
  - body: { role_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/guild/scheduled/event` — Permanently deletes a specific scheduled event from a discord guild; this action is irreversible.
  - body: { guild_id: string, guild_scheduled_event_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/guild/sticker` — Permanently deletes a custom sticker from a discord guild; the specified guild and sticker must exist, and this action is irreversible.
  - body: { guild_id: string, sticker_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/guild/template` — Deletes an existing guild template by its unique code from a specified guild, returning the deleted template's details.
  - body: { code: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/message` — Permanently and irreversibly deletes a message from a specified discord channel.
  - body: { channel_id: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/my/message/reaction` — Removes the authenticated user's own emoji reaction, which they must have previously added, from a specific message in a discord channel; this action is irreversible and cannot remove others' reaction
  - body: { channel_id: string, emoji_name: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/original/webhook/message` — Permanently deletes an existing original message posted by a webhook (using its id and token), optionally within a specific thread.
  - body: { thread_id?: string, webhook_id: string, webhook_token: string }
- `POST https://api.mcp.ai/api/discordbot/delete/stage/instance` — Deletes the stage instance for the given `channel id`, permanently ending its live audio event.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/thread/member` — Removes a user from a specified, unarchived thread in a discord channel.
  - body: { user_id: string, channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/user/message/reaction` — Removes a specific user's emoji reaction from a message; requires 'manage messages' permission if deleting reactions from other users.
  - body: { user_id: string, channel_id: string, emoji_name: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/webhook` — Permanently deletes a specified, existing discord webhook by its unique id; this action is irreversible.
  - body: { webhook_id: string }
- `POST https://api.mcp.ai/api/discordbot/delete/webhook/by/token` — Permanently deletes a discord webhook specified by its id and token; this action is irreversible.
  - body: { webhook_id: string, webhook_token: string }
- `POST https://api.mcp.ai/api/discordbot/delete/webhook/message` — Deletes a message previously sent by the specified webhook, optionally within a specific thread.
  - body: { thread_id?: string, message_id: string, webhook_id: string, webhook_token: string }
- `POST https://api.mcp.ai/api/discordbot/execute/github/compatible/webhook` — Forwards github event notifications to a discord channel via a webhook configured for github-formatted payloads (url ending in `/github`).
  - body: { ref?: string, wait?: boolean, issue?: null, action?: string, answer?: null, forced?: boolean, forkee?: null, member?: null, review?: null, comment?: null, commits?: object[], compare?: string, release?: null, ref_type?: string, check_run?: null, thread_id?: string, discussion?: null, repository?: null, sender__id?: integer, webhook_id: string, check_suite?: null, head_commit?: null, pull_request?: null, sender__login?: string, webhook_token: string, sender__html__url?: string, sender__avatar__url?: string }
- `POST https://api.mcp.ai/api/discordbot/execute/slack/compatible/webhook` — Sends richly formatted messages to discord via its slack-compatible webhook endpoint; requires at least one of `text` or `attachments` and adherence to content limits.
  - body: { text?: string, wait?: boolean, icon_url?: string, username?: string, thread_id?: string, webhook_id: string, attachments?: object[], webhook_token: string }
- `POST https://api.mcp.ai/api/discordbot/execute/webhook` — Executes a discord webhook to send messages, embeds, or interactive components to a specific discord channel or thread.
  - body: { wait?: boolean, thread_id?: string, webhook_id: string, webhook_token: string }
- `POST https://api.mcp.ai/api/discordbot/follow/channel` — Follows a specified announcement channel (`channel id`), relaying its messages to `webhook channel id` in the current server; requires 'manage webhooks' permission in the current server and that it ha
  - body: { channel_id: string, webhook_channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/active/guild/threads` — Retrieves all currently active and visible threads within a specified discord guild, excluding archived or hidden threads.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/application` — Retrieves the full details of a discord application using its unique `application id`.
  - body: { application_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/application/command` — Fetches the details of a specific, existing application command, identified by its application snowflake id and command snowflake id.
  - body: { command_id: string, application_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/application/role/connections/metadata` — Retrieves all role connection metadata records for a given discord application id; an empty list is returned if none are configured.
  - body: { application_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/application/user/role/connection` — Fetches the role connection object for the current user for a specified discord application.
  - body: { application_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/auto/moderation/rule` — Retrieves the complete configuration details of a specific auto-moderation rule within a discord guild for inspection or verification.
  - body: { rule_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/bot/gateway` — Retrieves the wss url, recommended shard count, and session start limits, which are prerequisite for a bot to connect to the discord gateway and receive events.
- `POST https://api.mcp.ai/api/discordbot/get/channel` — Retrieves detailed metadata for a specific discord channel using its `channel id`, which must be a valid and accessible channel id; note that this action returns only channel metadata, not message con
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/gateway` — Retrieves the websocket url to connect to discord's gateway for receiving real-time events.
- `POST https://api.mcp.ai/api/discordbot/get/guild` — Retrieves detailed information for a specified discord guild (server) by its `guild id`, optionally including approximate member and presence counts if `with counts` is true.
  - body: { guild_id: string, with_counts?: boolean }
- `POST https://api.mcp.ai/api/discordbot/get/guild/application/command` — Fetches detailed information for a specific application command within a discord guild, identified by `application id`, `guild id`, and `command id`.
  - body: { guild_id: string, command_id: string, application_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/application/command/permissions` — Fetches the permissions for a specific application command within a guild, used to inspect its current access settings.
  - body: { guild_id: string, command_id: string, application_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/ban` — Fetches the ban details for a specific user in a discord guild, if that user is currently banned.
  - body: { user_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/emoji` — Retrieves details for a specific custom emoji within a specified discord guild, requiring valid and accessible guild and emoji ids.
  - body: { emoji_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/member` — Retrieves detailed information for a specific member of a discord guild, provided the bot belongs to the guild and has necessary permissions (e.g., guild members intent).
  - body: { user_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/new/member/welcome` — Retrieves the configured new member welcome screen for a discord guild, detailing the welcome message, suggested member actions, and resource channels.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/preview` — Fetches a public preview of a discord guild by its id, if the guild has the preview feature enabled.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/scheduled/event` — Retrieves a specific scheduled event from a discord guild by its id, optionally including the count of subscribed users.
  - body: { guild_id: string, with_user_count?: boolean, guild_scheduled_event_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/sticker` — Retrieves a specific sticker from a discord guild using the guild and sticker ids; requires the sticker to exist in the guild.
  - body: { guild_id: string, sticker_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/template` — Retrieves the complete structure and details of a discord guild template using its unique code; the code must be valid and refer to an existing, accessible template.
  - body: { code: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/vanity/url` — Fetches the vanity url, including the invite `code` and its `uses` count, for a given discord `guild id`, which must correspond to an existing guild.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/webhooks` — Retrieves all webhook objects for a specified discord guild; requires 'manage webhooks' permission for the authenticated entity.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/welcome/screen` — Retrieves the configured welcome screen for a specific discord guild that has the 'community' feature enabled.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/widget` — Retrieves the public json widget data for a discord guild, if the widget is enabled for that guild.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guild/widget/settings` — Retrieves the widget settings for a specified discord guild, indicating if the widget is enabled and its configured channel id; requires a valid `guild id`.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/guilds/onboarding` — Retrieves the onboarding settings for a specified discord guild, including prompts, options, default channels, and enabled status, to examine its new member guidance process when the guild id is known
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/message` — Retrieves a specific message from a discord channel, identified by `channel id` and `message id`, if the channel and message exist and are accessible.
  - body: { channel_id: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/my/application` — Retrieves detailed information about the current authenticated discord application.
- `POST https://api.mcp.ai/api/discordbot/get/my/oauth2/application` — Retrieves detailed information about the oauth2 application associated with the current authentication; cannot query other applications.
- `POST https://api.mcp.ai/api/discordbot/get/original/webhook/message` — Fetches the original, unedited message posted by a specific discord webhook, requiring a message to have been previously sent by this webhook and to exist in the specified thread if `thread id` is pro
  - body: { thread_id?: string, webhook_id: string, webhook_token: string }
- `POST https://api.mcp.ai/api/discordbot/get/public/keys` — Retrieves discord's oauth2 public keys (jwk format) for verifying access tokens; keys may rotate, so refresh caches periodically.
- `POST https://api.mcp.ai/api/discordbot/get/stage/instance` — Gets the active stage instance for a given stage channel id.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/sticker` — Retrieves a specific discord sticker by its unique id.
  - body: { sticker_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/thread/member` — Retrieves a member from a specified thread using their user id, optionally including the full guild member object.
  - body: { user_id: string, channel_id: string, with_member?: boolean }
- `POST https://api.mcp.ai/api/discordbot/get/user` — Fetches public information for a discord user, requiring a valid and existing user id (snowflake).
  - body: { user_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/webhook` — Retrieves detailed information for an existing discord webhook, identified by its unique id, to verify settings or manage the webhook.
  - body: { webhook_id: string }
- `POST https://api.mcp.ai/api/discordbot/get/webhook/by/token` — Fetches a discord webhook's configuration details (e.g., name, avatar, channel id) using its id and token; this excludes message history or usage statistics.
  - body: { webhook_id: string, webhook_token: string }
- `POST https://api.mcp.ai/api/discordbot/get/webhook/message` — Retrieves a specific message previously sent by a discord webhook using its `message id`, requiring `thread id` if the message is part of a thread.
  - body: { thread_id?: string, message_id: string, webhook_id: string, webhook_token: string }
- `POST https://api.mcp.ai/api/discordbot/invite/resolve` — Resolves a discord invite code to get its details, optionally including member counts or data for a specific guild scheduled event; visibility of some details may depend on bot permissions.
  - body: { code: string, with_counts?: boolean, guild_scheduled_event_id?: string }
- `POST https://api.mcp.ai/api/discordbot/invite/revoke` — Revokes a discord server invite using its unique code, permanently preventing new joins via this link (does not affect existing members); requires 'manage server' or 'manage invites' permissions on th
  - body: { code: string }
- `POST https://api.mcp.ai/api/discordbot/join/thread` — Joins the authenticated user to a thread specified by `channel id`; use this when the user is not already a member, for archived threads, or for threads requiring explicit joining, provided the thread
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/leave/guild` — Enables the authenticated user to leave a specified discord guild of which they are a member but not the owner; this action is irreversible.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/leave/thread` — Removes the currently authenticated user from a specified, existing, and accessible discord thread of which they are currently a member.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/application/commands` — Fetches all global application commands for the specified discord application id; does not fetch guild-specific commands.
  - body: { application_id: string, with_localizations?: boolean }
- `POST https://api.mcp.ai/api/discordbot/list/auto/moderation/rules` — Fetches all auto moderation rules for a specified discord guild to review or audit its configuration; requires `view audit log` permissions and the action does not modify rules.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/channel/invites` — Fetches all active invites for a given discord channel id (read-only), requiring channel invite view permissions; response object structures may vary.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/channel/webhooks` — Fetches detailed information for all webhooks in a given valid discord channel, useful for review or auditing purposes.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/application/command/permissions` — Call this action to retrieve all explicitly set guild-level permission settings for all commands of a specific application within a given guild, typically for auditing or troubleshooting command acces
  - body: { guild_id: string, application_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/application/commands` — Fetches all application command definitions (slash, user, and message types) for a specific application within a given discord guild, optionally including localizations; does not return permissions or
  - body: { guild_id: string, application_id: string, with_localizations?: boolean }
- `POST https://api.mcp.ai/api/discordbot/list/guild/audit/log/entries` — Retrieves audit log entries (e.g., message deletions, member kicks/bans, role changes) for a specified discord guild, requiring 'view audit log' permission.
  - body: { after?: string, limit?: integer, before?: string, user_id?: string, guild_id: string, target_id?: string, action_type?: integer }
- `POST https://api.mcp.ai/api/discordbot/list/guild/bans` — Fetches a list of users banned from a specified discord guild; `before`/`after` parameters require user ids from previous results for correct pagination.
  - body: { after?: string, limit?: integer, before?: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/channels` — Fetches all channels (e.g., text, voice, category, threads) and their structural information for a specified discord guild id; does not include message content.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/emojis` — Fetches all custom emoji objects for a specified discord guild if the bot has access; returns only custom guild emojis, not standard unicode or nitro emojis.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/integrations` — Lists all integration objects for a specified discord guild.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/invites` — Retrieves all currently active invite codes for a specified discord guild, typically for administration, analytics, or managing guild invitations.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/members` — Retrieves members for a discord guild; requires a valid guild id for an existing guild.
  - body: { after?: integer, limit?: integer, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/roles` — Fetches all roles in a discord guild, providing details for each role but not user assignments; `guild id` must be valid.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/scheduled/event/users` — Fetches users who have expressed interest in a specific scheduled event, requiring valid guild and event ids.
  - body: { after?: string, limit?: integer, before?: string, guild_id: string, with_member?: boolean, guild_scheduled_event_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/scheduled/events` — Retrieves a list of scheduled events for a specified discord guild, optionally including subscribed user counts, provided the authenticated user/bot has access to the guild.
  - body: { guild_id: string, with_user_count?: boolean }
- `POST https://api.mcp.ai/api/discordbot/list/guild/stickers` — Retrieves all custom sticker objects for a discord guild; does not include standard/nitro stickers.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/templates` — Retrieves all guild templates for an existing discord guild, specified by its id.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/guild/voice/regions` — Fetches a list of available voice regions for a specified discord guild.
  - body: { guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/message/reactions/by/emoji` — Fetches a list of users who reacted to a specific message with a given emoji in a discord channel; retrieves users for one emoji at a time.
  - body: { after?: string, limit?: integer, channel_id: string, emoji_name: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/messages` — Retrieves historical messages from a specified, accessible discord channel, typically newest first; for real-time messages, use discord's websocket gateway api.
  - body: { after?: string, limit?: integer, around?: string, before?: string, channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/my/private/archived/threads` — Retrieves private archived threads from a specified channel that the current user is a member of.
  - body: { limit?: integer, before?: string, channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/pinned/messages` — Retrieves all currently pinned messages from a discord channel using its valid, existing id; typically limited to 50 messages, and no history of past pins is returned.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/private/archived/threads` — Lists a channel's private archived threads, sorted by most recent archival, requiring view access to them.
  - body: { limit?: integer, before?: string, channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/public/archived/threads` — Lists public archived threads in an accessible discord channel, returning an empty list if none exist; does not list private or active threads.
  - body: { limit?: integer, before?: string, channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/list/sticker/packs` — Fetches sticker packs available to nitro subscribers on discord, excluding custom or guild-specific ones.
- `POST https://api.mcp.ai/api/discordbot/list/thread/members` — Retrieves members of a specified discord thread, with an option to include full guild member objects for each.
  - body: { after?: string, limit?: integer, channel_id: string, with_member?: boolean }
- `POST https://api.mcp.ai/api/discordbot/list/voice/regions` — Lists all available discord voice regions with their id, name, operational status (custom, deprecated, optimal), noting that availability may vary by server.
- `POST https://api.mcp.ai/api/discordbot/pin/message` — Pins a message in a discord channel for increased visibility, if the channel's pin limit (typically 50) is not exceeded.
  - body: { channel_id: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/preview/prune/guild` — Previews the number of members that would be pruned from a discord guild based on inactivity days and optional roles; this action only returns a count and does not remove members.
  - body: { days?: integer, guild_id: string, include_roles?: null[] }
- `POST https://api.mcp.ai/api/discordbot/prune/guild` — Removes inactive members from a discord guild, requiring 'kick members' permission; use `compute prune count=true` to preview results before actual removal.
  - body: { days?: integer, guild_id: string, include_roles?: string[], compute_prune_count?: boolean }
- `POST https://api.mcp.ai/api/discordbot/put/guilds/onboarding` — Configures or updates a discord guild's new member onboarding flow, including defining prompts with options, assigning roles/channels, setting default channels, and managing the flow's active status.
  - body: { mode?: null, enabled?: boolean, prompts?: object[], guild_id: string, default_channel_ids?: string[] }
- `POST https://api.mcp.ai/api/discordbot/search/guild/members` — Searches for members in a specific discord guild, allowing filtering by a query string.
  - body: { limit: integer, query: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/set/channel/permission/overwrite` — Updates or creates a permission overwrite for a role (type `0`) or member (type `1`) specified by `overwrite id` within an existing discord channel (`channel id`), using `allow` and `deny` bitwise val
  - body: { deny?: integer, type: integer, allow?: integer, channel_id: string, overwrite_id: string }
- `POST https://api.mcp.ai/api/discordbot/sync/guild/template` — Synchronizes a guild template (by `code`) with its source guild (`guild id`), updating it to match the source's current configuration; this does not affect guilds already created from this template.
  - body: { code: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/trigger/typing/indicator` — Shows the bot is 'typing' in a discord channel, typically before sending a message; indicator stops after 10 seconds or upon message send, so use when actively preparing a response.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/unban/user/from/guild` — Revokes a ban for a user from a discord guild, allowing them to rejoin if they choose.
  - body: { user_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/unpin/message` — Unpins a message that is currently pinned in a specified discord channel; the message itself is not deleted.
  - body: { channel_id: string, message_id: string }
- `POST https://api.mcp.ai/api/discordbot/update/application` — Updates a discord application's settings using its `application id`; `max participants` requires the `application embedded activities` flag, and `team id`, `type`, or `install params` must be `null` i
  - body: { icon?: string, tags?: string[], type?: null, flags?: integer, team_id?: null, cover_image?: string, application_id: string, install_params?: null, max_participants?: integer, custom_install_url?: string, description__default?: string, interactions_endpoint_url?: string, description__localizations?: object, role_connections_verification_url?: string }
- `POST https://api.mcp.ai/api/discordbot/update/application/command` — Updates specified properties of a discord application command (e.g., name, description); omitted properties remain unchanged, and the `options` field, if provided, overwrites all existing options.
  - body: { name?: string, options?: object[], command_id: string, description?: string, dm_permission?: boolean, application_id: string, name_localizations?: object, description_localizations?: object, default_member_permissions?: integer }
- `POST https://api.mcp.ai/api/discordbot/update/application/user/role/connection` — Updates the authorized user's role connection for a specific application, which must have a linked role connection configured.
  - body: { metadata?: object, platform_name?: string, application_id: string, platform_username?: string }
- `POST https://api.mcp.ai/api/discordbot/update/auto/moderation/rule` — Updates an existing auto-moderation rule, identified by `guild id` and `rule id` in the path, with new values for rule properties (e.g., `name`, `event type`) provided in the request body.
  - body: { rule_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/update/channel` — Partially updates an existing discord channel, using `channel id` for identification and properties in the request body for changes, ensuring these properties are applicable to the channel's type.
  - body: { channel_id: string }
- `POST https://api.mcp.ai/api/discordbot/update/guild` — Updates settings for a discord guild, such as its name, region, or icon; transferring ownership requires being the current owner, and managing features or certain visual elements (e.g., banners, splas
  - body: { icon?: string, name?: string, banner?: string, region?: string, splash?: string, features?: string[], guild_id: string, owner_id?: string, afk_timeout?: null, description?: string, home_header?: string, afk_channel_id?: null, discovery_splash?: string, preferred_locale?: null, rules_channel_id?: null, system_channel_id?: null, verification_level?: null, system_channel_flags?: integer, explicit_content_filter?: null, safety_alerts_channel_id?: null, public_updates_channel_id?: null, premium_progress_bar_enabled?: boolean, default_message_notifications?: null }
- `POST https://api.mcp.ai/api/discordbot/update/guild/application/command` — Updates a specific discord application command's properties (like name, description, options, or permissions) within a given guild; `application id`, `guild id`, and `command id` must refer to valid e
  - body: { name?: string, options?: object[], guild_id: string, command_id: string, description?: string, dm_permission?: boolean, application_id: string, name_localizations?: object, description_localizations?: object, default_member_permissions?: integer }
- `POST https://api.mcp.ai/api/discordbot/update/guild/emoji` — Updates a custom emoji's name and/or role restrictions in a discord guild; cannot create or delete emojis, and role updates for managed emojis may be restricted by their integration.
  - body: { name?: string, roles?: null[], emoji_id: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/update/guild/member` — Updates a guild member's attributes (e.g., nickname, roles, voice state); if moving via `channel id`, it must be a valid voice channel in the guild.
  - body: { deaf?: boolean, mute?: boolean, nick?: string, flags?: integer, roles?: null[], user_id: string, guild_id: string, channel_id?: null, communication_disabled_until?: string }
- `POST https://api.mcp.ai/api/discordbot/update/guild/role` — Updates a discord guild role's attributes (name, permissions, color, etc.); requires `manage roles` permission, and the `role icons` guild feature if using `unicode emoji`; unspecified attributes rema
  - body: { icon?: string, name?: string, color?: integer, hoist?: boolean, role_id: string, guild_id: string, mentionable?: boolean, permissions?: integer, unicode_emoji?: string }
- `POST https://api.mcp.ai/api/discordbot/update/guild/scheduled/event` — Updates attributes such as name, description, schedule, status, or location for an existing discord guild event; only fields in the request body are changed.
  - body: { guild_id: string, guild_scheduled_event_id: string }
- `POST https://api.mcp.ai/api/discordbot/update/guild/sticker` — Modifies a guild sticker's name, description, or tags, requiring 'manage emojis and stickers' permission.
  - body: { name?: string, tags?: string, guild_id: string, sticker_id: string, description?: string }
- `POST https://api.mcp.ai/api/discordbot/update/guild/template` — Updates a discord guild template's `name` and/or `description` given its `guild id` and template `code`; omitted fields retain current values, and an empty string for `description` clears it.
  - body: { code: string, name?: string, guild_id: string, description?: string }
- `POST https://api.mcp.ai/api/discordbot/update/guild/welcome/screen` — Updates a guild's welcome screen, including its description, enabled status, and up to 5 welcome channels; when specifying channel emojis, use `emoji name` as `emoji id` must be `null` if sent.
  - body: { enabled?: boolean, guild_id: string, description?: string, welcome_channels?: object[] }
- `POST https://api.mcp.ai/api/discordbot/update/guild/widget/settings` — Updates an existing discord guild's widget settings, such as its enabled state or clearing its invite channel.
  - body: { enabled?: boolean, guild_id: string, channel_id?: null }
- `POST https://api.mcp.ai/api/discordbot/update/message` — Updates a message previously sent by the bot in a discord channel, by modifying its content, embeds, components, flags, or attachment metadata (new attachments cannot be uploaded); only provide fields
  - body: { flags?: integer, embeds?: object[], content?: string, channel_id: string, components?: object[], message_id: string, attachments?: object[], sticker_ids?: string[], allowed_mentions?: null }
- `POST https://api.mcp.ai/api/discordbot/update/my/application` — Modifies settings for the current authenticated discord application (e.g., description, icon, interaction urls); setting `team id` to `null` (none) transfers team ownership, while `null` (none) for `t
  - body: { icon?: string, tags?: string[], type?: null, flags?: integer, team_id?: null, cover_image?: string, install_params?: null, max_participants?: integer, custom_install_url?: string, description__default?: string, interactions_endpoint_url?: string, description__localizations?: object, role_connections_verification_url?: string }
- `POST https://api.mcp.ai/api/discordbot/update/my/guild/member` — Modifies the nickname of the currently authenticated user within a specified discord guild.
  - body: { nick?: string, guild_id: string }
- `POST https://api.mcp.ai/api/discordbot/update/my/user` — Updates the current authenticated user's discord username and/or avatar.
  - body: { avatar?: string, username: string }
- `POST https://api.mcp.ai/api/discordbot/update/original/webhook/message` — Updates the original editable message previously sent by a webhook, allowing partial modification of its content (max 2000 chars), embeds (max 10), attachments (kept by `id`, metadata updatable), comp
  - body: { flags?: integer, embeds?: object[], content?: string, thread_id?: string, components?: object[], webhook_id: string, attachments?: object[], webhook_token: string, allowed_mentions?: null }
- `POST https://api.mcp.ai/api/discordbot/update/self/voice/state` — Updates the current user's voice state in a guild (e.g., mute, request to speak), and can explicitly disconnect the user from voice; this action does not support joining or switching voice channels.
  - body: { guild_id: string, suppress?: boolean, channel_id?: null, request_to_speak_timestamp?: string }
- `POST https://api.mcp.ai/api/discordbot/update/voice/state` — Updates a user's voice state in a discord guild, such as toggling server mute or disconnecting from a voice channel; requires `mute members` permission to change mute status or `move members` to disco
  - body: { user_id: string, guild_id: string, suppress?: boolean, channel_id?: null }
- `POST https://api.mcp.ai/api/discordbot/update/webhook` — Updates properties (e.g., name, avatar, channel id) of an existing discord webhook; the webhook and any new channel (if specified) must exist, with the new channel being in the same server.
  - body: { name?: string, avatar?: string, channel_id?: null, webhook_id: string }
- `POST https://api.mcp.ai/api/discordbot/update/webhook/by/token` — Updates the default name and/or avatar for an existing discord webhook, using its id and token.
  - body: { name?: string, avatar?: string, webhook_id: string, webhook_token: string }
- `POST https://api.mcp.ai/api/discordbot/update/webhook/message` — Updates a message previously sent by the *same* webhook, allowing partial modification of content, embeds, attachments, or components; will not edit user/bot messages.
  - body: { flags?: integer, embeds?: object[], content?: string, thread_id?: string, components?: object[], message_id: string, webhook_id: string, attachments?: object[], webhook_token: string, allowed_mentions?: null }

## More
- Page: https://mcp.ai/discordbot
- Agent spec (llms.txt): https://mcp.ai/discordbot/llms.txt
- Postman collection: https://mcp.ai/discordbot/postman.json
