主题
CodeBuddy IDE 中配置"企业微信 MCP"
CodeBuddy IDE 任务完成、出现错误、需要人工确认或执行结束时,通过企业微信机器人发送知给用户,避免长时间等待。
先明确结论
CodeBuddy IDE 当前原生支持的是 MCP 调用。配置企业微信 MCP 后,你可以在对话中让 CodeBuddy 主动推送消息,但**“任意任务完成后自动发送”目前没有官方保证**。
比较可靠的实现是:
- 手动/半自动通知:配置企业微信 MCP,任务结束后明确要求 CodeBuddy 调用。
- 自动通知:通过
Stop钩子调用本地脚本,再由脚本请求企业微信 Webhook。
下面按你的场景配置。
方案一:企业微信 MCP(官方支持)
1. 获取群机器人 Webhook
在企业微信中:
- 打开目标群聊
- 进入群设置
- 选择 群机器人 → 添加机器人
- 创建后复制 Webhook,格式类似:
text
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx2. 安装 MCP 服务
使用 uvx 安装:
bash
pip install uv wecom-bot-mcp-server或者测试:
bash
uvx wecom-bot-mcp-server --help3. 配置 CodeBuddy MCP
打开:
text
CodeBuddy IDE
→ 设置
→ MCP
→ 手动配置编辑 mcp.json:
json
{
"mcpServers": {
"wecom": {
"command": "uvx",
"args": [
"wecom-bot-mcp-server"
],
"env": {
"WECOM_WEBHOOK_URL": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=替换为你的Key"
}
}
}
}保存后确认状态:
- 绿色:连接成功
- 红色:配置异常
CodeBuddy 官方文档提供了同样的配置方式 https://www.codebuddy.cn/docs/ide/User-guide/MCP
4. 在任务结束时发送通知
在 CodeBuddy 对话中直接说:
text
任务完成后,通过企业微信机器人向项目群发送通知:
“CodeBuddy 已完成任务:XXX,状态:成功。”也可以写入项目规则文件 .codebuddy/rules/wecom-notify.md:
markdown
任务完成、出现错误、需要人工确认或执行结束时,
必须通过企业微信机器人发送简明通知,内容包含:
1. 任务名称
2. 执行结果
3. 项目目录
4. 需要关注的问题以后 CodeBuddy 处理任务时,会按照规则主动调用企业微信 MCP。
方案二:任务完成自动通知(推荐)
企业微信 MCP 本身不能监听 CodeBuddy 任务事件,需要结合 Stop 钩子。
1. 创建推送脚本
macOS/Linux
bash
mkdir -p ~/.codebuddy/scripts
nano ~/.codebuddy/scripts/wecom_notify.sh写入:
bash
#!/usr/bin/env bash
WEBHOOK_URL="${WECOM_WEBHOOK_URL}"
EVENT_JSON=$(cat)
if [[ -z "${WEBHOOK_URL}" ]]; then
exit 0
fi
CONTENT="CodeBuddy 任务已完成
项目目录:${CODEBUDDY_PROJECT_DIR:-未提供}
事件时间:$(date '+%Y-%m-%d %H:%M:%S')"
PAYLOAD=$(printf '{
"msgtype": "text",
"text": {
"content": "%s"
}
}' "${CONTENT}")
curl -sS -m 10 \
-H "Content-Type: application/json" \
-d "${PAYLOAD}" \
"${WEBHOOK_URL}" \
>/dev/null赋予执行权限:
bash
chmod +x ~/.codebuddy/scripts/wecom_notify.sh测试:
bash
WECOM_WEBHOOK_URL="你的Webhook地址" \
echo '{}' | ~/.codebuddy/scripts/wecom_notify.shWindows
创建:
text
%APPDATA%\CodeBuddy\scripts\wecom_notify.bat内容:
bat
@echo off
setlocal enabledelayedexpansion
if "%WECOM_WEBHOOK_URL%"=="" exit /b 0
set "CONTENT=CodeBuddy 任务已完成%%0D%%0A项目目录:%CODEBUDDY_PROJECT_DIR%%%0D%%0A事件时间:%date% %time%"
curl.exe -sS -m 10 ^
-H "Content-Type: application/json" ^
-d "{\"msgtype\":\"text\",\"text\":{\"content\":\"%CONTENT%\"}}" ^
"%WECOM_WEBHOOK_URL%"2. 配置 Stop 钩子
编辑:
text
~/.codebuddy/settings.json加入:
json
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "~/.codebuddy/scripts/wecom_notify.sh"
}
]
}
]
},
"env": {
"WECOM_WEBHOOK_URL": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=替换为你的Key"
}
}Windows 示例:
json
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "\"%APPDATA%\\CodeBuddy\\scripts\\wecom_notify.bat\""
}
]
}
]
},
"env": {
"WECOM_WEBHOOK_URL": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=替换为你的Key"
}
}Stop 事件会在 CodeBuddy 主 Agent 完成响应时触发,用户手动中断时不会触发。
两种方案如何选择
| 需求 | 推荐方案 |
|---|---|
| 指定通知内容、@成员、发送摘要 | 企业微信 MCP |
| 偶尔通知 | 对话中直接要求调用 MCP |
| 每次任务结束都通知 | Stop 钩子 |
| 包含完整任务摘要 | MCP+规则文件 |
| 低耦合、稳定推送 | 钩子直接调用 Webhook |
常见问题
MCP 显示红色
依次检查:
bash
uvx wecom-bot-mcp-serverbash
curl "你的Webhook地址" \
-H "Content-Type: application/json" \
-d '{"msgtype":"text","text":{"content":"连接测试"}}'钩子没有触发
- 确认 CodeBuddy IDE 已重启
- 检查脚本是否具有可执行权限
- 手动执行脚本
- 查看钩子配置是否通过安全审查
- 确认任务属于正常结束,不是手动中断
自动通知没有任务摘要
这是当前机制的主要限制:Stop 钩子通过脚本发送消息时,企业微信侧只能获得固定内容或钩子输入中的信息,不能稳定取得 CodeBuddy 的完整自然语言摘要。若需要“任务结果+代码差异+测试结果”,建议采用:
text
CodeBuddy 完成任务
→ 生成结果摘要文件
→ Stop 钩子读取文件
→ 推送到企业微信

