plugins/all-skills/skills/discord-automation/SKILL.md
Automate Discord tasks via Rube MCP (Composio): messages, channels, roles, webhooks, reactions. Always search tools first for current schemas.
npx skillsauth add davepoon/buildwithclaude discord-automationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automate Discord operations through Composio's Discord/Discordbot toolkits via Rube MCP.
Toolkit docs: composio.dev/toolkits/discord
RUBE_MANAGE_CONNECTIONS with toolkits discord and discordbotRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit discordbot (bot operations) or discord (user operations)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 IDcontent: Message text (max 2000 characters)embeds: Array of embed objects for rich contentguild_id: Guild ID for channel listingPitfalls:
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 DMchannel_id: DM channel ID from CREATE_DMPitfalls:
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 IDuser_id: User snowflake IDrole_id: Role snowflake IDname: Role namepermissions: Bitwise permission valuecolor: RGB color integerPitfalls:
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 IDwebhook_token: Webhook secret tokenchannel_id: Channel for webhook creationname: Webhook namecontent/embeds: Message content for executionPitfalls:
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 IDmessage_id: Message snowflake IDemoji_name: URL-encoded emoji or name:id for custom emojisuser_id: User ID for specific reaction removalPitfalls:
name:id formatDiscord uses snowflake IDs (64-bit integers as strings) for all entities:
Permissions are combined using bitwise OR:
limit, before, after parametersafter for paginationBot vs User Tokens:
discordbot toolkit uses bot tokens; discord uses user OAuthRate Limits:
Retry-After headers on 429 responses| 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
development
Show drill-me learning progress — topics studied, cards due for review, weakest concepts, and what to study next. Use when the user asks what's due, how their learning is going, or for their drill-me status.
development
Teach the user a topic as an adaptive tutor — retrieval practice, spaced repetition with decay, and persistent memory in ~/.drill-me/. Use when the user wants to learn or be drilled on something, says "drill me on X", "teach me X", or wants to study a topic, a codebase, or a document.
development
Turn any codebase into evidence-grounded Markdown docs plus a machine-readable index.json. Every claim cites its source; never invents deployment steps.
tools
Assesses the current state of the startup project and recommends what to focus on next. Use when there is a need or a question from the user to understand what the next steps are or what to focus on next.