wecom-deep-op - 企业微信全能操作 Skill
基于微信官方插件 @wecom/wecom-openclaw-plugin v1.0.13+,一站式企业微信自动化解决方案
INLINECODE0 是对企业微信官方 MCP 服务的统一封装,你可以方便操作文档、日历、会议、待办、通讯录所有企业微信MCP能力,充分发挥 OpenClaw 与企业微信的协同能力。
重要:请务必先阅读前置条件!
📋 前置条件
✨ 核心优势
| 特性 | 说明 |
|---|
| 统一接口 | 不再需要记忆5个不同的MCP服务名,全部通过 wecom-deep-op 调用 |
| 前置检查 |
内置
wecom-preflight 自动检查,确保授权配置正确 |
|
完整功能 | 文档、日程、会议、待办、通讯录全覆盖 |
|
生产就绪 | 基于官方插件(v1.0.13)构建,稳定可靠 |
|
安全设计 | 不存储任何token,所有配置由用户自己管理 |
🚀 快速开始
1. 前置条件
- - ✅ OpenClaw 已安装(v0.5.0+)
- ✅ Node.js 环境(v18+)
- ✅ 已安装
@wecom/wecom-openclaw-plugin(官方插件) - ✅ 企业微信管理员已创建 BOT 并配置 MCP 权限
2. 安装 Skill
CODEBLOCK0
3. 授权配置
重要: 本 Skill 不会也不应该包含任何企业微信的敏感凭证。你需要自己完成授权。
Step 1: 获取企业微信 BOT 的 MCP 权限
- 1. 登录 企业微信管理后台
- 进入「应用管理」→ 「自建应用」→ 选择你的 BOT 应用
- 在「权限管理」中开通以下 MCP 权限:
- ✅ 文档管理(读写)
- ✅ 日程管理(读写)
- ✅ 会议管理(创建/查询/取消)
- ✅ 待办事项(读写)
- ✅ 通讯录查看(受限范围)
- 4. 保存后,复制
uaKey 参数(在 MCP 设置页面可见)
Step 2: 配置 OpenClaw
编辑 OpenClaw 配置文件(或通过 mcporter):
CODEBLOCK1
注意:
- -
YOUR_UA_KEY 替换为企业微信 BOT 真实的 INLINECODE7 - 该配置仅为示例,实际使用时会根据技能部署情况调整端点
- 所有 UA_KEY 必须通过环境变量或配置文件管理,禁止硬编码
Step 3: 测试连接
CODEBLOCK2
期望返回:
{
"errcode": 0,
"errmsg": "ok",
"data": {
"service": "wecom-deep-op",
"version": "1.0.0",
"status": "healthy"
}
}
📚 使用指南
统一调用模式
所有操作都通过 wecom_mcp tool 调用:
CODEBLOCK4
📄 文档管理 (doc_*)
创建文档
wecom_mcp call wecom-deep-op.doc_create '{"doc_type": 3, "doc_name": "会议纪要"}'
返回: INLINECODE10
读取文档
CODEBLOCK6
编辑文档
wecom_mcp call wecom-deep-op.doc_edit '{"docid": "DOCID", "content": "# 新内容\n\nMarkdown格式", "content_type": 1}'
📅 日程管理 (schedule_*)
创建日程
CODEBLOCK8
查询日程
CODEBLOCK9
更新日程
CODEBLOCK10
取消日程
wecom_mcp call wecom-deep-op.schedule_cancel '{"schedule_id": "schedule_xxx"}'
📹 会议管理 (meeting_*)
预约会议
CODEBLOCK12
查询会议
CODEBLOCK13
取消会议
CODEBLOCK14
更新参会人
wecom_mcp call wecom-deep-op.meeting_update_attendees '{
"meeting_id": "meeting_xxx",
"add_attendees": ["wangwu"],
"remove_attendees": ["lisi"]
}'
✅ 待办管理 (todo_*)
创建待办
CODEBLOCK16
获取待办列表
CODEBLOCK17
获取待办详情
CODEBLOCK18
更新待办状态
CODEBLOCK19
删除待办
wecom_mcp call wecom-deep-op.todo_delete '{"todo_id": "todo_xxx"}'
👥 通讯录 (contact_*)
获取成员列表
wecom_mcp call wecom-deep-op.contact_get_userlist '{}'
返回:
CODEBLOCK22
⚠️ 限制:只返回当前用户可见范围内的成员(通常≤100人,建议≤10人使用)
搜索成员
wecom_mcp call wecom-deep-op.contact_search '{"keyword": "张三"}'
本地筛选模式下,Skill 会自动调用
get_userlist 并在结果中匹配姓名/别名。
🔧 错误处理
所有接口返回标准格式:
CODEBLOCK24
错误码说明:
- -
0: 成功 - INLINECODE17 : 失败,参考
errmsg 并结合原始企业微信错误码
重试策略:
- - 网络错误(超时、连接失败):自动重试 1 次
- 业务错误(权限不足、参数错误):停止并返回错误给用户
- 文档导出
task_done=false:需用户轮询(每3秒一次,最多10次)
🏗️ 架构说明
依赖关系
CODEBLOCK25
技术实现
- - Skill 类型: OpenClaw Skill (Plugin Extension)
- 运行环境: Node.js (v18+)
- 通信协议: MCP (Model Context Protocol)
- 底层 SDK:
@wecom/aibot-node-sdk (v1.0.3) - 构建工具: Rollup (输出 ESM + CommonJS)
🔐 安全与隐私
本 Skill 不会:
- - ❌ 存储任何企业微信 access_token 或凭证
- ❌ 将你的配置上传到任何云端
- ❌ 记录你调用的具体业务数据(日志除外)
- ❌ 包含任何租户特定的信息
你需要负责:
- - ✅ 安全保管
uaKey(等同于密码) - ✅ 在企业微信控制台定期审计 BOT 权限
- ✅ 使用环境变量或加密配置文件存储 INLINECODE22
- ✅ 不要将
mcporter.json 提交到公开仓库
建议配置方式
CODEBLOCK26
🛠️ 开发与发布
开发环境
CODEBLOCK27
构建
CODEBLOCK28
Lint & Format
CODEBLOCK29
📦 发布到 Clawhub
1. 准备发布清单
- - [ ] 完善
skill.yml(元数据) - [ ] 编写
README.md(详细使用说明) - [ ] 添加 INLINECODE26
- [ ] 确保
LICENSE 文件存在(MIT) - [ ] 编写示例脚本(
examples/ 目录) - [ ] 生成 TypeScript 类型定义(
npm run build) - [ ] 在
skill.yml 中声明依赖: INLINECODE31
2. 注册 Clawhub 账号
CODEBLOCK30
3. 发布
CODEBLOCK31
发布后,其他用户可通过以下方式安装:
clawhub install wecom-deep-op
# 或
openclaw skill add wecom-deep-op
📝 与其他技能的集成
与 wecom-preflight 协同
首次调用前,建议用户先运行:
CODEBLOCK33
该 Skill 会:
- 1. 检查
mcporter.json 配置是否存在 - 验证 wecom-deep-op 是否在白名单
- 如缺失,提供修复命令
与 wecom-get-todo-list 的差异
INLINECODE35 是底层 MCP 的直接包装,适合需要精细控制的场景。
wecom-get-todo-list 是业务导向的上层技能,提供更高级的筛选和展示。
你可以同时使用两者,根据场景选择:
- - 简单任务:用 INLINECODE37
- 复杂查询(过滤+分页):用 INLINECODE38
🐛 故障排除
| 问题 | 可能原因 | 解决方案 |
|---|
| INLINECODE39 | mcporter.json 未配置 | 检查配置路径,确保 wecom-deep-op 在 mcpServers 中 |
| INLINECODE42 |
access_token 失效 | 重新授权 BOT,确保 MCP 权限已开启 |
|
task_done=false 一直轮询 | 文档过大,导出超时 | 增加
wait_timeout 参数,或分卷导出 |
|
超过10人错误 | 通讯录可见范围太大 | 联系管理员缩小 BOT 的通讯录权限范围 |
| 调用超时 | 网络问题或响应慢 | 检查企业微信网络连通性,调整
yieldMs |
📄 许可证
MIT License - 详见 LICENSE 文件。
🙏 致谢
- - 基于 腾讯企业微信官方 OpenClaw 插件 (
@wecom/wecom-openclaw-plugin) 构建 - 感谢企业微信团队提供优秀的 MCP 接口
- 本 Skill 为社区封装,不属于官方产品
维护者: 白小圈 (市场调研专家 AI 助手)
版本: 1.0.0
最后更新: 2026-03-21
wecom-deep-op - 企业微信全能操作 Skill
基于微信官方插件 @wecom/wecom-openclaw-plugin v1.0.13+,一站式企业微信自动化解决方案
wecom-deep-op 是对企业微信官方 MCP 服务的统一封装,你可以方便操作文档、日历、会议、待办、通讯录所有企业微信MCP能力,充分发挥 OpenClaw 与企业微信的协同能力。
重要:请务必先阅读前置条件!
📋 前置条件
✨ 核心优势
| 特性 | 说明 |
|---|
| 统一接口 | 不再需要记忆5个不同的MCP服务名,全部通过 wecom-deep-op 调用 |
| 前置检查 |
内置 wecom-preflight 自动检查,确保授权配置正确 |
|
完整功能 | 文档、日程、会议、待办、通讯录全覆盖 |
|
生产就绪 | 基于官方插件(v1.0.13)构建,稳定可靠 |
|
安全设计 | 不存储任何token,所有配置由用户自己管理 |
🚀 快速开始
1. 前置条件
- - ✅ OpenClaw 已安装(v0.5.0+)
- ✅ Node.js 环境(v18+)
- ✅ 已安装 @wecom/wecom-openclaw-plugin(官方插件)
- ✅ 企业微信管理员已创建 BOT 并配置 MCP 权限
2. 安装 Skill
bash
方法1: 从Clawhub安装(推荐)
clawhub install wecom-deep-op
方法2: 本地安装(开发中)
cd /path/to/wecom-deep-op
npm install
npm run build
3. 授权配置
重要: 本 Skill 不会也不应该包含任何企业微信的敏感凭证。你需要自己完成授权。
Step 1: 获取企业微信 BOT 的 MCP 权限
- 1. 登录 企业微信管理后台
- 进入「应用管理」→ 「自建应用」→ 选择你的 BOT 应用
- 在「权限管理」中开通以下 MCP 权限:
- ✅ 文档管理(读写)
- ✅ 日程管理(读写)
- ✅ 会议管理(创建/查询/取消)
- ✅ 待办事项(读写)
- ✅ 通讯录查看(受限范围)
- 4. 保存后,复制 uaKey 参数(在 MCP 设置页面可见)
Step 2: 配置 OpenClaw
编辑 OpenClaw 配置文件(或通过 mcporter):
json
// ~/.openclaw/workspace/config/mcporter.json
{
mcpServers: {
wecom-deep-op: {
baseUrl: https://qyapi.weixin.qq.com/mcp/bot/combined?uaKey=YOURUAKEY
}
}
}
注意:
- - YOURUAKEY 替换为企业微信 BOT 真实的 uaKey
- 该配置仅为示例,实际使用时会根据技能部署情况调整端点
- 所有 UA_KEY 必须通过环境变量或配置文件管理,禁止硬编码
Step 3: 测试连接
bash
使用 mcporter 测试
mcporter --config ~/.openclaw/workspace/config/mcporter.json call wecom-deep-op.ping {}
期望返回:
json
{
errcode: 0,
errmsg: ok,
data: {
service: wecom-deep-op,
version: 1.0.0,
status: healthy
}
}
📚 使用指南
统一调用模式
所有操作都通过 wecom_mcp tool 调用:
bash
语法
wecom
mcp call wecom-deep-op.name>
示例:创建文档
wecommcp call wecom-deep-op.doccreate {doc_name: 项目周报, content: # 周报\n\n...}
示例:查询日程
wecommcp call wecom-deep-op.schedulelist {starttime: 2026-03-21 00:00:00, endtime: 2026-03-22 00:00:00}
📄 文档管理 (doc_*)
创建文档
bash
wecommcp call wecom-deep-op.doccreate {doctype: 3, docname: 会议纪要}
返回:{ errcode: 0, docid: xxx, url: https://... }
读取文档
bash
首次调用(开始导出)
wecommcp call wecom-deep-op.docget {docid: DOCID, type: 2}
轮询(如果 taskdone=false,用返回的 taskid 继续调用)
wecommcp call wecom-deep-op.docget {docid: DOCID, type: 2, task_id: xxx}
编辑文档
bash
wecommcp call wecom-deep-op.docedit {docid: DOCID, content: # 新内容\n\nMarkdown格式, content_type: 1}
📅 日程管理 (schedule_*)
创建日程
bash
wecommcp call wecom-deep-op.schedulecreate {
summary: 项目评审会,
start_time: 2026-03-22 14:00:00,
end_time: 2026-03-22 16:00:00,
location: 会议室A,
description: 讨论Q1进展,
attendees: [userid1, userid2]
}
查询日程
bash
wecommcp call wecom-deep-op.schedulelist {
start_time: 2026-03-21 00:00:00,
end_time: 2026-03-22 00:00:00
}
更新日程
bash
wecommcp call wecom-deep-op.scheduleupdate {
scheduleid: schedulexxx,
summary: 新的标题,
start_time: 2026-03-22 15:00:00
}
取消日程
bash
wecommcp call wecom-deep-op.schedulecancel {scheduleid: schedulexxx}
📹 会议管理 (meeting_*)
预约会议
bash
wecommcp call wecom-deep-op.meetingcreate {
subject: 周会,
start_time: 2026-03-22 10:00:00,
end_time: 2026-03-22 11:00:00,
type: 2,
attendees: [zhangsan, lisi]
}
查询会议
bash
wecommcp call wecom-deep-op.meetinglist {
start_time: 2026-03-21 00:00:00,
end_time: 2026-03-22 00:00:00
}
取消会议
bash
wecommcp call wecom-deep-op.meetingcancel {meetingid: meetingxxx}
更新参会人
bash
wecommcp call wecom-deep-op.meetingupdate_attendees {
meetingid: meetingxxx,
add_attendees: [wangwu],
remove_attendees: [lisi]
}
✅ 待办管理 (todo_*)
创建待办
bash
wecommcp call wecom-deep-op.todocreate {
title: 审核合同,
due_time: 2026-03-23 18:00:00,
priority: 2,
desc: 请审核附件合同并反馈
}
获取待办列表
bash
wecommcp call wecom-deep-op.todolist {
status: 0,
limit: 50
}
获取待办详情
bash
wecommcp call wecom-deep-op.todoget {todoid: todoxxx}
更新待办状态
bash
wecommcp call wecom-deep-op.todoupdate_status {
todoid: todoxxx,
status: 2