云不和谐
在Cloudflare Workers上运行的功能齐全的Discord MCP(模型上下文协议)服务器。为AI代理提供对Discord服务器的完全管理控制——59个工具,涵盖消息传递、审核、论坛、角色、文件、语音笔记等。
部署一次,从任何兼容MCP的客户端(Claude Code、Claude Desktop、Cursor等)连接。
特性
59工具 12个类别:
| 类别 | 工具 | 你能做什么 |
|---|---|---|
| 消息传递 | 8 | 发送、编辑、删除、批量删除、读取历史记录、发送嵌入、读取/发送DM |
| 节制 | 4 | 踢、禁令、取消禁令、超时会员 |
| 角色 | 7 | 创建、编辑、删除、分配、删除角色、列出成员角色 |
| 频道 | 6 | 创建、编辑、删除频道、设置慢模式、设置权限、列出所有 |
| 线程 | 3 | 创建、管理(存档/锁定)、删除线程 |
| 论坛 | 9 | 创建/编辑/列出帖子,管理标签,设置布局/排序/指南 |
| 反应 | 3 | 添加、删除、获取反应 |
| 图钉 | 3 | 固定、取消固定、列出固定邮件 |
| 文件 | 2 | 将文件发送到频道或DM(通过URL或base64) |
| 语音 | 1 | 通过ElevenLabs进行文本转语音笔记(可选) |
| 服务器 | 4 | 帮会信息、审核日志、列表服务器、成员列表 |
| 邀请 | 3 | 创建、列出、删除邀请 |
| 民意调查 | 1 | 创建本地Discord民意调查 |
另外:
/vibe斜线命令-AI驱动通道振动检查(需要Anthropic API键)- 直接文件上传端点——从您的计算机发送文件,无需base64编码
- 秘密路径身份验证——您的MCP端点只能通过您的秘密URL访问
- 自动重试的速率限制处理
先决条件
- A. Cloudflare帐户 (免费版作品)
- 18+
- 具有适当权限的Discord机器人
设置
1.创建Discord Bot
- 去 Discord开发者门户
- 点击 新应用,给它起个名字
- 去 机器人 选项卡:
- 点击 重置令牌 并保存令牌——稍后您将需要它 - 启用 消息内容意图 在特权网关权限下
- 去 一般信息 选项卡:
- 复制 应用标识符 (你需要这个 /vibe 命令) - 复制 公钥 (你需要这个 wrangler.toml)
- 首选 OAuth2>URL生成器:
- 选择范围: bot, applications.commands - 选择机器人权限: Administrator (或选择您需要的单个权限) - 复制生成的URL并在浏览器中打开,以邀请机器人到您的服务器
2.克隆和安装
git clone https://github.com/codependentai/cloud-discord.git
cd cloud-discord
npm install3.配置
编辑 wrangler.toml:
[vars]
# Generate a random secret: openssl rand -base64 24
MCP_SECRET_PATH = "your-random-secret-here"
# From Discord Developer Portal > General Information > Public Key
DISCORD_PUBLIC_KEY = "your-public-key-here"4.添加秘密
这些数据安全地存储在Cloudflare中,它们永远不会出现在您的代码中:
# Required — your Discord bot token
npx wrangler secret put DISCORD_BOT_TOKEN
# Paste your bot token when prompted
# Optional — needed for the /vibe slash command
npx wrangler secret put ANTHROPIC_API_KEY
# Optional — needed for voice notes (discord_send_voice_note)
npx wrangler secret put ELEVENLABS_API_KEY5.部署
npx wrangler deploy您的MCP服务器现在位于:
https://cloud-discord..workers.dev/mcp/6.连接到您的MCP客户端
将服务器添加到MCP客户端的配置中。例如,在Claude Code的 .mcp.json:
{
"mcpServers": {
"discord": {
"type": "url",
"url": "https://cloud-discord..workers.dev/mcp/"
}
}
}对于Claude Desktop,请将其添加到 claude_desktop_config.json 在...之下 mcpServers 格式相同。
可选:注册/vibe Slash命令
这 /vibe 该命令允许Discord服务器中的任何人在当前频道上运行AI驱动的氛围检查。它读取最后20条消息并总结正在发生的事情。
需要 ANTHROPIC_API_KEY 待设定。
DISCORD_APP_ID=your_app_id DISCORD_BOT_TOKEN=your_token npx tsx src/register-commands.ts然后在Discord开发者门户中,设置 交互端点URL 致:
https://cloud-discord..workers.dev/interactions可选:语音备忘
这 discord_send_voice_note 该工具使用以下命令生成语音 十一实验室 并将其作为音频文件发送到Discord。
- 注册地址: 十一实验室 并获取API密钥
- 添加密码:
npx wrangler secret put ELEVENLABS_API_KEY - 在中查找您的语音ID 语音实验室
- 使用该工具
voice_id和text参数
如果 ELEVENLABS_API_KEY 如果未设置,该工具在调用时将返回错误,但不会影响任何其他工具。
直接文件上传
要发送没有base64编码的本地文件(图像、音频、文档),请使用直接上传端点:
# Send to a channel
curl -F "channel_id=CHANNEL_ID" \
-F "file=@/path/to/file.mp3" \
-F "message=Optional message" \
https://cloud-discord..workers.dev/mcp//upload
# Send as DM
curl -F "user_id=USER_ID" \
-F "file=@/path/to/image.png" \
https://cloud-discord..workers.dev/mcp//upload当MCP工具的base64参数太大(例如音频文件)时,这很有用。
工具参考
消息传递
| 工具 | 说明 |
|---|---|
discord_read_messages | 读取频道消息历史记录(1-100条消息) |
discord_read_dm_messages | 与用户一起读取DM历史记录 |
discord_send_message | 发送消息,可选择作为回复 |
discord_send_dm | 向用户发送直接消息 |
discord_edit_message | 编辑机器人消息 |
discord_delete_message | 删除消息 |
discord_bulk_delete_messages | 一次删除2-100封邮件(必须小于14天) |
discord_send_embed | 发送包含标题、字段、图像和颜色的丰富嵌入 |
节制
| 工具 | 说明 |
|---|---|
discord_kick_member | 从服务器中踢出成员 |
discord_ban_member | 禁止成员,可以选择删除他们最近的消息 |
discord_unban_member | 取消阻止用户 |
discord_timeout_member | 会员超时(静音)长达28天 |
角色
| 工具 | 说明 |
|---|---|
discord_list_roles | 列出服务器中的所有角色 |
discord_create_role | 创建一个有名称、颜色、提升、可提及的角色 |
discord_edit_role | 编辑角色名称或颜色 |
discord_delete_role | 删除角色 |
discord_assign_role | 为成员分配角色 |
discord_remove_role | 从成员中删除角色 |
discord_get_member_roles | 获取成员的所有角色 |
频道
| 工具 | 说明 |
|---|---|
discord_list_channels | 按类别列出所有频道 |
discord_list_servers | 列出机器人所在的所有服务器 |
discord_create_channel | 创建文本、语音、类别或论坛频道 |
discord_edit_channel | 编辑名称、主题、NSFW、职位、类别 |
discord_delete_channel | 删除频道 |
discord_set_slowmode | 设置慢模式(0-21600秒) |
discord_set_channel_permissions | 为角色/用户设置权限覆盖 |
线程
| 工具 | 说明 |
|---|---|
discord_create_thread | 创建一个线程,可选地从消息中创建 |
discord_manage_thread | 存档、取消存档、锁定、解锁线程 |
discord_delete_thread | 删除线程 |
论坛
| 工具 | 说明 |
|---|---|
discord_create_forum_post | 创建带有可选标签的论坛帖子 |
discord_edit_forum_post | 编辑标题、存档、锁定、固定、更改标签 |
discord_list_forum_posts | 列出论坛中的活跃帖子 |
discord_list_archived_forum_posts | 列出已存档/已关闭的帖子 |
discord_get_forum_tags | 获取可用标签 |
discord_create_forum_tag | 添加标签(每个论坛最多20个) |
discord_edit_forum_tag | 编辑标签的名称、表情符号、缓和状态 |
discord_delete_forum_tag | 删除标签 |
discord_set_forum_default_reaction | 为新帖子设置默认反应表情符号 |
discord_set_forum_settings | 配置布局、排序顺序、指南、要求标签 |
反应和别针
| 工具 | 说明 |
|---|---|
discord_add_reaction | 添加表情符号反应 |
discord_remove_reaction | 消除反应(自己或他人) |
discord_get_message_reactions | 获取消息的所有反应 |
discord_pin_message | 固定消息 |
discord_unpin_message | 不愉快的消息 |
discord_get_pinned_messages | 列出所有固定邮件 |
文件和语音
| 工具 | 说明 |
|---|---|
discord_send_file | 通过URL或base64发送文件 |
discord_send_dm_file | 通过URL或base64以DM格式发送文件 |
discord_send_voice_note | 生成TTS音频并发送(需要ElevenLabs) |
服务器和成员
| 工具 | 说明 |
|---|---|
discord_get_guild_info | 服务器详细信息:名称、成员、增强、验证 |
discord_get_audit_log | 查看审核日志,按操作类型或用户筛选 |
discord_get_guild_members | 列出服务器成员 |
discord_get_user_info | 获取用户详细信息 |
discord_change_nickname | 更改机器人的昵称 |
邀请与投票
| 工具 | 说明 |
|---|---|
discord_create_invite | 创建具有过期和使用限制的频道邀请 |
discord_list_invites | 列出所有服务器邀请 |
discord_delete_invite | 撤销邀请 |
discord_create_poll | 创建本地Discord投票(2-10个选项) |
图像
| 工具 | 说明 |
|---|---|
discord_fetch_image | 以base64格式获取邮件附件 |
discord_fetch_dm_image | 以base64格式获取DM附件 |
建筑
这是一个Cloudflare Worker(约330 KB),它:
- 在以下位置接收MCP JSON-RPC请求
/mcp/ - 将工具调用转换为Discord REST API请求
- 将格式化的结果返回给MCP客户端
没有数据库,没有状态,没有容器。Auth由URL中的秘密路径处理-任何拥有URL的人都可以使用所有工具,因此将其视为API密钥。
这 /vibe slash命令处理以下位置的Discord交互 /interactions 使用签名验证。
发展
# Run locally
npx wrangler dev
# Type check
npx tsc --noEmit
# Deploy
npx wrangler deploy许可证
麻省理工学院——见 许可证.
由...建造 相互依存的人工智能.
支持
由...建造 相互依存的人工智能.
