Automate Discord tasks via Rube MCP (Composio): messages, channels, roles, webhooks, reactions. Always search tools first for current schemas.
Add this skill
npx mdskills install sickn33/discord-automationComprehensive Discord automation guide with clear workflows, tool sequences, and pitfall warnings
1---2name: discord-automation3description: "Automate Discord tasks via Rube MCP (Composio): messages, channels, roles, webhooks, reactions. Always search tools first for current schemas."4requires:5 mcp: [rube]6---78# Discord Automation via Rube MCP910Automate Discord operations through Composio's Discord/Discordbot toolkits via Rube MCP.1112## Prerequisites1314- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)15- Active Discord connection via `RUBE_MANAGE_CONNECTIONS` with toolkits `discord` and `discordbot`16- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1718## Setup1920**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.2122231. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds242. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `discordbot` (bot operations) or `discord` (user operations)253. If connection is not ACTIVE, follow the returned auth link to complete Discord auth264. Confirm connection status shows ACTIVE before running any workflows2728## Core Workflows2930### 1. Send Messages3132**When to use**: User wants to send messages to channels or DMs3334**Tool sequence**:351. `DISCORD_LIST_MY_GUILDS` - List guilds the bot belongs to [Prerequisite]362. `DISCORDBOT_LIST_GUILD_CHANNELS` - List channels in a guild [Prerequisite]373. `DISCORDBOT_CREATE_MESSAGE` - Send a message [Required]384. `DISCORDBOT_UPDATE_MESSAGE` - Edit a sent message [Optional]3940**Key parameters**:41- `channel_id`: Channel snowflake ID42- `content`: Message text (max 2000 characters)43- `embeds`: Array of embed objects for rich content44- `guild_id`: Guild ID for channel listing4546**Pitfalls**:47- Bot must have SEND_MESSAGES permission in the channel48- High-frequency sends can hit per-route rate limits; respect Retry-After headers49- Only messages sent by the same bot can be edited5051### 2. Send Direct Messages5253**When to use**: User wants to DM a Discord user5455**Tool sequence**:561. `DISCORDBOT_CREATE_DM` - Create or get DM channel [Required]572. `DISCORDBOT_CREATE_MESSAGE` - Send message to DM channel [Required]5859**Key parameters**:60- `recipient_id`: User snowflake ID for DM61- `channel_id`: DM channel ID from CREATE_DM6263**Pitfalls**:64- Cannot DM users who have DMs disabled or have blocked the bot65- CREATE_DM returns existing channel if one already exists6667### 3. Manage Roles6869**When to use**: User wants to create, assign, or remove roles7071**Tool sequence**:721. `DISCORDBOT_CREATE_GUILD_ROLE` - Create a new role [Optional]732. `DISCORDBOT_ADD_GUILD_MEMBER_ROLE` - Assign role to member [Optional]743. `DISCORDBOT_DELETE_GUILD_ROLE` - Delete a role [Optional]754. `DISCORDBOT_GET_GUILD_MEMBER` - Get member details [Optional]765. `DISCORDBOT_UPDATE_GUILD_MEMBER` - Update member (roles, nick, etc.) [Optional]7778**Key parameters**:79- `guild_id`: Guild snowflake ID80- `user_id`: User snowflake ID81- `role_id`: Role snowflake ID82- `name`: Role name83- `permissions`: Bitwise permission value84- `color`: RGB color integer8586**Pitfalls**:87- Role assignment requires MANAGE_ROLES permission88- Target role must be lower in hierarchy than bot's highest role89- DELETE permanently removes the role from all members9091### 4. Manage Webhooks9293**When to use**: User wants to create or use webhooks for external integrations9495**Tool sequence**:961. `DISCORDBOT_GET_GUILD_WEBHOOKS` / `DISCORDBOT_LIST_CHANNEL_WEBHOOKS` - List webhooks [Optional]972. `DISCORDBOT_CREATE_WEBHOOK` - Create a new webhook [Optional]983. `DISCORDBOT_EXECUTE_WEBHOOK` - Send message via webhook [Optional]994. `DISCORDBOT_UPDATE_WEBHOOK` - Update webhook settings [Optional]100101**Key parameters**:102- `webhook_id`: Webhook ID103- `webhook_token`: Webhook secret token104- `channel_id`: Channel for webhook creation105- `name`: Webhook name106- `content`/`embeds`: Message content for execution107108**Pitfalls**:109- Webhook tokens are secrets; handle securely110- Webhooks can post with custom username and avatar per message111- MANAGE_WEBHOOKS permission required for creation112113### 5. Manage Reactions114115**When to use**: User wants to view or manage message reactions116117**Tool sequence**:1181. `DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI` - List users who reacted [Optional]1192. `DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS` - Remove all reactions [Optional]1203. `DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI` - Remove specific emoji reactions [Optional]1214. `DISCORDBOT_DELETE_USER_MESSAGE_REACTION` - Remove specific user's reaction [Optional]122123**Key parameters**:124- `channel_id`: Channel ID125- `message_id`: Message snowflake ID126- `emoji_name`: URL-encoded emoji or `name:id` for custom emojis127- `user_id`: User ID for specific reaction removal128129**Pitfalls**:130- Unicode emojis must be URL-encoded (e.g., '%F0%9F%91%8D' for thumbs up)131- Custom emojis use `name:id` format132- DELETE_ALL requires MANAGE_MESSAGES permission133134## Common Patterns135136### Snowflake IDs137138Discord uses snowflake IDs (64-bit integers as strings) for all entities:139- Guilds, channels, users, roles, messages, webhooks140141### Permission Bitfields142143Permissions are combined using bitwise OR:144- SEND_MESSAGES = 0x800145- MANAGE_ROLES = 0x10000000146- MANAGE_MESSAGES = 0x2000147- ADMINISTRATOR = 0x8148149### Pagination150151- Most list endpoints support `limit`, `before`, `after` parameters152- Messages: max 100 per request153- Reactions: max 100 per request, use `after` for pagination154155## Known Pitfalls156157**Bot vs User Tokens**:158- `discordbot` toolkit uses bot tokens; `discord` uses user OAuth159- Bot operations are preferred for automation160161**Rate Limits**:162- Discord enforces per-route rate limits163- Respect `Retry-After` headers on 429 responses164165## Quick Reference166167| Task | Tool Slug | Key Params |168|------|-----------|------------|169| List guilds | DISCORD_LIST_MY_GUILDS | (none) |170| List channels | DISCORDBOT_LIST_GUILD_CHANNELS | guild_id |171| Send message | DISCORDBOT_CREATE_MESSAGE | channel_id, content |172| Edit message | DISCORDBOT_UPDATE_MESSAGE | channel_id, message_id |173| Get messages | DISCORDBOT_LIST_MESSAGES | channel_id, limit |174| Create DM | DISCORDBOT_CREATE_DM | recipient_id |175| Create role | DISCORDBOT_CREATE_GUILD_ROLE | guild_id, name |176| Assign role | DISCORDBOT_ADD_GUILD_MEMBER_ROLE | guild_id, user_id, role_id |177| Delete role | DISCORDBOT_DELETE_GUILD_ROLE | guild_id, role_id |178| Get member | DISCORDBOT_GET_GUILD_MEMBER | guild_id, user_id |179| Update member | DISCORDBOT_UPDATE_GUILD_MEMBER | guild_id, user_id |180| Get guild | DISCORDBOT_GET_GUILD | guild_id |181| Create webhook | DISCORDBOT_CREATE_WEBHOOK | channel_id, name |182| Execute webhook | DISCORDBOT_EXECUTE_WEBHOOK | webhook_id, webhook_token |183| List webhooks | DISCORDBOT_GET_GUILD_WEBHOOKS | guild_id |184| Get reactions | DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI | channel_id, message_id, emoji_name |185| Clear reactions | DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS | channel_id, message_id |186| Test auth | DISCORDBOT_TEST_AUTH | (none) |187| Get channel | DISCORDBOT_GET_CHANNEL | channel_id |188
Full transparency — inspect the skill content before installing.