这是一个MCP(模型上下文协议)服务器,当Claude Code完成任务时,它会向Discord发送通知。该服务器使用TypeScript和Cloudflare Agents SDK构建,可部署在Cloudflare Workers上。
本服务器可在Claude Code完成任务时向Discord发送通知。以下是使用该服务器的快速步骤:
send_discord_message工具用于发送通知。pnpm install
.dev.vars文件:cp .dev.vars.example .dev.vars
然后在.dev.vars中编辑你的Webhook URL。此文件用于本地开发和部署。
npx wrangler secret put WEBHOOK_URL
wrangler.toml中更新你的工作器名称。部署到Cloudflare Workers:
# 首先设置密钥
npx wrangler secret put WEBHOOK_URL
# 然后部署
pnpm run deploy
替代方案:持续部署 你也可以直接从Cloudflare控制台设置持续部署。了解更多关于Cloudflare的Git集成。
使用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秒)"
- "❌ 测试失败:3/52个测试在auth.test.ts中失败"
- "⚠️ 需要权限修改 /etc/hosts"
# 启动本地开发服务器
pnpm dev
对于本地开发,Wrangler将自动从你的.dev.vars文件加载环境变量。
pnpm build
此命令将执行以下操作:
pnpm format - 使用Biome格式化代码。pnpm lint:fix - 修复 linting 问题。pnpm cf-typegen - 生成Cloudflare类型。pnpm type-check - 检查TypeScript类型。# 测试SSE连接
curl http://localhost:8787/sse
# 测试健康端点
curl http://localhost:8787/
你可以直接测试SSE端点:
curl -N http://localhost:8787/sse
这应该返回一个以endpoint事件开头的事件流。
endpoint事件:确保SSE头正确发送,并且流格式正确。WEBHOOK_URL是否在工作器环境中正确设置。| 属性 | 详情 |
|---|---|
| 语言 | TypeScript(ES2021目标) |
| 运行时 | 支持Node.js兼容性的Cloudflare Workers |
| 协议 | MCP(模型上下文协议) |
| 传输方式 | SSE和可流式HTTP |
| 状态管理 | 持久对象(McpAgent所需) |
| 可观测性 | 启用监控 |
本项目根据以下指南构建:
本项目采用MIT许可证。