# How to integrate Discordbot MCP with Hermes

```json
{
  "title": "How to integrate Discordbot MCP with Hermes",
  "toolkit": "Discordbot",
  "toolkit_slug": "discordbot",
  "framework": "Hermes",
  "framework_slug": "hermes-agent",
  "url": "https://composio.dev/toolkits/discordbot/framework/hermes-agent",
  "markdown_url": "https://composio.dev/toolkits/discordbot/framework/hermes-agent.md",
  "updated_at": "2026-05-06T08:08:50.161Z"
}
```

## Introduction

Hermes is a 24/7 autonomous agent that lives on your computer or server — it remembers what it learns and evolves as your usage grows.
This guide explains the easiest and most robust way to connect your Discordbot account to Hermes. You can do this through either Composio Connect CLI or Composio Connect MCP. For personal use we recommend the CLI, but you won't go wrong with MCP either.

## Also integrate 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)
- [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)

## TL;DR

### What is Composio Connect?
Composio Connect is a consumer offering that lets anyone plug 1,000+ applications directly into their agent harness — including Hermes. It can:
- Search and load tools from relevant toolkits on-demand, reducing context usage.
- Chain multiple tools to accomplish complex workflows via a remote workbench, without excessive back-and-forth with the LLM.
- Manage app authentication end-to-end with zero manual overhead.

## Connect Discordbot to Hermes

### Integrating Discordbot with Hermes
### Using Composio Connect CLI
1. Install the Composio CLI
Run the install script directly, or paste https://composio.dev/hermes into your Hermes chat box to have it installed for you.

```bash
curl -fsSL https://composio.dev/install | bash
```

## What is the Discordbot MCP server, and what's possible with it?

The Discordbot MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Discordbot account. It provides structured and secure access to your Discord servers, so your agent can perform actions like moderating users, managing roles, handling group messages, triggering auto-moderation, and automating channel maintenance on your behalf.
- User moderation and banning: Instruct your agent to ban or bulk ban users, delete their recent messages, and keep your community safe from unwanted behavior.
- Role and membership management: Automatically assign roles, add users to servers or threads, and update member information to streamline onboarding and permissions.
- Automated message handling: Let your agent bulk delete messages in a channel or add emoji reactions to keep conversations tidy and interactive.
- Custom command creation: Enable your agent to create new global application commands, so your Discord server can respond to custom triggers and workflows.
- Auto moderation rule setup: Have your agent set up or update auto moderation rules for your guild, ensuring safe and compliant community interactions around the clock.

## 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.

## Creating MCP Server - Stand-alone vs Composio SDK

The Discordbot MCP server provides comprehensive access to Discordbot operations through Composio. Once connected, Hermes can perform all major Discordbot actions on your behalf using natural language commands.

## Complete Code

None listed.

## Conclusion

### Way Forward
With Discordbot connected, Hermes can now act on your behalf whenever it detects a relevant task or you ask it to.
From here, you can extend Hermes further:
- Connect more apps: Calendar, Slack, Notion, Linear, and hundreds of others are available through the same Composio Connect setup. Each new integration compounds what Hermes can do for you.
- Build workflows across tools: Once multiple apps are connected, Hermes can chain actions together — turn an email into a calendar invite, a Slack message into a Linear ticket, or a meeting note into a follow-up draft.
- Let it learn your patterns: The more you use Hermes, the better it gets at anticipating how you'd handle recurring tasks. Give it feedback on drafts and decisions, and it will adapt.
If you run into trouble or want to share what you've built, join the [community](https://discord.com/invite/composio) or check out the [Docs](https://docs.composio.dev?utm_source=toolkits&utm_medium=framework_template&utm_campaign=hermes&utm_content=docs) for deeper configuration options.

## How to build Discordbot MCP Agent with another framework

- [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)
- [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)

## 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

### What are the differences in Tool Router MCP and Discordbot MCP?

With a standalone Discordbot MCP server, the agents and LLMs can only access a fixed set of Discordbot tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Discordbot and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Hermes?

Yes, you can. Hermes fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Discordbot tools.

### Can I manage the permissions and scopes for Discordbot while using Tool Router?

Yes, absolutely. You can configure which Discordbot scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Discordbot data and credentials are handled as safely as possible.

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