Install
$ agentstack add skill-davepoon-buildwithclaude-discord-automation ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Discord Automation via Rube MCP
Automate Discord operations through Composio's Discord/Discordbot toolkits via Rube MCP.
Toolkit docs: composio.dev/toolkits/discord
Prerequisites
- Rube MCP must be connected (RUBESEARCHTOOLS available)
- Active Discord connection via
RUBE_MANAGE_CONNECTIONSwith toolkitsdiscordanddiscordbot - Always call
RUBE_SEARCH_TOOLSfirst 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_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitdiscordbot(bot operations) ordiscord(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 IDcontent: Message text (max 2000 characters)embeds: Array of embed objects for rich contentguild_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 DMchannel_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 IDuser_id: User snowflake IDrole_id: Role snowflake IDname: Role namepermissions: Bitwise permission valuecolor: 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 IDwebhook_token: Webhook secret tokenchannel_id: Channel for webhook creationname: Webhook namecontent/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 IDmessage_id: Message snowflake IDemoji_name: URL-encoded emoji orname:idfor custom emojisuser_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:idformat - DELETEALL requires MANAGEMESSAGES 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,afterparameters - Messages: max 100 per request
- Reactions: max 100 per request, use
afterfor pagination
Known Pitfalls
Bot vs User Tokens:
discordbottoolkit uses bot tokens;discorduses user OAuth- Bot operations are preferred for automation
Rate Limits:
- Discord enforces per-route rate limits
- Respect
Retry-Afterheaders on 429 responses
Quick Reference
| Task | Tool Slug | Key Params | |------|-----------|------------| | List guilds | DISCORDLISTMYGUILDS | (none) | | List channels | DISCORDBOTLISTGUILDCHANNELS | guildid | | Send message | DISCORDBOTCREATEMESSAGE | channelid, content | | Edit message | DISCORDBOTUPDATEMESSAGE | channelid, messageid | | Get messages | DISCORDBOTLISTMESSAGES | channelid, limit | | Create DM | DISCORDBOTCREATEDM | recipientid | | Create role | DISCORDBOTCREATEGUILDROLE | guildid, name | | Assign role | DISCORDBOTADDGUILDMEMBERROLE | guildid, userid, roleid | | Delete role | DISCORDBOTDELETEGUILDROLE | guildid, roleid | | Get member | DISCORDBOTGETGUILDMEMBER | guildid, userid | | Update member | DISCORDBOTUPDATEGUILDMEMBER | guildid, userid | | Get guild | DISCORDBOTGETGUILD | guildid | | Create webhook | DISCORDBOTCREATEWEBHOOK | channelid, name | | Execute webhook | DISCORDBOTEXECUTEWEBHOOK | webhookid, webhooktoken | | List webhooks | DISCORDBOTGETGUILDWEBHOOKS | guildid | | Get reactions | DISCORDBOTLISTMESSAGEREACTIONSBYEMOJI | channelid, messageid, emojiname | | Clear reactions | DISCORDBOTDELETEALLMESSAGEREACTIONS | channelid, messageid | | Test auth | DISCORDBOTTESTAUTH | (none) | | Get channel | DISCORDBOTGETCHANNEL | channel_id |
Powered by Composio
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: davepoon
- Source: davepoon/buildwithclaude
- License: MIT
- Homepage: https://www.buildwithclaude.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.