Antigravity-awesome-skills discord-automation
Automate Discord tasks via Rube MCP (Composio): messages, channels, roles, webhooks, reactions. Always search tools first for current schemas.
git clone https://github.com/benjaminasterA/antigravity-awesome-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/benjaminasterA/antigravity-awesome-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/discord-automation" ~/.claude/skills/benjaminastera-antigravity-awesome-skills-discord-automation && rm -rf "$T"
skills/discord-automation/SKILL.mdDiscord 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
with toolkitsRUBE_MANAGE_CONNECTIONS
anddiscorddiscordbot - Always call
first to get current tool schemasRUBE_SEARCH_TOOLS
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
respondsRUBE_SEARCH_TOOLS - Call
with toolkitRUBE_MANAGE_CONNECTIONS
(bot operations) ordiscordbot
(user operations)discord - 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:
- List guilds the bot belongs to [Prerequisite]DISCORD_LIST_MY_GUILDS
- List channels in a guild [Prerequisite]DISCORDBOT_LIST_GUILD_CHANNELS
- Send a message [Required]DISCORDBOT_CREATE_MESSAGE
- Edit a sent message [Optional]DISCORDBOT_UPDATE_MESSAGE
Key parameters:
: Channel snowflake IDchannel_id
: Message text (max 2000 characters)content
: Array of embed objects for rich contentembeds
: Guild ID for channel listingguild_id
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:
- Create or get DM channel [Required]DISCORDBOT_CREATE_DM
- Send message to DM channel [Required]DISCORDBOT_CREATE_MESSAGE
Key parameters:
: User snowflake ID for DMrecipient_id
: DM channel ID from CREATE_DMchannel_id
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:
- Create a new role [Optional]DISCORDBOT_CREATE_GUILD_ROLE
- Assign role to member [Optional]DISCORDBOT_ADD_GUILD_MEMBER_ROLE
- Delete a role [Optional]DISCORDBOT_DELETE_GUILD_ROLE
- Get member details [Optional]DISCORDBOT_GET_GUILD_MEMBER
- Update member (roles, nick, etc.) [Optional]DISCORDBOT_UPDATE_GUILD_MEMBER
Key parameters:
: Guild snowflake IDguild_id
: User snowflake IDuser_id
: Role snowflake IDrole_id
: Role namename
: Bitwise permission valuepermissions
: RGB color integercolor
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
- List webhooks [Optional]DISCORDBOT_LIST_CHANNEL_WEBHOOKS
- Create a new webhook [Optional]DISCORDBOT_CREATE_WEBHOOK
- Send message via webhook [Optional]DISCORDBOT_EXECUTE_WEBHOOK
- Update webhook settings [Optional]DISCORDBOT_UPDATE_WEBHOOK
Key parameters:
: Webhook IDwebhook_id
: Webhook secret tokenwebhook_token
: Channel for webhook creationchannel_id
: Webhook namename
/content
: Message content for executionembeds
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:
- List users who reacted [Optional]DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI
- Remove all reactions [Optional]DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS
- Remove specific emoji reactions [Optional]DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI
- Remove specific user's reaction [Optional]DISCORDBOT_DELETE_USER_MESSAGE_REACTION
Key parameters:
: Channel IDchannel_id
: Message snowflake IDmessage_id
: URL-encoded emoji oremoji_name
for custom emojisname:id
: User ID for specific reaction removaluser_id
Pitfalls:
- Unicode emojis must be URL-encoded (e.g., '%F0%9F%91%8D' for thumbs up)
- Custom emojis use
formatname:id - 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
parametersafter - Messages: max 100 per request
- Reactions: max 100 per request, use
for paginationafter
Known Pitfalls
Bot vs User Tokens:
toolkit uses bot tokens;discordbot
uses user OAuthdiscord- Bot operations are preferred for automation
Rate Limits:
- Discord enforces per-route rate limits
- Respect
headers on 429 responsesRetry-After
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.