这是一个 MCP(模型上下文协议)服务器,在 Claude Code 完成任务时向 Discord 发送通知。使用 TypeScript 和 Cloudflare Agents SDK 构建,并可在 Cloudflare Workers 上部署。
</div>send_discord_message 工具用于发送通知此服务器使用 Cloudflare 的 Agents SDK 实现 MCP 规范:
pnpm install
从示例创建 .dev.vars 文件:
cp .dev.vars.example .dev.vars
然后编辑 .dev.vars 文件,添加你的 webhook URL。此文件用于本地开发和部署。
对于生产部署,设置 Cloudflare 密钥:
npx wrangler secret put WEBHOOK_URL
如果需要,更新 wrangler.toml 中的工作器名称
部署到 Cloudflare Workers:
# 首先设置密钥
npx wrangler secret put WEBHOOK_URL
# 然后部署
pnpm run deploy
替代方案:持续部署
你也可以直接从 Cloudflare 控制台设置持续部署。 了解更多关于 Git 与 Cloudflare 的集成
使用 CLI 通过 SSE 传输将 MCP 服务器添加到 Claude Code:
# 生产部署(SSE)
claude mcp add discord-notify https://your-worker-name.workers.dev/sse -t sse
# 本地开发
claude mcp add discord-notify http://localhost:8787/sse -t sse
注意:此服务器支持 SSE(服务器发送事件)和可流式传输的 HTTP 传输。虽然 SSE 工作良好,但可流式传输的 HTTP 提供更好的可靠性,并且是较新的标准。
你可以验证配置:
claude mcp list
配置完成后,Claude Code 可以在你需要时向你的 Discord 发送通知。
send_discord_message:向 Discord 发送通知消息
content(必需):要发送的消息内容tts(可选):作为文本转语音消息发送embeds(可选):用于丰富格式化的嵌入对象数组allowed_mentions(可选):控制哪些提及被解析示例用法:
// 简单消息
await send_discord_message({ content: "任务已完成!" })
// 丰富嵌入消息
await send_discord_message({
content: "状态更新",
embeds: [{
title: "构建结果",
description: "所有测试已通过",
color: 5025616, // 绿色
fields: [
{ name: "测试", value: "52/52", inline: true },
{ name: "持续时间", value: "2分34秒", inline: true }
]
}]
})
Claude Code 在以下情况下发送通知:
# 你说:“部署到生产环境并在完成后通知我”
# 结果:🤖 Claude Code 通知
# 部署成功完成!应用程序现已上线。
# 你说:“运行所有测试并告知结果”
# 结果:🤖 Claude Code 通知
# 所有测试已通过!52/52 测试成功。
# 你说:“处理这些数据并在出现任何错误时通知我”
# 结果:🤖 Claude Code 通知
# 错误:无法处理第 451 行 - 无效日期格式
为了鼓励 Claude Code 有效使用 Discord 通知,请将以下内容添加到你的 CLAUDE.md:
# Discord 通知
使用 mcp__discord-notify__send_discord_message 工具向 Discord 发送通知。
- 当以下情况发生时,始终发送 Discord 通知:
- 任务完全完成
- 需要用户输入才能继续
- 发生需要用户关注的错误
- 用户明确要求通知(例如,“通知我”,“发一条消息给我”,“让我知道”)
- 在通知中包含相关细节:
- 对于构建/测试:成功/失败状态和计数
- 对于错误:具体的错误消息和文件位置
- 使用简洁、信息性的消息,如:
- "✅ 构建成功完成(2分34秒)"
- "❌ 测试失败:auth.test.ts 中有 3/52 失败"
- "⚠️ 需要权限修改 /etc/hosts"
本地运行:
# 启动本地开发服务器
pnpm dev
对于本地开发,Wrangler 将自动从你的 .dev.vars 文件加载环境变量。
部署前运行所有检查:
pnpm build
此命令执行:
pnpm format - 使用 Biome 格式化代码pnpm lint:fix - 修复代码风格问题pnpm cf-typegen - 生成 Cloudflare 类型pnpm type-check - 检查 TypeScript 类型测试服务器:
# 测试 SSE 连接
curl http://localhost:8787/sse
# 测试健康端点
curl http://localhost:8888/
你可以直接测试 SSE 端点:
curl -N http://localhost:8787/sse
这应该返回一个事件流,开始于一个 endpoint 事件。
连接立即关闭:检查你的工作器是否正在指定的 URL 上运行并可访问。
未收到 endpoint 事件:确保正确发送了 SSE 头,并且流格式正确。
Discord 通知未发送:验证你的 WEBHOOK_URL 是否在工作器环境中正确设置。
此项目遵循以下指南构建:
MIT