# Discordbot

```json
{
  "name": "Discordbot",
  "slug": "discordbot",
  "url": "https://composio.dev/toolkits/discordbot",
  "markdown_url": "https://composio.dev/toolkits/discordbot.md",
  "logo_url": "https://logos.composio.dev/api/discordbot",
  "categories": [
    "collaboration & communication"
  ],
  "is_composio_managed": true,
  "updated_at": "2026-05-06T08:08:50.161Z"
}
```

![Discordbot logo](https://logos.composio.dev/api/discordbot)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Discordbot MCP or direct API to send messages, moderate channels, manage users, and automate server tasks through natural language.

## Summary

Discordbot is an automation tool for Discord servers that handles moderation, messaging, and user engagement. It helps communities run smoothly by automating routine and complex tasks.

## Categories

- collaboration & communication

## Toolkit Details

- Tools: 164
- Managed auth: Managed by Composio

## Images

- Logo: https://logos.composio.dev/api/discordbot

## Authentication

- **Oauth2**
  - Type: `oauth2`
  - Description: Oauth2 authentication for Discord Bot.
  - Setup:
    - Configure Oauth2 credentials for Discord Bot.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Add reaction emoji to welcome message
- Bulk delete spam messages in general channel
- Assign moderator role to user instantly
- Create auto moderation rule for links

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `DISCORDBOT_ADD_GROUP_DM_USER` | Add recipient to group channel | Adds a user to a discord group direct message (dm) channel. |
| `DISCORDBOT_ADD_GUILD_MEMBER` | Update guild member information | 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. |
| `DISCORDBOT_ADD_GUILD_MEMBER_ROLE` | Assign role to guild member | 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. |
| `DISCORDBOT_ADD_MY_MESSAGE_REACTION` | Add reaction to message | Adds an emoji reaction from the authenticated user/bot to a specific message in a discord channel; does not return information about existing reactions. |
| `DISCORDBOT_ADD_THREAD_MEMBER` | Add or update 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. |
| `DISCORDBOT_BAN_USER_FROM_GUILD` | Modify guild ban settings | Permanently bans a user from a discord guild, optionally deleting their recent messages (specify deletion period in seconds or days, not both). |
| `DISCORDBOT_BULK_BAN_USERS_FROM_GUILD` | Bulk ban users in guild with message deletion option | 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. |
| `DISCORDBOT_BULK_DELETE_MESSAGES` | Bulk delete messages in channel | Atomically bulk deletes messages in a discord channel for moderation or maintenance; deletion may not be instantaneous and messages are unrecoverable. |
| `DISCORDBOT_CREATE_APPLICATION_COMMAND` | Create application command objects | 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 limits; for guild-specific commands, use a different action. |
| `DISCORDBOT_CREATE_AUTO_MODERATION_RULE` | Create guild 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). |
| `DISCORDBOT_CREATE_CHANNEL_INVITE` | Create channel invite | Creates a new invite for the specified discord channel, provided the bot has 'create instant invite' permission for that channel. |
| `DISCORDBOT_CREATE_DM` | Initiate user channel with recipient | 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 does not send messages. |
| `DISCORDBOT_CREATE_GUILD` | Create new guild object | 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. |
| `DISCORDBOT_CREATE_GUILD_APPLICATION_COMMAND` | 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 to an hour. |
| `DISCORDBOT_CREATE_GUILD_CHANNEL` | Create guild channel | Creates a new discord channel (text, voice, category, etc.) within a guild, with options for permissions, topic, and type-specific settings. |
| `DISCORDBOT_CREATE_GUILD_EMOJI` | Create guild emoji | Creates a new custom emoji in a specified discord guild, requiring `create expressions` permission and adherence to guild emoji limits. |
| `DISCORDBOT_CREATE_GUILD_FROM_TEMPLATE` | Post guild template by code | Creates a new discord guild by applying channels, roles, and settings from a specified, valid, and accessible guild template code. |
| `DISCORDBOT_CREATE_GUILD_ROLE` | Create role with guild id | 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 exclusive. |
| `DISCORDBOT_CREATE_GUILD_SCHEDULED_EVENT` | 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 specific fields depend on the event's `entity type`. |
| `DISCORDBOT_CREATE_GUILD_STICKER` | 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 slots. |
| `DISCORDBOT_CREATE_GUILD_TEMPLATE` | Create guild template | Creates a template of an existing discord guild's structure (settings, roles, channels) but not its content (e.g., messages, members). |
| `DISCORDBOT_CREATE_INTERACTION_RESPONSE` | Post interaction callback | 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. |
| `DISCORDBOT_CREATE_MESSAGE` | Post message to channel | 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`. |
| `DISCORDBOT_CREATE_STAGE_INSTANCE` | 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. |
| `DISCORDBOT_CREATE_THREAD` | Create new thread in channel | 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. |
| `DISCORDBOT_CREATE_THREAD_FROM_MESSAGE` | Create thread in message channel | 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). |
| `DISCORDBOT_CREATE_WEBHOOK` | Create channel 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. |
| `DISCORDBOT_CROSSPOST_MESSAGE` | Crosspost channel 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. |
| `DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS` | Delete reaction from message | Deletes all reactions (not just the bot's) from a message in a channel; requires 'manage messages' permission. |
| `DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI` | Delete channel message reaction 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. |
| `DISCORDBOT_DELETE_APPLICATION_COMMAND` | Delete application command | Permanently deletes a specific application command; this action is irreversible. |
| `DISCORDBOT_DELETE_AUTO_MODERATION_RULE` | Delete guild auto moderation rule | Deletes a specific auto-moderation rule from a discord guild. |
| `DISCORDBOT_DELETE_CHANNEL` | Delete channel by id | Permanently deletes a discord channel by its id; this action is irreversible and the channel must exist and be deletable. |
| `DISCORDBOT_DELETE_CHANNEL_PERMISSION_OVERWRITE` | Delete channel permission override | Deletes a specific user's or role's permission overwrite in a discord channel, reverting their permissions to default; this action is irreversible. |
| `DISCORDBOT_DELETE_GROUP_DM_USER` | Delete channel recipient | Permanently removes a user from an accessible discord group dm channel, revoking their access. |
| `DISCORDBOT_DELETE_GUILD` | Delete guild by id | Permanently deletes a specified discord guild (server); the authenticated user must be the owner of the guild. |
| `DISCORDBOT_DELETE_GUILD_APPLICATION_COMMAND` | Delete guild 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. |
| `DISCORDBOT_DELETE_GUILD_EMOJI` | Delete guild emoji by id | Permanently deletes a specified custom emoji from a guild, requiring 'manage expressions' permissions; cannot delete default emojis and is irreversible. |
| `DISCORDBOT_DELETE_GUILD_INTEGRATION` | Delete guild integration | Permanently deletes a specific, unwanted or problematic integration from a discord guild; requires 'manage server' or 'administrator' permissions. |
| `DISCORDBOT_DELETE_GUILD_MEMBER` | Delete guild member by id | Removes (kicks) a member from a discord guild; the user must be an existing member of the specified guild, and this action is permanent. |
| `DISCORDBOT_DELETE_GUILD_MEMBER_ROLE` | Delete guild member role | Removes a specified role from a member of a discord guild, provided the member currently possesses that role. |
| `DISCORDBOT_DELETE_GUILD_ROLE` | Delete role from guild | 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. |
| `DISCORDBOT_DELETE_GUILD_SCHEDULED_EVENT` | Delete guild scheduled event | Permanently deletes a specific scheduled event from a discord guild; this action is irreversible. |
| `DISCORDBOT_DELETE_GUILD_STICKER` | Delete guild sticker | Permanently deletes a custom sticker from a discord guild; the specified guild and sticker must exist, and this action is irreversible. |
| `DISCORDBOT_DELETE_GUILD_TEMPLATE` | Delete guild template by code | Deletes an existing guild template by its unique code from a specified guild, returning the deleted template's details. |
| `DISCORDBOT_DELETE_MESSAGE` | Delete channel message | Permanently and irreversibly deletes a message from a specified discord channel. |
| `DISCORDBOT_DELETE_MY_MESSAGE_REACTION` | Delete user reaction on message | 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' reactions. |
| `DISCORDBOT_DELETE_ORIGINAL_WEBHOOK_MESSAGE` | Delete original webhook message | Permanently deletes an existing original message posted by a webhook (using its id and token), optionally within a specific thread. |
| `DISCORDBOT_DELETE_STAGE_INSTANCE` | Delete stage instance by channel id | Deletes the stage instance for the given `channel id`, permanently ending its live audio event. |
| `DISCORDBOT_DELETE_THREAD_MEMBER` | Delete channel thread member | Removes a user from a specified, unarchived thread in a discord channel. |
| `DISCORDBOT_DELETE_USER_MESSAGE_REACTION` | Delete user reaction from message | Removes a specific user's emoji reaction from a message; requires 'manage messages' permission if deleting reactions from other users. |
| `DISCORDBOT_DELETE_WEBHOOK` | Delete webhook by id | Permanently deletes a specified, existing discord webhook by its unique id; this action is irreversible. |
| `DISCORDBOT_DELETE_WEBHOOK_BY_TOKEN` | Delete webhook using id and token | Permanently deletes a discord webhook specified by its id and token; this action is irreversible. |
| `DISCORDBOT_DELETE_WEBHOOK_MESSAGE` | Delete webhook message | Deletes a message previously sent by the specified webhook, optionally within a specific thread. |
| `DISCORDBOT_EXECUTE_GITHUB_COMPATIBLE_WEBHOOK` | Github action webhooks processing | Forwards github event notifications to a discord channel via a webhook configured for github-formatted payloads (url ending in `/github`). |
| `DISCORDBOT_EXECUTE_SLACK_COMPATIBLE_WEBHOOK` | Post to slack 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. |
| `DISCORDBOT_EXECUTE_WEBHOOK` | Post webhook with embeds and components | Executes a discord webhook to send messages, embeds, or interactive components to a specific discord channel or thread. |
| `DISCORDBOT_FOLLOW_CHANNEL` | Add follower to channel via webhook | 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 has community features enabled. |
| `DISCORDBOT_GET_ACTIVE_GUILD_THREADS` | List active threads in guild | Retrieves all currently active and visible threads within a specified discord guild, excluding archived or hidden threads. |
| `DISCORDBOT_GET_APPLICATION` | Retrieve application details | Retrieves the full details of a discord application using its unique `application id`. |
| `DISCORDBOT_GET_APPLICATION_COMMAND` | Fetch application command by id | Fetches the details of a specific, existing application command, identified by its application snowflake id and command snowflake id. |
| `DISCORDBOT_GET_APPLICATION_ROLE_CONNECTIONS_METADATA` | Retrieve application role metadata | Retrieves all role connection metadata records for a given discord application id; an empty list is returned if none are configured. |
| `DISCORDBOT_GET_APPLICATION_USER_ROLE_CONNECTION` | Get user role connection | Fetches the role connection object for the current user for a specified discord application. |
| `DISCORDBOT_GET_AUTO_MODERATION_RULE` | Retrieve auto moderation rule | Retrieves the complete configuration details of a specific auto-moderation rule within a discord guild for inspection or verification. |
| `DISCORDBOT_GET_BOT_GATEWAY` | Retrieve 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. |
| `DISCORDBOT_GET_CHANNEL` | Retrieve channel details | 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 content or member lists. |
| `DISCORDBOT_GET_GATEWAY` | Get gateway details | Retrieves the websocket url to connect to discord's gateway for receiving real-time events. |
| `DISCORDBOT_GET_GUILD` | Retrieve guild details | 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. |
| `DISCORDBOT_GET_GUILD_APPLICATION_COMMAND` | Fetch guild application command by id | Fetches detailed information for a specific application command within a discord guild, identified by `application id`, `guild id`, and `command id`. |
| `DISCORDBOT_GET_GUILD_APPLICATION_COMMAND_PERMISSIONS` | Retrieve guild command permissions | Fetches the permissions for a specific application command within a guild, used to inspect its current access settings. |
| `DISCORDBOT_GET_GUILD_BAN` | Retrieve guild user ban details | Fetches the ban details for a specific user in a discord guild, if that user is currently banned. |
| `DISCORDBOT_GET_GUILD_EMOJI` | Fetch emoji by guild and id | Retrieves details for a specific custom emoji within a specified discord guild, requiring valid and accessible guild and emoji ids. |
| `DISCORDBOT_GET_GUILD_MEMBER` | Retrieve guild member by user id | 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). |
| `DISCORDBOT_GET_GUILD_NEW_MEMBER_WELCOME` | Retrieve 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. |
| `DISCORDBOT_GET_GUILD_PREVIEW` | Preview guild by id | Fetches a public preview of a discord guild by its id, if the guild has the preview feature enabled. |
| `DISCORDBOT_GET_GUILD_SCHEDULED_EVENT` | Get guild scheduled event by id | Retrieves a specific scheduled event from a discord guild by its id, optionally including the count of subscribed users. |
| `DISCORDBOT_GET_GUILDS_ONBOARDING` | Get guild onboarding by id | 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 and accessible. |
| `DISCORDBOT_GET_GUILD_STICKER` | Retrieve sticker from guild | Retrieves a specific sticker from a discord guild using the guild and sticker ids; requires the sticker to exist in the guild. |
| `DISCORDBOT_GET_GUILD_TEMPLATE` | Retrieve guild template with code | 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. |
| `DISCORDBOT_GET_GUILD_VANITY_URL` | Retrieve 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. |
| `DISCORDBOT_GET_GUILD_WEBHOOKS` | Retrieve guild webhooks | Retrieves all webhook objects for a specified discord guild; requires 'manage webhooks' permission for the authenticated entity. |
| `DISCORDBOT_GET_GUILD_WELCOME_SCREEN` | Retrieve guild welcome screen | Retrieves the configured welcome screen for a specific discord guild that has the 'community' feature enabled. |
| `DISCORDBOT_GET_GUILD_WIDGET` | Retrieve guild widget json | Retrieves the public json widget data for a discord guild, if the widget is enabled for that guild. |
| `DISCORDBOT_GET_GUILD_WIDGET_SETTINGS` | Retrieve guild widget information | 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`. |
| `DISCORDBOT_GET_MESSAGE` | Retrieve message from channel | Retrieves a specific message from a discord channel, identified by `channel id` and `message id`, if the channel and message exist and are accessible. |
| `DISCORDBOT_GET_MY_APPLICATION` | Get your applications | Retrieves detailed information about the current authenticated discord application. |
| `DISCORDBOT_GET_MY_OAUTH2_APPLICATION` | Get oauth2 applications for current user | Retrieves detailed information about the oauth2 application associated with the current authentication; cannot query other applications. |
| `DISCORDBOT_GET_ORIGINAL_WEBHOOK_MESSAGE` | Retrieve 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 provided. |
| `DISCORDBOT_GET_PUBLIC_KEYS` | Get oauth2 keys | Retrieves discord's oauth2 public keys (jwk format) for verifying access tokens; keys may rotate, so refresh caches periodically. |
| `DISCORDBOT_GET_STAGE_INSTANCE` | Retrieve stage instance by channel id | Gets the active stage instance for a given stage channel id. |
| `DISCORDBOT_GET_STICKER` | Retrieve sticker by id | Retrieves a specific discord sticker by its unique id. |
| `DISCORDBOT_GET_THREAD_MEMBER` | Retrieve thread member by id | Retrieves a member from a specified thread using their user id, optionally including the full guild member object. |
| `DISCORDBOT_GET_USER` | Retrieve user by id | Fetches public information for a discord user, requiring a valid and existing user id (snowflake). |
| `DISCORDBOT_GET_WEBHOOK` | Retrieve webhook by id | Retrieves detailed information for an existing discord webhook, identified by its unique id, to verify settings or manage the webhook. |
| `DISCORDBOT_GET_WEBHOOK_BY_TOKEN` | Retrieve webhook information | 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. |
| `DISCORDBOT_GET_WEBHOOK_MESSAGE` | Retrieve webhook message by id | 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. |
| `DISCORDBOT_INVITE_RESOLVE` | Retrieve invite by code | 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. |
| `DISCORDBOT_INVITE_REVOKE` | Delete invite via code | 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 the server. |
| `DISCORDBOT_JOIN_THREAD` | Update thread membership | 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 is joinable, not locked or full, and the user has permissions. |
| `DISCORDBOT_LEAVE_GUILD` | Delete user 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. |
| `DISCORDBOT_LEAVE_THREAD` | Remove current user from thread | Removes the currently authenticated user from a specified, existing, and accessible discord thread of which they are currently a member. |
| `DISCORDBOT_LIST_APPLICATION_COMMANDS` | List commands for application | Fetches all global application commands for the specified discord application id; does not fetch guild-specific commands. |
| `DISCORDBOT_LIST_AUTO_MODERATION_RULES` | Retrieve guild 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. |
| `DISCORDBOT_LIST_CHANNEL_INVITES` | 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. |
| `DISCORDBOT_LIST_CHANNEL_WEBHOOKS` | Retrieve channel webhooks | Fetches detailed information for all webhooks in a given valid discord channel, useful for review or auditing purposes. |
| `DISCORDBOT_LIST_GUILD_APPLICATION_COMMAND_PERMISSIONS` | Get application guild 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 access. |
| `DISCORDBOT_LIST_GUILD_APPLICATION_COMMANDS` | Fetch guild commands via application id | 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 usage statistics. |
| `DISCORDBOT_LIST_GUILD_AUDIT_LOG_ENTRIES` | Get guild audit logs by guild id | Retrieves audit log entries (e.g., message deletions, member kicks/bans, role changes) for a specified discord guild, requiring 'view audit log' permission. |
| `DISCORDBOT_LIST_GUILD_BANS` | 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. |
| `DISCORDBOT_LIST_GUILD_CHANNELS` | Retrieve 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. |
| `DISCORDBOT_LIST_GUILD_EMOJIS` | Retrieve 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. |
| `DISCORDBOT_LIST_GUILD_INTEGRATIONS` | List guild integrations | Lists all integration objects for a specified discord guild. |
| `DISCORDBOT_LIST_GUILD_INVITES` | Retrieve guild invites by id | Retrieves all currently active invite codes for a specified discord guild, typically for administration, analytics, or managing guild invitations. |
| `DISCORDBOT_LIST_GUILD_MEMBERS` | Get guild members | Retrieves members for a discord guild; requires a valid guild id for an existing guild. |
| `DISCORDBOT_LIST_GUILD_ROLES` | List guild roles | Fetches all roles in a discord guild, providing details for each role but not user assignments; `guild id` must be valid. |
| `DISCORDBOT_LIST_GUILD_SCHEDULED_EVENTS` | Retrieve 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. |
| `DISCORDBOT_LIST_GUILD_SCHEDULED_EVENT_USERS` | Retrieve users for scheduled event | Fetches users who have expressed interest in a specific scheduled event, requiring valid guild and event ids. |
| `DISCORDBOT_LIST_GUILD_STICKERS` | Retrieve guild stickers | Retrieves all custom sticker objects for a discord guild; does not include standard/nitro stickers. |
| `DISCORDBOT_LIST_GUILD_TEMPLATES` | Get guild templates by guild id | Retrieves all guild templates for an existing discord guild, specified by its id. |
| `DISCORDBOT_LIST_GUILD_VOICE_REGIONS` | List guild regions | Fetches a list of available voice regions for a specified discord guild. |
| `DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI` | Get channel message reaction 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. |
| `DISCORDBOT_LIST_MESSAGES` | Fetch messages from channel | Retrieves historical messages from a specified, accessible discord channel, typically newest first; for real-time messages, use discord's websocket gateway api. |
| `DISCORDBOT_LIST_MY_PRIVATE_ARCHIVED_THREADS` | Get private archived threads for user | Retrieves private archived threads from a specified channel that the current user is a member of. |
| `DISCORDBOT_LIST_PINNED_MESSAGES` | Retrieve pinned messages in channel | 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. |
| `DISCORDBOT_LIST_PRIVATE_ARCHIVED_THREADS` | Get archived private threads by channel id | Lists a channel's private archived threads, sorted by most recent archival, requiring view access to them. |
| `DISCORDBOT_LIST_PUBLIC_ARCHIVED_THREADS` | Get archived public threads by channel id | Lists public archived threads in an accessible discord channel, returning an empty list if none exist; does not list private or active threads. |
| `DISCORDBOT_LIST_STICKER_PACKS` | List sticker packs | Fetches sticker packs available to nitro subscribers on discord, excluding custom or guild-specific ones. |
| `DISCORDBOT_LIST_THREAD_MEMBERS` | List thread members in channel | Retrieves members of a specified discord thread, with an option to include full guild member objects for each. |
| `DISCORDBOT_LIST_VOICE_REGIONS` | Fetch voice regions list | Lists all available discord voice regions with their id, name, operational status (custom, deprecated, optimal), noting that availability may vary by server. |
| `DISCORDBOT_PIN_MESSAGE` | Pin message in channel | Pins a message in a discord channel for increased visibility, if the channel's pin limit (typically 50) is not exceeded. |
| `DISCORDBOT_PREVIEW_PRUNE_GUILD` | Retrieve guild prune info | 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. |
| `DISCORDBOT_PRUNE_GUILD` | Prune guild members by roles | Removes inactive members from a discord guild, requiring 'kick members' permission; use `compute prune count=true` to preview results before actual removal. |
| `DISCORDBOT_PUT_GUILDS_ONBOARDING` | Update guild onboarding configuration | 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. |
| `DISCORDBOT_SEARCH_GUILD_MEMBERS` | Search guild members by id | Searches for members in a specific discord guild, allowing filtering by a query string. |
| `DISCORDBOT_SET_CHANNEL_PERMISSION_OVERWRITE` | Modify channel permissions | 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 values to precisely control permissions. |
| `DISCORDBOT_SYNC_GUILD_TEMPLATE` | Update guild template by code | 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. |
| `DISCORDBOT_TRIGGER_TYPING_INDICATOR` | 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. |
| `DISCORDBOT_UNBAN_USER_FROM_GUILD` | Delete guild user ban | Revokes a ban for a user from a discord guild, allowing them to rejoin if they choose. |
| `DISCORDBOT_UNPIN_MESSAGE` | Delete channel message pin | Unpins a message that is currently pinned in a specified discord channel; the message itself is not deleted. |
| `DISCORDBOT_UPDATE_APPLICATION` | Modify application by id | 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` if specified. |
| `DISCORDBOT_UPDATE_APPLICATION_COMMAND` | Patch command for application | 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. |
| `DISCORDBOT_UPDATE_APPLICATION_USER_ROLE_CONNECTION` | Update user application role connection | Updates the authorized user's role connection for a specific application, which must have a linked role connection configured. |
| `DISCORDBOT_UPDATE_AUTO_MODERATION_RULE` | Modify guild 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. |
| `DISCORDBOT_UPDATE_CHANNEL` | Patch channel properties by id | 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. |
| `DISCORDBOT_UPDATE_GUILD` | Update guild settings | 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, splashes) may require specific permissions or guild statuses like 'community' or 'vip'. |
| `DISCORDBOT_UPDATE_GUILD_APPLICATION_COMMAND` | Update application guild 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 entities. |
| `DISCORDBOT_UPDATE_GUILD_EMOJI` | Update guild emoji roles | 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. |
| `DISCORDBOT_UPDATE_GUILD_MEMBER` | Modify guild member details | 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. |
| `DISCORDBOT_UPDATE_GUILD_ROLE` | Modify 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 remain unchanged. |
| `DISCORDBOT_UPDATE_GUILD_SCHEDULED_EVENT` | 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. |
| `DISCORDBOT_UPDATE_GUILD_STICKER` | Update guild sticker info | Modifies a guild sticker's name, description, or tags, requiring 'manage emojis and stickers' permission. |
| `DISCORDBOT_UPDATE_GUILD_TEMPLATE` | Patch guild template information | 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. |
| `DISCORDBOT_UPDATE_GUILD_WELCOME_SCREEN` | 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. |
| `DISCORDBOT_UPDATE_GUILD_WIDGET_SETTINGS` | Patch guild widget endpoint | Updates an existing discord guild's widget settings, such as its enabled state or clearing its invite channel. |
| `DISCORDBOT_UPDATE_MESSAGE` | Update channel 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 to change, using null or an empty list to clear existing values. |
| `DISCORDBOT_UPDATE_MY_APPLICATION` | Update application description | 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 `type` or `install params` clears/resets them. |
| `DISCORDBOT_UPDATE_MY_GUILD_MEMBER` | Modify guild member nickname | Modifies the nickname of the currently authenticated user within a specified discord guild. |
| `DISCORDBOT_UPDATE_MY_USER` | Update current user profile | Updates the current authenticated user's discord username and/or avatar. |
| `DISCORDBOT_UPDATE_ORIGINAL_WEBHOOK_MESSAGE` | Patch webhook original 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), components, allowed mentions, and flags. |
| `DISCORDBOT_UPDATE_SELF_VOICE_STATE` | Modify guild voice state for me | 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. |
| `DISCORDBOT_UPDATE_VOICE_STATE` | Patch guild 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 disconnect. |
| `DISCORDBOT_UPDATE_WEBHOOK` | Update webhook details patch | 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. |
| `DISCORDBOT_UPDATE_WEBHOOK_BY_TOKEN` | Update webhook name and avatar | Updates the default name and/or avatar for an existing discord webhook, using its id and token. |
| `DISCORDBOT_UPDATE_WEBHOOK_MESSAGE` | Update discord message with webhook | Updates a message previously sent by the *same* webhook, allowing partial modification of content, embeds, attachments, or components; will not edit user/bot messages. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Discordbot Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Discordbot actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'Bulk delete messages in #moderation channel from last hour'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Bulk delete messages in #moderation channel from last hour'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and Claude Agent SDK
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Create Tool Router Session

Initialize the Composio client and create a Tool Router session
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });

console.log("Creating Tool Router session...");
const { mcp } = await composio.create('your-user-id');
console.log(`Tool Router session created: ${mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Discordbot tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('Assign the Moderator role to user @Alex in the "Community" guild')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText, stepCountIs } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: mcp.url,
    headers: { 'x-api-key': 'your-composio-api-key' }
  }
});

