Automate Discord operations through Composio's Discord/Discordbot toolkits via Rube MCP.
Toolkit docs
:
composio.dev/toolkits/discord
Prerequisites
Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
Active Discord connection via
RUBE_MANAGE_CONNECTIONS
with toolkits
discord
and
discordbot
Always call
RUBE_SEARCH_TOOLS
first to get current tool schemas
Setup
Get Rube MCP
Add
https://rube.app/mcp
as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS
responds
Call
RUBE_MANAGE_CONNECTIONS
with toolkit
discordbot
(bot operations) or
discord
(user operations)
If connection is not ACTIVE, follow the returned auth link to complete Discord auth
Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Send Messages
When to use
User wants to send messages to channels or DMs
Tool sequence
:
DISCORD_LIST_MY_GUILDS
- List guilds the bot belongs to [Prerequisite]
DISCORDBOT_LIST_GUILD_CHANNELS
- List channels in a guild [Prerequisite]
DISCORDBOT_CREATE_MESSAGE
- Send a message [Required]
DISCORDBOT_UPDATE_MESSAGE
- Edit a sent message [Optional]
Key parameters
:
channel_id
Channel snowflake ID
content
Message text (max 2000 characters)
embeds
Array of embed objects for rich content
guild_id
Guild ID for channel listing
Pitfalls
:
Bot must have SEND_MESSAGES permission in the channel
High-frequency sends can hit per-route rate limits; respect Retry-After headers
Only messages sent by the same bot can be edited
2. Send Direct Messages
When to use
User wants to DM a Discord user
Tool sequence
:
DISCORDBOT_CREATE_DM
- Create or get DM channel [Required]
DISCORDBOT_CREATE_MESSAGE
- Send message to DM channel [Required]
Key parameters
:
recipient_id
User snowflake ID for DM
channel_id
DM channel ID from CREATE_DM
Pitfalls
:
Cannot DM users who have DMs disabled or have blocked the bot
CREATE_DM returns existing channel if one already exists
3. Manage Roles
When to use
User wants to create, assign, or remove roles
Tool sequence
:
DISCORDBOT_CREATE_GUILD_ROLE
- Create a new role [Optional]
DISCORDBOT_ADD_GUILD_MEMBER_ROLE
- Assign role to member [Optional]
DISCORDBOT_DELETE_GUILD_ROLE
- Delete a role [Optional]
DISCORDBOT_GET_GUILD_MEMBER
- Get member details [Optional]
DISCORDBOT_UPDATE_GUILD_MEMBER
- Update member (roles, nick, etc.) [Optional]
Key parameters
:
guild_id
Guild snowflake ID
user_id
User snowflake ID
role_id
Role snowflake ID
name
Role name
permissions
Bitwise permission value
color
RGB color integer
Pitfalls
:
Role assignment requires MANAGE_ROLES permission
Target role must be lower in hierarchy than bot's highest role
DELETE permanently removes the role from all members
4. Manage Webhooks
When to use
User wants to create or use webhooks for external integrations
Tool sequence
:
DISCORDBOT_GET_GUILD_WEBHOOKS
/
DISCORDBOT_LIST_CHANNEL_WEBHOOKS
- List webhooks [Optional]
DISCORDBOT_CREATE_WEBHOOK
- Create a new webhook [Optional]
DISCORDBOT_EXECUTE_WEBHOOK
- Send message via webhook [Optional]
DISCORDBOT_UPDATE_WEBHOOK
- Update webhook settings [Optional]
Key parameters
:
webhook_id
Webhook ID
webhook_token
Webhook secret token
channel_id
Channel for webhook creation
name
Webhook name
content
/
embeds
Message content for execution
Pitfalls
:
Webhook tokens are secrets; handle securely
Webhooks can post with custom username and avatar per message
MANAGE_WEBHOOKS permission required for creation
5. Manage Reactions
When to use
User wants to view or manage message reactions
Tool sequence
:
DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI
- List users who reacted [Optional]
DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS
- Remove all reactions [Optional]
DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI
- Remove specific emoji reactions [Optional]
DISCORDBOT_DELETE_USER_MESSAGE_REACTION
- Remove specific user's reaction [Optional]
Key parameters
:
channel_id
Channel ID
message_id
Message snowflake ID
emoji_name
URL-encoded emoji or
name:id
for custom emojis
user_id
User ID for specific reaction removal
Pitfalls
:
Unicode emojis must be URL-encoded (e.g., '%F0%9F%91%8D' for thumbs up)
Custom emojis use
name:id
format
DELETE_ALL requires MANAGE_MESSAGES permission
Common Patterns
Snowflake IDs
Discord uses snowflake IDs (64-bit integers as strings) for all entities:
Guilds, channels, users, roles, messages, webhooks
Permission Bitfields
Permissions are combined using bitwise OR:
SEND_MESSAGES = 0x800
MANAGE_ROLES = 0x10000000
MANAGE_MESSAGES = 0x2000
ADMINISTRATOR = 0x8
Pagination
Most list endpoints support
limit
,
before
,
after
parameters
Messages: max 100 per request
Reactions: max 100 per request, use
after
for pagination
Known Pitfalls
Bot vs User Tokens
:
discordbot
toolkit uses bot tokens;
discord
uses user OAuth
Bot operations are preferred for automation
Rate Limits
:
Discord enforces per-route rate limits
Respect
Retry-After
headers on 429 responses
Quick Reference
Task
Tool Slug
Key Params
List guilds
DISCORD_LIST_MY_GUILDS
(none)
List channels
DISCORDBOT_LIST_GUILD_CHANNELS
guild_id
Send message
DISCORDBOT_CREATE_MESSAGE
channel_id, content
Edit message
DISCORDBOT_UPDATE_MESSAGE
channel_id, message_id
Get messages
DISCORDBOT_LIST_MESSAGES
channel_id, limit
Create DM
DISCORDBOT_CREATE_DM
recipient_id
Create role
DISCORDBOT_CREATE_GUILD_ROLE
guild_id, name
Assign role
DISCORDBOT_ADD_GUILD_MEMBER_ROLE
guild_id, user_id, role_id
Delete role
DISCORDBOT_DELETE_GUILD_ROLE
guild_id, role_id
Get member
DISCORDBOT_GET_GUILD_MEMBER
guild_id, user_id
Update member
DISCORDBOT_UPDATE_GUILD_MEMBER
guild_id, user_id
Get guild
DISCORDBOT_GET_GUILD
guild_id
Create webhook
DISCORDBOT_CREATE_WEBHOOK
channel_id, name
Execute webhook
DISCORDBOT_EXECUTE_WEBHOOK
webhook_id, webhook_token
List webhooks
DISCORDBOT_GET_GUILD_WEBHOOKS
guild_id
Get reactions
DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI
channel_id, message_id, emoji_name
Clear reactions
DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS
channel_id, message_id
Test auth
DISCORDBOT_TEST_AUTH
(none)
Get channel
DISCORDBOT_GET_CHANNEL
channel_id
Powered by
Composio