- Add date_added to all 950+ skills for complete tracking - Update version to 6.5.0 in package.json and README - Regenerate all indexes and catalog - Sync all generated files Features from merged PR #150: - Stars/Upvotes system for community-driven discovery - Auto-update mechanism via START_APP.bat - Interactive Prompt Builder - Date tracking badges - Smart auto-categorization All skills validated and indexed. Made-with: Cursor
192 lines
7.0 KiB
Markdown
192 lines
7.0 KiB
Markdown
---
|
|
name: discord-automation
|
|
description: "Automate Discord tasks via Rube MCP (Composio): messages, channels, roles, webhooks, reactions. Always search tools first for current schemas."
|
|
risk: unknown
|
|
source: community
|
|
date_added: "2026-02-27"
|
|
---
|
|
|
|
# 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.
|
|
|
|
|
|
1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
|
|
2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `discordbot` (bot operations) or `discord` (user operations)
|
|
3. If connection is not ACTIVE, follow the returned auth link to complete Discord auth
|
|
4. 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**:
|
|
1. `DISCORD_LIST_MY_GUILDS` - List guilds the bot belongs to [Prerequisite]
|
|
2. `DISCORDBOT_LIST_GUILD_CHANNELS` - List channels in a guild [Prerequisite]
|
|
3. `DISCORDBOT_CREATE_MESSAGE` - Send a message [Required]
|
|
4. `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**:
|
|
1. `DISCORDBOT_CREATE_DM` - Create or get DM channel [Required]
|
|
2. `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**:
|
|
1. `DISCORDBOT_CREATE_GUILD_ROLE` - Create a new role [Optional]
|
|
2. `DISCORDBOT_ADD_GUILD_MEMBER_ROLE` - Assign role to member [Optional]
|
|
3. `DISCORDBOT_DELETE_GUILD_ROLE` - Delete a role [Optional]
|
|
4. `DISCORDBOT_GET_GUILD_MEMBER` - Get member details [Optional]
|
|
5. `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**:
|
|
1. `DISCORDBOT_GET_GUILD_WEBHOOKS` / `DISCORDBOT_LIST_CHANNEL_WEBHOOKS` - List webhooks [Optional]
|
|
2. `DISCORDBOT_CREATE_WEBHOOK` - Create a new webhook [Optional]
|
|
3. `DISCORDBOT_EXECUTE_WEBHOOK` - Send message via webhook [Optional]
|
|
4. `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**:
|
|
1. `DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI` - List users who reacted [Optional]
|
|
2. `DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS` - Remove all reactions [Optional]
|
|
3. `DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI` - Remove specific emoji reactions [Optional]
|
|
4. `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.
|