slug: discord name: "discord" version: 1.0.3 displayName: "Discord 全能控制" summary: "通过discord工具控制机器人,管理消息、表情、投票、线程、审核等Discord全功能。通过 discord 工具控制 Discord 机器人,覆盖消息收发与编辑、表情回应与统计、 贴纸发" summary_zh: "通过discord工具控制机器人,管理消息、表情、投票、线程、审核等Discord全功能。通过 discord 工具控制 Discord 机器人,覆盖消息收发与编辑、表情回应与统计、 贴纸发" license: "MIT" description: |- 通过 discord 工具控制 Discord 机器人,覆盖消息收发与编辑、表情回应与统计、 贴纸发送与上传、自定义表情包上传、投票创建、线程管理、消息置顶、全文搜索、 成员与角色查询、频道信息、语音状态、定时事件、审核操作(禁言/踢出/封禁)等全套能力. 支持通过 discord.actions.* 对各操作组进行细粒度门控,角色与审核默认关闭. 适用于社区运营自动化、发布通知、团队协作跟进和内容审核场景. tags:
- Communication
- Discord
- Bot
- 社交
- 通信
- action
- discord
- messageid
- channelid
- 状态码 tools:
- read
- exec
- write homepage: "" category: "Communication" homepage: "" pricing_tier: "L2-标准级"
Discord 全能控制
输入参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | Discord 全能控制处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
能力清单
消息管理
sendMessage:向频道channel:<id>或私信user:<id>发送消息,支持content、mediaUrl(本地file:///或远程https://)、replyTo回复指定消息.editMessage:按channelId+messageId编辑已发消息内容.deleteMessage:按channelId+messageId删除消息.readMessages:按channelId拉取最近消息,支持limit控制条数.
表情回应
react:对指定消息添加 emoji(如✅、⚠️).reactions:列出某条消息的回应及对应用户列表,支持limit.emojiList:列出服务器可用自定义表情.emojiUpload:上传自定义表情,需guildId、name、mediaUrl,可选roleIds限定可见角色。PNG/JPG/GIF,≤256KB. 输出: 返回表情回应的解析响应,包含完成状态码、响应数据和完成日志。
贴纸任务
sticker:发送贴纸,to指定目标,stickerIds最多 3 个,可附带content.stickerUpload:上传贴纸,需guildId、name、description、tags、mediaUrl。PNG/APNG/Lottie JSON,≤512KB.
投票创建
poll:在频道发起投票,需question+ 2~10 个answers,支持allowMultiselect、durationHours(默认 24,最大 768 即 32 天).
线程管理
threadCreate:基于消息或频道创建线程,需channelId、name,可选messageId.threadList:列出服务器下所有活跃线程.threadReply:在线程内回复消息.
置顶与搜索
pinMessage/listPins:置顶或列出频道置顶消息.searchMessages:按guildId全文搜索,支持content、channelIds、limit.
成员与角色
memberInfo:查询成员资料(guildId+userId).roleInfo/roleAdd/roleRemove:查询或变更角色(默认关闭,需显式开启discord.actions.roles).
频道、语音、事件
channelInfo/channelList:频道详情与列表.voiceStatus:查询成员当前语音状态.eventList:列出服务器定时事件.permissions:检查机器人在指定频道的权限.
审核(默认关闭)
timeout:临时禁言成员(durationMinutes).kick/ban:踢出或封禁成员。需开启discord.actions.moderation.
操作步骤
- 确认权限与门控:通过
action: "permissions"检查机器人在目标频道的权限;确认所需操作组未被discord.actions.*关闭(角色、审核默认关闭). - 定位目标:明确目标格式——
sendMessage/sticker/poll用to: "channel:<id>"或to: "user:<id>";react/readMessages/editMessage/deleteMessage用channelId直传. - 准备内容:消息文本遵循 Discord 写作风格(短句、避免 markdown 表格、链接用
<>抑制预览);媒体走mediaUrl,file:///本地或https://远程;表情包/贴纸确认大小与格式限制. - 执行 action:以 JSON 调用对应 action,记录返回的
messageId、threadId供后续编辑/回复/置顶复用. - 跟进与归档:按需
pinMessage、threadReply、searchMessages回溯;审核类操作在日志频道留痕.
案例展示
案例 1:发布通知 + 置顶 + 反应
目标:向 #releases(channel:9876543210)发布 v2.4.0 并置顶.
{
"action": "sendMessage",
"to": "channel:9876543210",
"content": "**v2.4.0 已发布**\n- 新增投票统计导出\n- 修复线程回复丢失问题\n完整说明见附件",
"mediaUrl": "file:///tmp/changelog-v2.4.0.md"
}
返回 messageId=1122334455667788 后:
{ "action": "react", "channelId": "9876543210", "messageId": "1122334455667788", "emoji": "✅" }
{ "action": "pinMessage", "channelId": "9876543210", "messageId": "1122334455667788" }
结果:频道出现带附件的发布消息,带 ✅ 反应并置顶.
案例 2:多选投票与结果统计
目标:48 小时多选投票"下周团建活动".
{
"action": "poll",
"to": "channel:555000555000",
"question": "下周团建活动(可多选)",
"answers": ["密室逃脱", "户外烧烤", "电影之夜", "桌游下午茶"],
"allowMultiselect": true,
"durationHours": 48,
"content": "请大家投票,周四截止"
}
到期后通过 reactions 或投票对象统计各选项票数,在原频道回填"烧烤 12 票 / 密室 9 票"结果.
案例 3:审核处置 + 线程留痕
目标:成员 userId=111 在 guildId=999 发布广告,禁言 30 分钟并记录.
{ "action": "deleteMessage", "channelId": "123", "messageId": "456" }
{ "action": "timeout", "guildId": "999", "userId": "111", "durationMinutes": 30 }
{ "action": "threadCreate", "channelId": "123", "name": "mod-log-111-广告", "messageId": "456" }
在审核日志频道形成可追溯的处置线程.
常见疑问
Q1:为什么 sendMessage 报错说找不到频道,而 readMessages 能用?
sendMessage 接收的是 to: "channel:<id>" 格式(带 channel: 前缀),readMessages 接收的是裸 channelId。两者格式不可混用,这是最常见的参数错误.
Q2:如何禁用部分操作防止误用?
在 配置中使用 discord.actions.* 门控,例如设 discord.actions.moderation=false、discord.actions.roles=false(两者默认即关闭),也可关闭 emojiUploads、stickerUploads、polls 等.
Q3:贴纸和表情包上传有什么硬限制?
表情包:PNG/JPG/GIF,≤256KB,服务器表情数受 Boost 等级限制。贴纸:PNG/APNG/Lottie JSON,≤512KB,普通服务器 5 个动态贴纸位,Boost 后扩展。stickerUpload 必须同时提供 name、description、tags.
Q4:投票最长时间是多少?到期后怎么取结果?
durationHours 最大 768(32 天)。到期后投票自动关闭,可通过 reactions 拉取各选项的投票用户列表自行统计,或在投票消息上读取内置投票结果.
Q5:线程和频道回复有什么区别?
threadCreate 在频道内创建独立线程(可基于某条消息),threadReply 在已存在线程内发消息。普通 sendMessage 只发到主频道,不会自动进入线程。threadList 可按 guildId 列出服务器所有活跃线程以获取 threadId.
Q6:审核操作默认为什么是关闭的?
timeout/kick/ban 具有破坏性,默认关闭以防误操作。需要时在配置显式开启 discord.actions.moderation,并确保机器人持有 MODERATE_MEMBERS(禁言)、KICK_MEMBERS、BAN_MEMBERS 权限及高于目标成员的角色层级.
限制条件
- 所有操作依赖为 配置的 bot token,未配置 token 时任何 action 都无法执行.
sendMessage的to与其他 action 的channelId格式不同,混用会直接报错.- 角色变更(
roleAdd/roleRemove)与审核(timeout/kick/ban)默认关闭,需显式开启且机器人角色须高于目标. - 表情包 ≤256KB、贴纸 ≤512KB,超出需先压缩;动画表情/贴纸数量受服务器 Boost 等级约束.
- 投票
durationHours上限 768 小时(32 天),单次最多 10 个选项. - 消息搜索(
searchMessages)依赖服务器开启该权限,部分大型服务器可能受限或延迟较高. - Discord 全局与按频道速率限制由平台强制,高频发送会被 429 限流,需自行节流.
- markdown 表格在 Discord 渲染为原始
|文本,通知类消息应改用列表或粗体.
运行环境
运行环境
- Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Windows / macOS / Linux
依赖项
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
API Key 配置
需要配置对应API Key,详见上文环境配置章节
可用性分类
- 分类: MD+EXEC()
API Key配置方式:
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
创新特色
效率提升量化分析
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 消息批量发送 | 30分钟/次 | 5分钟/次 | 25分钟/次 | 100% |
| 表情统计 | 1小时/次 | 10分钟/次 | 50分钟/次 | 100% |
| 贴纸上传 | 30分钟/次 | 5分钟/次 | 25分钟/次 | 100% |
| 投票创建 | 15分钟/次 | 3分钟/次 | 12分钟/次 | 100% |
| 线程管理 | 1小时/次 | 10分钟/次 | 50分钟/次 | 100% |
差异化对比
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 功能全面性 | 高 | 低 | 中 | 高 |
| 操作便捷性 | 高 | 低 | 中 | 高 |
| 适应场景 | 广泛 | 有限 | 有限 | 有限 |
| 成本效益 | 高 | 低 | 中 | 高 |
| 扩展性 | 高 | 低 | 中 | 高 |
核心痛点解决
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 消息管理效率低 | 手动管理大量消息耗时且易出错 | 社区运营、团队协作 | 自动化消息管理 | 时间节约25分钟/次 |
| 表情统计困难 | 手动统计表情使用情况耗时且不准确 | 社区互动、表情包管理 | 自动化表情统计 | 准确率提升100% |
| 贴纸管理复杂 | 手动上传和管理贴纸耗时且难以维护 | 社区文化、贴纸推广 | 自动化贴纸管理 | 时间节约25分钟/次 |
安全须知事项
- 确保bot token安全,避免泄露。
- 限制操作权限,仅授权必要的操作。
- 定期更新bot token,防止被滥用。
- 对敏感操作进行审核,防止误操作。
- 监控操作日志,及时发现异常行为。
安全风险防范
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
异常修复
针对Discord 全能控制使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |
Discord 全能控制通用排查步骤
- 检查输入参数: 确认所有必填参数已提供且格式正确
- 查看日志输出: 定位具体错误行和异常类型
- 验证环境配置: 确认依赖库版本和运行环境满足要求
- 逐步调试: 缩小问题范围,隔离故障模块
典型场景
- 自动化处理: 结合定时任务或CI/CD管道,实现批量自动化处理
- 数据同步: 通过API实现跨平台数据同步和状态更新
- 智能分析: 结合大模型实现内容理解和智能决策
- 数据提取: 从非结构化文件中提取关键信息并结构化输出
- 运维自动化: 自动执行系统命令并收集结果
- 数据查询: 从大量数据中精准定位目标内容
- 数据处理: 对结构化数据进行清洗、转换和分析