mcpField
D
discord-automation

discord-automation

github.com/davepoon生产力3.7k122 次安装今天更新
代码仓库

关于 discord-automation

discord-automation 是通过 Rube MCP 和 Composio Discord 工具包自动化 Discord 操作的技能,面向服务器和消息管理场景。它覆盖消息、角色、Webhook 和反应管理。

主要功能

  1. 01向频道和私信发送消息
  2. 02编辑已发送消息
  3. 03创建、分配和删除角色
  4. 04创建及执行 Webhook
  5. 05查看或移除消息反应

适用场景

  1. 01向 Discord 频道发布更新
  2. 02向用户发送私信
  3. 03管理服务器成员角色
  4. 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 密钥,只需添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 能够响应,以验证 Rube MCP 是否可用
  2. 使用工具包 discordbot(机器人操作)或 discord(用户操作)调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请访问返回的授权链接以完成 Discord 授权
  4. 确认连接状态显示为 ACTIVE 后,再运行任何工作流

核心工作流

1. 发送消息

适用场景:用户想要向频道或私信发送消息

工具调用顺序:

  1. DISCORD_LIST_MY_GUILDS - 列出机器人所属的服务器 [前置条件]
  2. DISCORDBOT_LIST_GUILD_CHANNELS - 列出服务器中的频道 [前置条件]
  3. DISCORDBOT_CREATE_MESSAGE - 发送消息 [必需]
  4. DISCORDBOT_UPDATE_MESSAGE - 编辑已发送的消息 [可选]

关键参数:

  • channel_id:频道 snowflake ID
  • content:消息文本(最多 2000 个字符)
  • embeds:用于富内容的嵌入对象数组
  • guild_id:列出频道时使用的服务器 ID

注意事项:

  • 机器人必须拥有频道中的 SEND_MESSAGES 权限
  • 高频发送可能触发每个路由的速率限制;请遵守 Retry-After 标头
  • 只能编辑同一机器人发送的消息
2. 发送私信

适用场景:用户想要向 Discord 用户发送私信

工具调用顺序:

  1. DISCORDBOT_CREATE_DM - 创建或获取私信频道 [必需]
  2. DISCORDBOT_CREATE_MESSAGE - 向私信频道发送消息 [必需]

关键参数:

  • recipient_id:用于私信的用户 snowflake ID
  • channel_id:来自 CREATE_DM 的私信频道 ID

注意事项:

  • 无法向关闭私信或已屏蔽机器人的用户发送私信
  • 如果私信频道已存在,CREATE_DM 会返回现有频道
3. 管理角色

适用场景:用户想要创建、分配或移除角色

工具调用顺序:

  1. DISCORDBOT_CREATE_GUILD_ROLE - 创建新角色 [可选]
  2. DISCORDBOT_ADD_GUILD_MEMBER_ROLE - 为成员分配角色 [可选]
  3. DISCORDBOT_DELETE_GUILD_ROLE - 删除角色 [可选]
  4. DISCORDBOT_GET_GUILD_MEMBER - 获取成员详情 [可选]
  5. 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 进行外部集成

工具调用顺序:

  1. DISCORDBOT_GET_GUILD_WEBHOOKS / DISCORDBOT_LIST_CHANNEL_WEBHOOKS - 列出 Webhook [可选]
  2. DISCORDBOT_CREATE_WEBHOOK - 创建新的 Webhook [可选]
  3. DISCORDBOT_EXECUTE_WEBHOOK - 通过 Webhook 发送消息 [可选]
  4. DISCORDBOT_UPDATE_WEBHOOK - 更新 Webhook 设置 [可选]

关键参数:

  • webhook_id:Webhook ID
  • webhook_token:Webhook 密钥令牌
  • channel_id:创建 Webhook 所用的频道
  • name:Webhook 名称
  • content/embeds:执行时使用的消息内容

注意事项:

  • Webhook 令牌属于机密信息;请妥善处理
  • Webhook 可以为每条消息设置自定义用户名和头像
  • 创建 Webhook 需要 MANAGE_WEBHOOKS 权限
5. 管理回应

适用场景:用户想查看或管理消息回应

工具调用顺序:

  1. DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJI - 列出对消息作出回应的用户[可选]
  2. DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS - 移除所有回应[可选]
  3. DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONS_BY_EMOJI - 移除特定表情符号的回应[可选]
  4. DISCORDBOT_DELETE_USER_MESSAGE_REACTION - 移除特定用户的回应[可选]

关键参数:

  • channel_id:频道 ID
  • message_id:消息雪花 ID
  • emoji_name:经过 URL 编码的表情符号,或自定义表情符号的 name:id
  • user_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_CHANNELSguild_id
发送消息DISCORDBOT_CREATE_MESSAGEchannel_id, content
编辑消息DISCORDBOT_UPDATE_MESSAGEchannel_id, message_id
获取消息DISCORDBOT_LIST_MESSAGESchannel_id, limit
创建私信DISCORDBOT_CREATE_DMrecipient_id
创建身份组DISCORDBOT_CREATE_GUILD_ROLEguild_id, name
分配身份组DISCORDBOT_ADD_GUILD_MEMBER_ROLEguild_id, user_id, role_id
删除身份组DISCORDBOT_DELETE_GUILD_ROLEguild_id, role_id
获取成员DISCORDBOT_GET_GUILD_MEMBERguild_id, user_id
更新成员DISCORDBOT_UPDATE_GUILD_MEMBERguild_id, user_id
获取服务器DISCORDBOT_GET_GUILDguild_id
创建 WebhookDISCORDBOT_CREATE_WEBHOOKchannel_id, name
执行 WebhookDISCORDBOT_EXECUTE_WEBHOOKwebhook_id, webhook_token
列出 WebhookDISCORDBOT_GET_GUILD_WEBHOOKSguild_id
获取回应DISCORDBOT_LIST_MESSAGE_REACTIONS_BY_EMOJIchannel_id, message_id, emoji_name
清除回应DISCORDBOT_DELETE_ALL_MESSAGE_REACTIONSchannel_id, message_id
测试身份验证DISCORDBOT_TEST_AUTH(无)
获取频道DISCORDBOT_GET_CHANNELchannel_id

由 Composio 提供支持

评论

支持 Markdown