关于 discord-automation
discord-automation 是通过 Rube MCP 和 Composio Discord 工具包自动化 Discord 操作的技能,面向服务器和消息管理场景。它覆盖消息、角色、Webhook 和反应管理。
主要功能
- 01向频道和私信发送消息
- 02编辑已发送消息
- 03创建、分配和删除角色
- 04创建及执行 Webhook
- 05查看或移除消息反应
适用场景
- 01向 Discord 频道发布更新
- 02向用户发送私信
- 03管理服务器成员角色
- 04通过 Webhook 发布集成消息
MCP 相关
通过 Rube MCP 调用 Composio 的 Discord 和 Discordbot 工具包;前者用于用户操作,后者用于机器人操作。运行前需建立相应连接并获取当前工具 schema。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill discord-automation安装后在 Claude Code 中输入/discord-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Discord
通过 Rube MCP 使用 Composio 的 Discord/Discordbot 工具包自动执行 Discord 操作。
工具包文档:composio.dev/toolkits/discord
前提条件
- 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
- 通过
RUBE_MANAGE_CONNECTIONS建立有效的 Discord 连接,并使用工具包discord和discordbot - 始终先调用
RUBE_SEARCH_TOOLS,以获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥,只需添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS能够响应,以验证 Rube MCP 是否可用 - 使用工具包
discordbot(机器人操作)或discord(用户操作)调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请访问返回的授权链接以完成 Discord 授权
- 确认连接状态显示为 ACTIVE 后,再运行任何工作流
核心工作流
1. 发送消息
适用场景:用户想要向频道或私信发送消息
工具调用顺序:
DISCORD_LIST_MY_GUILDS- 列出机器人所属的服务器 [前置条件]DISCORDBOT_LIST_GUILD_CHANNELS- 列出服务器中的频道 [前置条件]DISCORDBOT_CREATE_MESSAGE- 发送消息 [必需]DISCORDBOT_UPDATE_MESSAGE- 编辑已发送的消息 [可选]
关键参数:
channel_id:频道 snowflake IDcontent:消息文本(最多 2000 个字符)embeds:用于富内容的嵌入对象数组guild_id:列出频道时使用的服务器 ID
注意事项:
- 机器人必须拥有频道中的 SEND_MESSAGES 权限
- 高频发送可能触发每个路由的速率限制;请遵守 Retry-After 标头
- 只能编辑同一机器人发送的消息
2. 发送私信
适用场景:用户想要向 Discord 用户发送私信
工具调用顺序:
DISCORDBOT_CREATE_DM- 创建或获取私信频道 [必需]DISCORDBOT_CREATE_MESSAGE- 向私信频道发送消息 [必需]
关键参数:
recipient_id:用于私信的用户 snowflake IDchannel_id:来自 CREATE_DM 的私信频道 ID
注意事项:
- 无法向关闭私信或已屏蔽机器人的用户发送私信
- 如果私信频道已存在,CREATE_DM 会返回现有频道
3. 管理角色
适用场景:用户想要创建、分配或移除角色
工具调用顺序:
DISCORDBOT_CREATE_GUILD_ROLE- 创建新角色 [可选]DISCORDBOT_ADD_GUILD_MEMBER_ROLE- 为成员分配角色 [可选]DISCORDBOT_DELETE_GUILD_ROLE- 删除角色 [可选]DISCORDBOT_GET_GUILD_MEMBER- 获取成员详情 [可选]DISCORDBOT_UPDATE_GUILD_MEMBER- 更新成员信息(角色、昵称等)[可选]
关键参数:
guild_id:服务器 snowflake IDuser_id:用户 snowflake IDrole_id:角色 snowflake IDname:角色名称permissions:按位表示的权限值color:RGB 颜色整数
注意事项:
- 分配角色需要 MANAGE_ROLES 权限
- 目标角色在层级中的位置必须低于机器人的最高角色
- DELETE 会从所有成员处永久移除该角色
4. 管理 Webhook
适用场景:用户想要创建或使用 Webhook 进行外部集成
工具调用顺序:
DISCORDBOT_GET_GUILD_WEBHOOKS/DISCORDBOT_LIST_CHANNEL_WEBHOOKS- 列出 Webhook [可选]DISCORDBOT_CREATE_WEBHOOK- 创建新的 Webhook [可选]DISCORDBOT_EXECUTE_WEBHOOK- 通过 Webhook 发送消息 [可选]DISCORDBOT_UPDATE_WEBHOOK- 更新 Webhook 设置 [可选]
关键参数:
webhook_id:Webhook IDwebhook_token:Webhook 密钥令牌channel_id:创建 Webhook 所用的频道name:Webhook 名称content/embeds:执行时使用的消息内容
注意事项:
- Webhook 令牌属于机密信息;请妥善处理
- Webhook 可以为每条消息设置自定义用户名和头像
- 创建 Webhook 需要 MANAGE_WEBHOOKS 权限
5. 管理回应
适用场景:用户想查看或管理消息回应
工具调用顺序:
DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI- 列出对消息作出回应的用户[可选]DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS- 移除所有回应[可选]DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI- 移除特定表情符号的回应[可选]DISCORDBOT_DELETE_USER_MESSAGE_REACTION- 移除特定用户的回应[可选]
关键参数:
channel_id:频道 IDmessage_id:消息雪花 IDemoji_name:经过 URL 编码的表情符号,或自定义表情符号的name:iduser_id:用于移除特定回应的用户 ID
注意事项:
- Unicode 表情符号必须经过 URL 编码(例如,点赞表情符号对应的 '%F0%9F%91%8D')
- 自定义表情符号使用
name:id格式 - DELETE_ALL 需要 MANAGE_MESSAGES 权限
常见模式
雪花 ID
Discord 对所有实体都使用雪花 ID(以字符串表示的 64 位整数):
- 服务器、频道、用户、身份组、消息、Webhook
权限位字段
权限通过按位或组合:
- SEND_MESSAGES = 0x800
- MANAGE_ROLES = 0x10000000
- MANAGE_MESSAGES = 0x2000
- ADMINISTRATOR = 0x8
分页
- 大多数列表端点支持
limit、before、after参数 - 消息:每次请求最多 100 条
- 回应:每次请求最多 100 条,使用
after进行分页
已知注意事项
机器人令牌与用户令牌:
discordbot工具包使用机器人令牌;discord使用用户 OAuth- 自动化时优先使用机器人操作
速率限制:
- Discord 会对各路由实施速率限制
- 收到 429 响应时,请遵循
Retry-After标头
快速参考
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出服务器 | DISCORD_LIST_MY_GUILDS | (无) |
| 列出频道 | DISCORDBOT_LIST_GUILD_CHANNELS | guild_id |
| 发送消息 | DISCORDBOT_CREATE_MESSAGE | channel_id, content |
| 编辑消息 | DISCORDBOT_UPDATE_MESSAGE | channel_id, message_id |
| 获取消息 | DISCORDBOT_LIST_MESSAGES | channel_id, limit |
| 创建私信 | DISCORDBOT_CREATE_DM | recipient_id |
| 创建身份组 | DISCORDBOT_CREATE_GUILD_ROLE | guild_id, name |
| 分配身份组 | DISCORDBOT_ADD_GUILD_MEMBER_ROLE | guild_id, user_id, role_id |
| 删除身份组 | DISCORDBOT_DELETE_GUILD_ROLE | guild_id, role_id |
| 获取成员 | DISCORDBOT_GET_GUILD_MEMBER | guild_id, user_id |
| 更新成员 | DISCORDBOT_UPDATE_GUILD_MEMBER | guild_id, user_id |
| 获取服务器 | DISCORDBOT_GET_GUILD | guild_id |
| 创建 Webhook | DISCORDBOT_CREATE_WEBHOOK | channel_id, name |
| 执行 Webhook | DISCORDBOT_EXECUTE_WEBHOOK | webhook_id, webhook_token |
| 列出 Webhook | DISCORDBOT_GET_GUILD_WEBHOOKS | guild_id |
| 获取回应 | DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI | channel_id, message_id, emoji_name |
| 清除回应 | DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS | channel_id, message_id |
| 测试身份验证 | DISCORDBOT_TEST_AUTH | (无) |
| 获取频道 | DISCORDBOT_GET_CHANNEL | channel_id |
由 Composio 提供支持
评论
支持 Markdown