用途
该技能用于通过 Rube MCP 调用 Composio 的 Discord/Discordbot 工具包,自动化执行 Discord 上的常见操作,例如消息收发、私信、角色管理、Webhook 管理与表情回应管理。
前置条件
- 必须已连接 Rube MCP(RUBE_SEARCH_TOOLS 可用)。
- 需通过 RUBE_MANAGE_CONNECTIONS 建立有效的 Discord 连接,工具包为 discord 与 discordbot。
- 每次操作前应先调用 RUBE_SEARCH_TOOLS 获取当前工具 schema。
安装与配置
- 获取 Rube MCP:在客户端配置中添加 https://rube.app/mcp 作为 MCP 服务器。无需 API 密钥,添加端点即可使用。
- 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 可用。
- 调用 RUBE_MANAGE_CONNECTIONS,工具包选择 discordbot(机器人操作)或 discord(用户操作)。
- 若连接状态不是 ACTIVE,按返回的授权链接完成 Discord 授权。
- 确认连接状态为 ACTIVE 后再运行任何工作流。
主要能力与使用方式
1. 发送消息
适用场景:向频道或私信发送消息。
工具顺序:
- DISCORD_LIST_MY_GUILDS:列出机器人所属服务器(前置)。
- DISCORDBOT_LIST_GUILD_CHANNELS:列出服务器中的频道(前置)。
- DISCORDBOT_CREATE_MESSAGE:发送消息(必需)。
- DISCORDBOT_UPDATE_MESSAGE:编辑已发送消息(可选)。
关键参数:channel_id(频道 snowflake ID)、content(消息文本,最多 2000 字符)、embeds(富内容嵌入对象数组)、guild_id(用于列出频道的服务器 ID)。
注意事项:机器人需在频道拥有 SEND_MESSAGES 权限;高频发送可能触发按路由的速率限制,需遵守 Retry-After 响应头;只有同一机器人发送的消息才能被编辑。
2. 发送私信
适用场景:向 Discord 用户发送私信。
工具顺序:
- DISCORDBOT_CREATE_DM:创建或获取私信频道(必需)。
- DISCORDBOT_CREATE_MESSAGE:向私信频道发送消息(必需)。
关键参数:recipient_id(私信接收者的用户 snowflake ID)、channel_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 ID)、user_id(用户 snowflake ID)、role_id(角色 snowflake ID)、name(角色名称)、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_token(Webhook 密钥令牌)、channel_id(创建 Webhook 的频道)、name(Webhook 名称)、content/embeds(执行时的消息内容)。
注意事项: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、message_id(消息 snowflake ID)、emoji_name(URL 编码的表情或自定义表情的 name:id 格式)、user_id(用于移除指定用户的回应)。
注意事项:Unicode 表情必须进行 URL 编码(例如点赞为 '%F0%9F%91%8D');自定义表情使用 name:id 格式;DELETE_ALL 需要 MANAGE_MESSAGES 权限。
常见模式
Snowflake ID:Discord 对所有实体使用 snowflake ID(以字符串表示的 64 位整数),包括服务器、频道、用户、角色、消息、Webhook。
权限位字段:权限通过按位 OR 组合,例如 SEND_MESSAGES = 0x800、MANAGE_ROLES = 0x10000000、MANAGE_MESSAGES = 0x2000、ADMINISTRATOR = 0x8。
分页:多数列表端点支持 limit、before、after 参数;消息每次最多 100 条;表情回应每次最多 100 条,使用 after 进行分页。
已知注意事项
机器人令牌与用户令牌:discordbot 工具包使用机器人令牌;discord 使用用户 OAuth。自动化场景优先使用机器人操作。
速率限制:Discord 实施按路由的速率限制;遇到 429 响应时遵守 Retry-After 响应头。
快速参考
| 任务 | 工具 Slug | 关键参数 |
|---|---|---|
| 列出服务器 | 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 |
适用场景与限制
适用场景:需要在 Discord 中自动化消息发送、私信、角色管理、Webhook 集成与表情回应管理的任务,尤其是通过 MCP 客户端以机器人身份批量操作服务器与频道的场景。
限制:依赖 Rube MCP 与有效的 Discord 连接;受 Discord 权限体系与速率限制约束;部分操作(如编辑消息、删除角色)有额外限制;具体收费、价格与平台支持情况暂未提供。