const tools = await client.tools();

const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{ role: 'user', content: 'Assign the Moderator role to user @Alex in the "Community" guild' }],
  stopWhen: stepCountIs( 5 )
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Discordbot Integration

- Supports both Discordbot MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Discordbot data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Discordbot access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Discordbot
- Scoped, least privilege access to Discordbot resources
- Full audit trail of agent actions to support review and compliance

## Use Discordbot with any AI Agent Framework

Choose a framework you want to connect Discordbot with:

- [OpenAI Agents SDK](https://composio.dev/toolkits/discordbot/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/discordbot/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/discordbot/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/discordbot/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/discordbot/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/discordbot/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/discordbot/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/discordbot/framework/cli)
- [Google ADK](https://composio.dev/toolkits/discordbot/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/discordbot/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/discordbot/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/discordbot/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/discordbot/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/discordbot/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/discordbot/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/discordbot/framework/autogen)

## Related Toolkits

- [Gmail](https://composio.dev/toolkits/gmail) - Gmail is Google's email service with powerful spam protection, search, and G Suite integration. It keeps your inbox organized and makes communication fast and reliable.
- [Outlook](https://composio.dev/toolkits/outlook) - Outlook is Microsoft's email and calendaring platform for unified communications and scheduling. It helps users stay organized with powerful email, contacts, and calendar management.
- [Slack](https://composio.dev/toolkits/slack) - Slack is a channel-based messaging platform for teams and organizations. It helps people collaborate in real time, share files, and connect all their tools in one place.
- [Gong](https://composio.dev/toolkits/gong) - Gong is a platform for video meetings, call recording, and team collaboration. It helps teams capture conversations, analyze calls, and turn insights into action.
- [Microsoft teams](https://composio.dev/toolkits/microsoft_teams) - Microsoft Teams is a collaboration platform that combines chat, meetings, and file sharing within Microsoft 365. It keeps distributed teams connected and productive through seamless virtual communication.
- [Slackbot](https://composio.dev/toolkits/slackbot) - Slackbot is a conversational automation tool for Slack that handles reminders, notifications, and automated responses. It boosts team productivity by streamlining onboarding, answering FAQs, and managing timely alerts—all right inside Slack.
- [2chat](https://composio.dev/toolkits/_2chat) - 2chat is an API platform for WhatsApp and multichannel text messaging. It streamlines chat automation, group management, and real-time messaging for developers.
- [Agent mail](https://composio.dev/toolkits/agent_mail) - Agent mail provides AI agents with dedicated email inboxes for sending, receiving, and managing emails. It empowers agents to communicate autonomously with people, services, and other agents—no human intervention needed.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.
- [Chatwork](https://composio.dev/toolkits/chatwork) - Chatwork is a team communication platform with group chats, file sharing, and task management. It helps businesses boost collaboration and streamline productivity.
- [Clickmeeting](https://composio.dev/toolkits/clickmeeting) - ClickMeeting is a cloud-based platform for running online meetings and webinars. It helps businesses and individuals host, manage, and engage virtual audiences with ease.
- [Confluence](https://composio.dev/toolkits/confluence) - Confluence is Atlassian's team collaboration and knowledge management platform. It helps your team organize, share, and update documents and project content in one secure workspace.
- [Dailybot](https://composio.dev/toolkits/dailybot) - DailyBot streamlines team collaboration with chat-based standups, reminders, and polls. It keeps work flowing smoothly in your favorite messaging platforms.
- [Dialmycalls](https://composio.dev/toolkits/dialmycalls) - Dialmycalls is a mass notification service for sending voice and text messages to contacts. It helps teams and organizations quickly broadcast urgent alerts and updates.
- [Dialpad](https://composio.dev/toolkits/dialpad) - Dialpad is a cloud-based business phone and contact center system for teams. It unifies voice, video, messaging, and meetings across your devices.
- [Discord](https://composio.dev/toolkits/discord) - Discord is a real-time messaging and VoIP platform for communities and teams. It lets users chat, share media, and collaborate across public and private channels.
- [Echtpost](https://composio.dev/toolkits/echtpost) - Echtpost is a secure digital communication platform for encrypted document and message exchange. It ensures confidential data stays private and protected during transmission.
- [Egnyte](https://composio.dev/toolkits/egnyte) - Egnyte is a cloud-based platform for secure file sharing, storage, and governance. It helps teams collaborate efficiently while maintaining data compliance and security.
- [Google Meet](https://composio.dev/toolkits/googlemeet) - Google Meet is a secure video conferencing platform for virtual meetings, chat, and screen sharing. It helps teams connect, collaborate, and communicate seamlessly from anywhere.
- [Heartbeat](https://composio.dev/toolkits/heartbeat) - Heartbeat is a plug-and-play platform for building and managing online communities. It helps you organize users, channels, events, and discussions in one place.

## Frequently Asked Questions

### Do I need my own developer credentials to use Discordbot with Composio?

No, you can get started immediately using Composio's built-in Discordbot app. For production, we recommend configuring your own OAuth credentials.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
