Discord Automation via Rube MCP
Automate Discord operations through Composio's Discord/Discordbot toolkits via Rube MCP.
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 |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Source: sickn33/agentic-awesome-skills → skills/discord-automation/SKILL.md
Also appears in: sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills/skills/discord-automation/SKILL.md, sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills-claude/skills/discord-automation/SKILL.md
1---2name: discord-automation3description: Automate Discord tasks via Rube MCP (Composio): messages, channels, roles, webhooks, reactions. Always search tools first for current schemas.4---567# Discord Automation via Rube MCP89Automate Discord operations through Composio's Discord/Discordbot toolkits via Rube MCP.1011## Prerequisites1213- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)14- Active Discord connection via `RUBE_MANAGE_CONNECTIONS` with toolkits `discord` and `discordbot`15- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1617## Setup1819**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.20211. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds222. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `discordbot` (bot operations) or `discord` (user operations)233. If connection is not ACTIVE, follow the returned auth link to complete Discord auth244. Confirm connection status shows ACTIVE before running any workflows2526## Core Workflows2728### 1. Send Messages2930**When to use**: User wants to send messages to channels or DMs3132**Tool sequence**:331. `DISCORD_LIST_MY_GUILDS` - List guilds the bot belongs to [Prerequisite]342. `DISCORDBOT_LIST_GUILD_CHANNELS` - List channels in a guild [Prerequisite]353. `DISCORDBOT_CREATE_MESSAGE` - Send a message [Required]364. `DISCORDBOT_UPDATE_MESSAGE` - Edit a sent message [Optional]3738**Key parameters**:39- `channel_id`: Channel snowflake ID40- `content`: Message text (max 2000 characters)41- `embeds`: Array of embed objects for rich content42- `guild_id`: Guild ID for channel listing4344**Pitfalls**:45- Bot must have SEND_MESSAGES permission in the channel46- High-frequency sends can hit per-route rate limits; respect Retry-After headers47- Only messages sent by the same bot can be edited4849### 2. Send Direct Messages5051**When to use**: User wants to DM a Discord user5253**Tool sequence**:541. `DISCORDBOT_CREATE_DM` - Create or get DM channel [Required]552. `DISCORDBOT_CREATE_MESSAGE` - Send message to DM channel [Required]5657**Key parameters**:58- `recipient_id`: User snowflake ID for DM59- `channel_id`: DM channel ID from CREATE_DM6061**Pitfalls**:62- Cannot DM users who have DMs disabled or have blocked the bot63- CREATE_DM returns existing channel if one already exists6465### 3. Manage Roles6667**When to use**: User wants to create, assign, or remove roles6869**Tool sequence**:701. `DISCORDBOT_CREATE_GUILD_ROLE` - Create a new role [Optional]712. `DISCORDBOT_ADD_GUILD_MEMBER_ROLE` - Assign role to member [Optional]723. `DISCORDBOT_DELETE_GUILD_ROLE` - Delete a role [Optional]734. `DISCORDBOT_GET_GUILD_MEMBER` - Get member details [Optional]745. `DISCORDBOT_UPDATE_GUILD_MEMBER` - Update member (roles, nick, etc.) [Optional]7576**Key parameters**:77- `guild_id`: Guild snowflake ID78- `user_id`: User snowflake ID79- `role_id`: Role snowflake ID80- `name`: Role name81- `permissions`: Bitwise permission value82- `color`: RGB color integer8384**Pitfalls**:85- Role assignment requires MANAGE_ROLES permission86- Target role must be lower in hierarchy than bot's highest role87- DELETE permanently removes the role from all members8889### 4. Manage Webhooks9091**When to use**: User wants to create or use webhooks for external integrations9293**Tool sequence**:941. `DISCORDBOT_GET_GUILD_WEBHOOKS` / `DISCORDBOT_LIST_CHANNEL_WEBHOOKS` - List webhooks [Optional]952. `DISCORDBOT_CREATE_WEBHOOK` - Create a new webhook [Optional]963. `DISCORDBOT_EXECUTE_WEBHOOK` - Send message via webhook [Optional]974. `DISCORDBOT_UPDATE_WEBHOOK` - Update webhook settings [Optional]9899**Key parameters**:100- `webhook_id`: Webhook ID101- `webhook_token`: Webhook secret token102- `channel_id`: Channel for webhook creation103- `name`: Webhook name104- `content`/`embeds`: Message content for execution105106**Pitfalls**:107- Webhook tokens are secrets; handle securely108- Webhooks can post with custom username and avatar per message109- MANAGE_WEBHOOKS permission required for creation110111### 5. Manage Reactions112113**When to use**: User wants to view or manage message reactions114115**Tool sequence**:1161. `DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI` - List users who reacted [Optional]1172. `DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS` - Remove all reactions [Optional]1183. `DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI` - Remove specific emoji reactions [Optional]1194. `DISCORDBOT_DELETE_USER_MESSAGE_REACTION` - Remove specific user's reaction [Optional]120121**Key parameters**:122- `channel_id`: Channel ID123- `message_id`: Message snowflake ID124- `emoji_name`: URL-encoded emoji or `name:id` for custom emojis125- `user_id`: User ID for specific reaction removal126127**Pitfalls**:128- Unicode emojis must be URL-encoded (e.g., '%F0%9F%91%8D' for thumbs up)129- Custom emojis use `name:id` format130- DELETE_ALL requires MANAGE_MESSAGES permission131132## Common Patterns133134### Snowflake IDs135136Discord uses snowflake IDs (64-bit integers as strings) for all entities:137- Guilds, channels, users, roles, messages, webhooks138139### Permission Bitfields140141Permissions are combined using bitwise OR:142- SEND_MESSAGES = 0x800143- MANAGE_ROLES = 0x10000000144- MANAGE_MESSAGES = 0x2000145- ADMINISTRATOR = 0x8146147### Pagination148149- Most list endpoints support `limit`, `before`, `after` parameters150- Messages: max 100 per request151- Reactions: max 100 per request, use `after` for pagination152153## Known Pitfalls154155**Bot vs User Tokens**:156- `discordbot` toolkit uses bot tokens; `discord` uses user OAuth157- Bot operations are preferred for automation158159**Rate Limits**:160- Discord enforces per-route rate limits161- Respect `Retry-After` headers on 429 responses162163## Quick Reference164165| Task | Tool Slug | Key Params |166|------|-----------|------------|167| List guilds | DISCORD_LIST_MY_GUILDS | (none) |168| List channels | DISCORDBOT_LIST_GUILD_CHANNELS | guild_id |169| Send message | DISCORDBOT_CREATE_MESSAGE | channel_id, content |170| Edit message | DISCORDBOT_UPDATE_MESSAGE | channel_id, message_id |171| Get messages | DISCORDBOT_LIST_MESSAGES | channel_id, limit |172| Create DM | DISCORDBOT_CREATE_DM | recipient_id |173| Create role | DISCORDBOT_CREATE_GUILD_ROLE | guild_id, name |174| Assign role | DISCORDBOT_ADD_GUILD_MEMBER_ROLE | guild_id, user_id, role_id |175| Delete role | DISCORDBOT_DELETE_GUILD_ROLE | guild_id, role_id |176| Get member | DISCORDBOT_GET_GUILD_MEMBER | guild_id, user_id |177| Update member | DISCORDBOT_UPDATE_GUILD_MEMBER | guild_id, user_id |178| Get guild | DISCORDBOT_GET_GUILD | guild_id |179| Create webhook | DISCORDBOT_CREATE_WEBHOOK | channel_id, name |180| Execute webhook | DISCORDBOT_EXECUTE_WEBHOOK | webhook_id, webhook_token |181| List webhooks | DISCORDBOT_GET_GUILD_WEBHOOKS | guild_id |182| Get reactions | DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI | channel_id, message_id, emoji_name |183| Clear reactions | DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS | channel_id, message_id |184| Test auth | DISCORDBOT_TEST_AUTH | (none) |185| Get channel | DISCORDBOT_GET_CHANNEL | channel_id |186187## When to Use188This skill is applicable to execute the workflow or actions described in the overview.189190## Limitations191- Use this skill only when the task clearly matches the scope described above.192- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.193- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.194195---196197**Source:** [`sickn33/agentic-awesome-skills`](https://github.com/sickn33/agentic-awesome-skills) → `skills/discord-automation/SKILL.md`198199**Also appears in:** `sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills/skills/discord-automation/SKILL.md`, `sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills-claude/skills/discord-automation/SKILL.md`