@lanmers/wecom-openclaw-plugin 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +220 -0
- package/dist/index.cjs.js +3591 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.esm.js +3565 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/src/channel.d.ts +3 -0
- package/dist/src/const.d.ts +64 -0
- package/dist/src/dm-policy.d.ts +29 -0
- package/dist/src/group-policy.d.ts +29 -0
- package/dist/src/interface.d.ts +154 -0
- package/dist/src/mcp/index.d.ts +6 -0
- package/dist/src/mcp/schema.d.ts +11 -0
- package/dist/src/mcp/tool.d.ts +55 -0
- package/dist/src/mcp/transport.d.ts +61 -0
- package/dist/src/mcp-config.d.ts +29 -0
- package/dist/src/media-handler.d.ts +36 -0
- package/dist/src/media-uploader.d.ts +131 -0
- package/dist/src/message-parser.d.ts +72 -0
- package/dist/src/message-sender.d.ts +23 -0
- package/dist/src/monitor.d.ts +27 -0
- package/dist/src/onboarding.d.ts +5 -0
- package/dist/src/openclaw-compat.d.ts +48 -0
- package/dist/src/reqid-store.d.ts +31 -0
- package/dist/src/runtime.d.ts +3 -0
- package/dist/src/state-manager.d.ts +76 -0
- package/dist/src/timeout.d.ts +20 -0
- package/dist/src/utils.d.ts +96 -0
- package/dist/src/version.d.ts +2 -0
- package/openclaw.plugin.json +14 -0
- package/package.json +73 -0
- package/skills/wecom-contact-lookup/SKILL.md +162 -0
- package/skills/wecom-doc/SKILL.md +363 -0
- package/skills/wecom-doc/references/doc-api.md +224 -0
- package/skills/wecom-doc-manager/SKILL.md +64 -0
- package/skills/wecom-doc-manager/references/api-create-doc.md +56 -0
- package/skills/wecom-doc-manager/references/api-edit-doc-content.md +68 -0
- package/skills/wecom-doc-manager/references/api-export-document.md +88 -0
- package/skills/wecom-edit-todo/SKILL.md +249 -0
- package/skills/wecom-get-todo-detail/SKILL.md +143 -0
- package/skills/wecom-get-todo-list/SKILL.md +127 -0
- package/skills/wecom-meeting-create/SKILL.md +158 -0
- package/skills/wecom-meeting-create/references/example-full.md +30 -0
- package/skills/wecom-meeting-create/references/example-reminder.md +46 -0
- package/skills/wecom-meeting-create/references/example-security.md +22 -0
- package/skills/wecom-meeting-manage/SKILL.md +136 -0
- package/skills/wecom-meeting-query/SKILL.md +330 -0
- package/skills/wecom-preflight/SKILL.md +141 -0
- package/skills/wecom-schedule/SKILL.md +159 -0
- package/skills/wecom-schedule/references/api-check-availability.md +56 -0
- package/skills/wecom-schedule/references/api-create-schedule.md +38 -0
- package/skills/wecom-schedule/references/api-get-schedule-detail.md +81 -0
- package/skills/wecom-schedule/references/api-update-schedule.md +30 -0
- package/skills/wecom-schedule/references/ref-reminders.md +24 -0
- package/skills/wecom-smartsheet-data/SKILL.md +71 -0
- package/skills/wecom-smartsheet-data/references/api-get-records.md +61 -0
- package/skills/wecom-smartsheet-data/references/cell-value-formats.md +120 -0
- package/skills/wecom-smartsheet-schema/SKILL.md +92 -0
- package/skills/wecom-smartsheet-schema/references/field-types.md +43 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# check_availablity API
|
|
2
|
+
|
|
3
|
+
查询指定用户在某时间范围内的忙碌时段。
|
|
4
|
+
|
|
5
|
+
## 参数说明
|
|
6
|
+
|
|
7
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
8
|
+
|------|------|------|------|
|
|
9
|
+
| `check_user_list` | array | ✅ | 用户 ID 列表,1~10 个 |
|
|
10
|
+
| `start_time` | string | ✅ | 查询开始时间 |
|
|
11
|
+
| `end_time` | string | ✅ | 查询结束时间 |
|
|
12
|
+
|
|
13
|
+
## 请求示例
|
|
14
|
+
|
|
15
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call schedule check_availablity '{"check_user_list": ["USER_ID_1", "USER_ID_2"], "start_time": "YYYY-MM-DD HH:MM:SS", "end_time": "YYYY-MM-DD HH:MM:SS"}'`
|
|
16
|
+
|
|
17
|
+
## 返回字段
|
|
18
|
+
|
|
19
|
+
| 字段 | 类型 | 说明 |
|
|
20
|
+
|------|------|------|
|
|
21
|
+
| `errcode` | integer | 返回码,`0` 表示成功 |
|
|
22
|
+
| `errmsg` | string | 错误信息 |
|
|
23
|
+
| `user_busy_list` | array | 用户忙碌时段列表 |
|
|
24
|
+
|
|
25
|
+
### user_busy_list[] 数组中每项字段
|
|
26
|
+
|
|
27
|
+
| 字段 | 类型 | 说明 |
|
|
28
|
+
|------|------|------|
|
|
29
|
+
| `userid` | string | 用户 ID |
|
|
30
|
+
| `busy_slots` | array | 忙碌时段列表 |
|
|
31
|
+
| `busy_slots[].start_time` | string | 忙碌时段开始时间 |
|
|
32
|
+
| `busy_slots[].end_time` | string | 忙碌时段结束时间 |
|
|
33
|
+
| `busy_slots[].schedule_id` | string | 关联的日程 ID |
|
|
34
|
+
| `busy_slots[].subject` | string | 日程标题 |
|
|
35
|
+
|
|
36
|
+
## 响应示例
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"errcode": 0,
|
|
41
|
+
"errmsg": "ok",
|
|
42
|
+
"user_busy_list": [
|
|
43
|
+
{
|
|
44
|
+
"userid": "USER_ID",
|
|
45
|
+
"busy_slots": [
|
|
46
|
+
{
|
|
47
|
+
"start_time": "YYYY-MM-DD HH:MM:SS",
|
|
48
|
+
"end_time": "YYYY-MM-DD HH:MM:SS",
|
|
49
|
+
"schedule_id": "SCHEDULE_ID",
|
|
50
|
+
"subject": "日程标题"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# create_schedule API
|
|
2
|
+
|
|
3
|
+
创建新日程,支持设置标题、时间、地点、参与者、提醒和重复规则。
|
|
4
|
+
|
|
5
|
+
## 参数说明(`schedule` 对象内)
|
|
6
|
+
|
|
7
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
8
|
+
|------|------|------|------|
|
|
9
|
+
| `start_time` | string | ✅ | 开始时间 |
|
|
10
|
+
| `end_time` | string | ✅ | 结束时间 |
|
|
11
|
+
| `summary` | string | ❌ | 日程标题,最长 128 字 |
|
|
12
|
+
| `description` | string | ❌ | 日程描述,最长 1000 字 |
|
|
13
|
+
| `location` | string | ❌ | 地点,最长 128 字 |
|
|
14
|
+
| `is_whole_day` | integer | ❌ | 是否全天:`0`-否(默认),`1`-是 |
|
|
15
|
+
| `attendees` | array | ❌ | 参与者列表,每项含 `userid` |
|
|
16
|
+
| `reminders` | object | ❌ | 提醒与重复设置(见 [reminders 字段参考](ref-reminders.md)) |
|
|
17
|
+
|
|
18
|
+
## 请求示例
|
|
19
|
+
|
|
20
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call schedule create_schedule '{"schedule": {"start_time": "YYYY-MM-DD HH:MM:SS", "end_time": "YYYY-MM-DD HH:MM:SS", "summary": "日程标题", "attendees": [{"userid": "USER_ID"}], "reminders": {"is_remind": 1, "remind_before_event_secs": 3600, "timezone": 8}, "location": "会议地点"}}'`
|
|
21
|
+
|
|
22
|
+
## 返回字段
|
|
23
|
+
|
|
24
|
+
| 字段 | 类型 | 说明 |
|
|
25
|
+
|------|------|------|
|
|
26
|
+
| `errcode` | integer | 返回码,`0` 表示成功 |
|
|
27
|
+
| `errmsg` | string | 错误信息 |
|
|
28
|
+
| `schedule_id` | string | 创建成功的日程 ID |
|
|
29
|
+
|
|
30
|
+
## 响应示例
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"errcode": 0,
|
|
35
|
+
"errmsg": "ok",
|
|
36
|
+
"schedule_id": "SCHEDULE_ID"
|
|
37
|
+
}
|
|
38
|
+
```
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# get_schedule_detail API
|
|
2
|
+
|
|
3
|
+
通过日程 ID 批量获取日程详细信息。
|
|
4
|
+
|
|
5
|
+
## 参数说明
|
|
6
|
+
|
|
7
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
8
|
+
|------|------|------|------|
|
|
9
|
+
| `schedule_id_list` | array | ✅ | 日程 ID 列表,1~50 个 |
|
|
10
|
+
|
|
11
|
+
## 请求示例
|
|
12
|
+
|
|
13
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call schedule get_schedule_detail '{"schedule_id_list": ["SCHEDULE_ID_1", "SCHEDULE_ID_2"]}'`
|
|
14
|
+
|
|
15
|
+
## 返回字段
|
|
16
|
+
|
|
17
|
+
| 字段 | 类型 | 说明 |
|
|
18
|
+
|------|------|------|
|
|
19
|
+
| `errcode` | integer | 返回码,`0` 表示成功 |
|
|
20
|
+
| `errmsg` | string | 错误信息 |
|
|
21
|
+
| `schedule` | array | 日程详情列表 |
|
|
22
|
+
|
|
23
|
+
### schedule[] 字段
|
|
24
|
+
|
|
25
|
+
| 字段 | 类型 | 说明 |
|
|
26
|
+
|------|------|------|
|
|
27
|
+
| `schedule_id` | string | 日程唯一 ID |
|
|
28
|
+
| `summary` | string | 日程标题 |
|
|
29
|
+
| `description` | string | 日程描述 |
|
|
30
|
+
| `start_time` | integer | 开始时间(Unix 时间戳,秒) |
|
|
31
|
+
| `end_time` | integer | 结束时间(Unix 时间戳,秒) |
|
|
32
|
+
| `location` | string | 地点 |
|
|
33
|
+
| `status` | integer | `0`-正常,`1`-已取消 |
|
|
34
|
+
| `is_whole_day` | integer | `0`-否,`1`-是 |
|
|
35
|
+
| `admins` | array | 管理员 userid 列表 |
|
|
36
|
+
| `attendees` | array | 参与者列表 |
|
|
37
|
+
| `attendees[].userid` | string | 参与者 userid |
|
|
38
|
+
| `attendees[].response_status` | integer | 响应状态(见下表) |
|
|
39
|
+
| `reminders` | object | 提醒设置(见 [reminders 字段参考](ref-reminders.md)) |
|
|
40
|
+
|
|
41
|
+
### response_status 枚举
|
|
42
|
+
|
|
43
|
+
| 值 | 含义 |
|
|
44
|
+
|----|------|
|
|
45
|
+
| `1` | 待定 |
|
|
46
|
+
| `2` | 接受 |
|
|
47
|
+
| `3` | 接受单次 |
|
|
48
|
+
| `4` | 拒绝 |
|
|
49
|
+
| `5` | 接受本次及未来 |
|
|
50
|
+
| `6` | 待定单次 |
|
|
51
|
+
| `7` | 待定本次及未来 |
|
|
52
|
+
| `8` | 拒绝单次 |
|
|
53
|
+
| `9` | 拒绝本次及未来 |
|
|
54
|
+
|
|
55
|
+
## 响应示例
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"errcode": 0,
|
|
60
|
+
"errmsg": "ok",
|
|
61
|
+
"schedule": [
|
|
62
|
+
{
|
|
63
|
+
"schedule_id": "SCHEDULE_ID",
|
|
64
|
+
"summary": "日程标题",
|
|
65
|
+
"start_time": 1700000000,
|
|
66
|
+
"end_time": 1700003600,
|
|
67
|
+
"location": "会议室",
|
|
68
|
+
"status": 0,
|
|
69
|
+
"is_whole_day": 0,
|
|
70
|
+
"attendees": [
|
|
71
|
+
{"userid": "USER_ID","tmp_external_userid": "tmp_external_userid_example","response_status": 2}
|
|
72
|
+
],
|
|
73
|
+
"reminders": {
|
|
74
|
+
"is_remind": 1,
|
|
75
|
+
"remind_before_event_secs": 3600,
|
|
76
|
+
"timezone": 8
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# update_schedule API
|
|
2
|
+
|
|
3
|
+
修改已有日程,只需传入需要修改的字段,未传字段保持不变。
|
|
4
|
+
|
|
5
|
+
## 参数说明(`schedule` 对象内)
|
|
6
|
+
|
|
7
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
8
|
+
|------|------|------|------|
|
|
9
|
+
| `schedule_id` | string | ✅ | 目标日程 ID |
|
|
10
|
+
| `start_time` | string | ❌ | 开始时间 |
|
|
11
|
+
| `end_time` | string | ❌ | 结束时间 |
|
|
12
|
+
| `summary` | string | ❌ | 日程标题,最长 128 字 |
|
|
13
|
+
| `description` | string | ❌ | 日程描述,最长 1000 字 |
|
|
14
|
+
| `location` | string | ❌ | 地点,最长 128 字 |
|
|
15
|
+
| `is_whole_day` | integer | ❌ | 是否全天:`0`-否,`1`-是 |
|
|
16
|
+
| `attendees` | array | ❌ | 参与者列表,每项含 `userid` |
|
|
17
|
+
| `reminders` | object | ❌ | 提醒与重复设置(见 [reminders 字段参考](ref-reminders.md)) |
|
|
18
|
+
|
|
19
|
+
> 仅传需修改的字段,其余保持不变。
|
|
20
|
+
|
|
21
|
+
## 请求示例
|
|
22
|
+
|
|
23
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call schedule update_schedule '{"schedule": {"schedule_id": "SCHEDULE_ID", "summary": "更新后的标题", "start_time": "YYYY-MM-DD HH:MM:SS", "end_time": "YYYY-MM-DD HH:MM:SS"}}'`
|
|
24
|
+
|
|
25
|
+
## 返回字段
|
|
26
|
+
|
|
27
|
+
| 字段 | 类型 | 说明 |
|
|
28
|
+
|------|------|------|
|
|
29
|
+
| `errcode` | integer | 返回码,`0` 表示成功 |
|
|
30
|
+
| `errmsg` | string | 错误信息 |
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# reminders 字段参考
|
|
2
|
+
|
|
3
|
+
提醒设置对象,用于 `create_schedule` 和 `update_schedule` 接口。
|
|
4
|
+
|
|
5
|
+
## 字段说明
|
|
6
|
+
|
|
7
|
+
| 字段 | 类型 | 说明 |
|
|
8
|
+
|------|------|------|
|
|
9
|
+
| `is_remind` | integer | 是否提醒:`0`-否,`1`-是 |
|
|
10
|
+
| `remind_before_event_secs` | integer | 提前提醒秒数,可选值:`0`/`300`/`900`/`3600`/`86400` |
|
|
11
|
+
| `remind_time_diffs` | array | 提醒时间差(秒),可选值:`-604800`/`-172800`/`-86400`/`-3600`/`-900`/`-300`/`0`/`32400` |
|
|
12
|
+
| `timezone` | integer | 时区,`-12` ~ `12`,中国为 `8` |
|
|
13
|
+
|
|
14
|
+
## 使用示例
|
|
15
|
+
|
|
16
|
+
### 基本提醒(提前 1 小时)
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{
|
|
20
|
+
"is_remind": 1,
|
|
21
|
+
"remind_before_event_secs": 3600,
|
|
22
|
+
"timezone": 8
|
|
23
|
+
}
|
|
24
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wecom-smartsheet-data
|
|
3
|
+
description: 企业微信智能表格数据(记录)管理技能。提供智能表格记录的增删改查能力。适用场景:(1) 查询子表全部记录 (2) 添加一行或多行记录 (3) 更新已有记录 (4) 删除记录。当用户需要读取表格数据、写入新数据、修改或删除表格行时触发此 Skill。支持通过 docid 或文档 URL 定位文档。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 企业微信智能表格数据管理
|
|
7
|
+
|
|
8
|
+
> `wecom_mcp` 是一个 MCP tool,所有操作通过调用该 tool 完成。
|
|
9
|
+
|
|
10
|
+
> ⚠️ **前置条件**:首次调用 `wecom_mcp` 前,必须按 `wecom-preflight` 技能执行前置条件检查,确保工具已加入白名单。
|
|
11
|
+
|
|
12
|
+
管理智能表格中的记录(行数据)。所有接口支持通过 `docid` 或 `url` 二选一定位文档。
|
|
13
|
+
|
|
14
|
+
## CLI 调用方式
|
|
15
|
+
|
|
16
|
+
通过 `wecom_mcp` tool 调用,品类为 `doc`:
|
|
17
|
+
|
|
18
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc <tool_name> '<json_params>'` 调用指定技能
|
|
19
|
+
|
|
20
|
+
## 返回格式说明
|
|
21
|
+
|
|
22
|
+
所有接口返回 JSON 对象,包含以下公共字段:
|
|
23
|
+
|
|
24
|
+
| 字段 | 类型 | 说明 |
|
|
25
|
+
|------|------|------|
|
|
26
|
+
| `errcode` | integer | 返回码,`0` 表示成功,非 `0` 表示失败 |
|
|
27
|
+
| `errmsg` | string | 错误信息,成功时为 `"ok"` |
|
|
28
|
+
|
|
29
|
+
当 `errcode` 不为 `0` 时,说明接口调用失败,可重试 1 次;若仍失败,将 `errcode` 和 `errmsg` 展示给用户。
|
|
30
|
+
|
|
31
|
+
### smartsheet_get_records
|
|
32
|
+
|
|
33
|
+
查询子表全部记录。
|
|
34
|
+
|
|
35
|
+
- 使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_get_records '{"docid": "DOCID", "sheet_id": "SHEETID"}'`
|
|
36
|
+
- 或通过 URL:使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_get_records '{"url": "https://doc.weixin.qq.com/smartsheet/xxx", "sheet_id": "SHEETID"}'`
|
|
37
|
+
|
|
38
|
+
参见 [API 详情](references/api-get-records.md)。
|
|
39
|
+
|
|
40
|
+
### smartsheet_add_records
|
|
41
|
+
|
|
42
|
+
添加一行或多行记录,单次建议 500 行内。
|
|
43
|
+
|
|
44
|
+
**调用前**必须先了解目标表的字段类型(通过 `smartsheet_get_fields`)。
|
|
45
|
+
|
|
46
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_add_records '{"docid": "DOCID", "sheet_id": "SHEETID", "records": [{"values": {"任务名称": [{"type": "text", "text": "完成需求文档"}], "优先级": [{"text": "高"}]}}]}'`
|
|
47
|
+
|
|
48
|
+
各字段类型的值格式参见 [单元格值格式参考](references/cell-value-formats.md)。
|
|
49
|
+
|
|
50
|
+
### smartsheet_update_records
|
|
51
|
+
|
|
52
|
+
更新一行或多行记录,单次必须在 500 行内。需提供 record_id(通过 `smartsheet_get_records` 获取)。
|
|
53
|
+
|
|
54
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_update_records '{"docid": "DOCID", "sheet_id": "SHEETID", "records": [{"record_id": "RECORDID", "values": {"任务名称": [{"type": "text", "text": "更新后的内容"}]}}]}'`
|
|
55
|
+
|
|
56
|
+
**注意**:创建时间、最后编辑时间、创建人、最后编辑人字段不可更新。
|
|
57
|
+
|
|
58
|
+
### smartsheet_delete_records
|
|
59
|
+
|
|
60
|
+
删除一行或多行记录,单次必须在 500 行内。**操作不可逆**。record_id 通过 `smartsheet_get_records` 获取。
|
|
61
|
+
|
|
62
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_delete_records '{"docid": "DOCID", "sheet_id": "SHEETID", "record_ids": ["RECORDID1", "RECORDID2"]}'`
|
|
63
|
+
|
|
64
|
+
## 典型工作流
|
|
65
|
+
|
|
66
|
+
1. **读取数据** → 使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_get_records '{"docid":"DOCID","sheet_id":"SHEETID"}'`
|
|
67
|
+
2. **写入数据** → 先 `smartsheet_get_fields` 了解列类型 → 若涉及成员(USER)字段,先通过 `wecom-contact-lookup` 的 `get_userlist` 查找人员 userid → `smartsheet_add_records` 写入
|
|
68
|
+
3. **更新数据** → 先 `smartsheet_get_records` 获取 record_id → 若涉及成员(USER)字段,先通过 `wecom-contact-lookup` 的 `get_userlist` 查找人员 userid → `smartsheet_update_records` 更新
|
|
69
|
+
4. **删除数据** → 先 `smartsheet_get_records` 确认 record_id → `smartsheet_delete_records` 删除
|
|
70
|
+
|
|
71
|
+
> **注意**:成员(USER)类型字段需要填写 `user_id`,不能直接使用姓名。必须先通过 `wecom-contact-lookup` 技能的 `get_userlist` 接口按姓名查找到对应的 `userid` 后再使用。
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# smartsheet_get_records API
|
|
2
|
+
|
|
3
|
+
查询智能表格中指定子表的记录信息。只支持获取全部记录。支持通过 docid 或文档 URL 定位文档,二者传入其一即可。
|
|
4
|
+
|
|
5
|
+
## 技能定义
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"name": "smartsheet_get_records",
|
|
10
|
+
"description": "查询智能表格中指定子表的记录信息。只支持获取全部记录。支持通过 docid 或文档 URL 定位文档,二者传入其一即可。",
|
|
11
|
+
"inputSchema": {
|
|
12
|
+
"properties": {
|
|
13
|
+
"docid": {
|
|
14
|
+
"description": "文档的 docid,与 url 二选一传入",
|
|
15
|
+
"title": "Docid",
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"url": {
|
|
19
|
+
"description": "文档的访问链接,与 docid 二选一传入",
|
|
20
|
+
"title": "URL",
|
|
21
|
+
"type": "string"
|
|
22
|
+
},
|
|
23
|
+
"sheet_id": {
|
|
24
|
+
"description": "子表的 sheet_id,用于指定要查询的智能表格中的哪个子表",
|
|
25
|
+
"title": "Sheet Id",
|
|
26
|
+
"type": "string"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"oneOf": [
|
|
30
|
+
{ "required": ["docid", "sheet_id"] },
|
|
31
|
+
{ "required": ["url", "sheet_id"] }
|
|
32
|
+
],
|
|
33
|
+
"title": "smartsheet_get_recordsArguments",
|
|
34
|
+
"type": "object"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 参数说明
|
|
40
|
+
|
|
41
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
42
|
+
|---|---|---|---|
|
|
43
|
+
| docid | string | 与 url 二选一 | 文档的 docid |
|
|
44
|
+
| url | string | 与 docid 二选一 | 文档的访问链接 |
|
|
45
|
+
| sheet_id | string | 是 | 子表的 sheet_id,用于指定要查询的智能表格中的哪个子表 |
|
|
46
|
+
|
|
47
|
+
## 请求示例
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"docid": "DOCID",
|
|
52
|
+
"sheet_id": "123Abc"
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"url": "https://doc.weixin.qq.com/smartsheet/xxx",
|
|
59
|
+
"sheet_id": "123Abc"
|
|
60
|
+
}
|
|
61
|
+
```
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# 单元格值格式参考
|
|
2
|
+
|
|
3
|
+
在 `smartsheet_add_records` 和 `smartsheet_update_records` 中,`values` 的 key **必须是字段标题(field_title)**,不能使用字段 ID。
|
|
4
|
+
|
|
5
|
+
## 各字段类型的值格式
|
|
6
|
+
|
|
7
|
+
### 1. 文本 (FIELD_TYPE_TEXT)
|
|
8
|
+
|
|
9
|
+
**必须**使用数组格式,外层方括号不可省略:
|
|
10
|
+
|
|
11
|
+
```json
|
|
12
|
+
"字段标题": [{"type": "text", "text": "内容"}]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### 2. 数字 (NUMBER) / 货币 (CURRENCY) / 百分比 (PERCENTAGE) / 进度 (PROGRESS)
|
|
16
|
+
|
|
17
|
+
直接传数字:
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
"金额": 100,
|
|
21
|
+
"完成率": 0.6,
|
|
22
|
+
"进度": 80
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 3. 复选框 (CHECKBOX)
|
|
26
|
+
|
|
27
|
+
直接传布尔值:
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
"已完成": true
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 4. 单选 (SINGLE_SELECT) / 多选 (SELECT)
|
|
34
|
+
|
|
35
|
+
**必须**使用数组格式,不能直接传字符串:
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
"优先级": [{"text": "高"}],
|
|
39
|
+
"标签": [{"text": "紧急"}, {"text": "重要"}]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
选项可附带 `id`(已存在选项)和 `style`(颜色 1-27)。
|
|
43
|
+
|
|
44
|
+
### 5. 日期时间 (DATE_TIME)
|
|
45
|
+
|
|
46
|
+
传日期时间字符串,系统自动按东八区转换:
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
"截止日期": "2026-01-15 14:30:00",
|
|
50
|
+
"创建日期": "2026-01-15"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
支持格式:`YYYY-MM-DD HH:MM:SS`、`YYYY-MM-DD HH:MM`、`YYYY-MM-DD`
|
|
54
|
+
|
|
55
|
+
### 6. 手机号 (PHONE_NUMBER) / 邮箱 (EMAIL) / 条码 (BARCODE)
|
|
56
|
+
|
|
57
|
+
直接传字符串:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
"电话": "13800138000",
|
|
61
|
+
"邮箱": "test@example.com"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 7. 成员 (USER)
|
|
65
|
+
|
|
66
|
+
数组格式,需传 user_id。**user_id 不是姓名**,必须先通过 `wecom-contact-lookup` 技能查找目标人员的 `userid`,再填入此处。
|
|
67
|
+
|
|
68
|
+
具体步骤:先使用 `wecom_mcp` tool 调用 `wecom_mcp call contact get_userlist '{}'` 获取通讯录成员列表,在返回结果中按姓名/别名筛选出目标人员,取其 `userid` 值填入。
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
"负责人": [{"user_id": "zhangsan"}]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
多个成员:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
"负责人": [{"user_id": "zhangsan"}, {"user_id": "lisi"}]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 8. 超链接 (URL)
|
|
81
|
+
|
|
82
|
+
数组格式,目前仅支持一个链接:
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
"参考链接": [{"type": "url", "text": "官网", "link": "https://example.com"}]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 9. 图片 (IMAGE)
|
|
89
|
+
|
|
90
|
+
数组格式:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
"封面": [{"image_url": "https://example.com/img.png"}]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 10. 地理位置 (LOCATION)
|
|
97
|
+
|
|
98
|
+
数组格式:
|
|
99
|
+
|
|
100
|
+
```json
|
|
101
|
+
"地点": [{"source_type": 1, "id": "地点ID", "latitude": "39.9", "longitude": "116.3", "title": "北京"}]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 完整添加记录示例
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"docid": "DOCID",
|
|
109
|
+
"sheet_id": "SHEETID",
|
|
110
|
+
"records": [{
|
|
111
|
+
"values": {
|
|
112
|
+
"任务名称": [{"type": "text", "text": "完成需求文档"}],
|
|
113
|
+
"优先级": [{"text": "高"}],
|
|
114
|
+
"截止日期": "2026-03-20",
|
|
115
|
+
"完成进度": 30,
|
|
116
|
+
"已完成": false
|
|
117
|
+
}
|
|
118
|
+
}]
|
|
119
|
+
}
|
|
120
|
+
```
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wecom-smartsheet-schema
|
|
3
|
+
description: 企业微信智能表格结构管理技能。提供子表(Sheet)和字段(Field/列)的增删改查能力。适用场景:(1) 查询智能表格的子表列表 (2) 添加、更新、删除子表 (3) 查询子表的字段/列信息 (4) 添加、更新、删除字段/列。当用户需要管理智能表格的表结构、列定义、子表配置时触发此 Skill。支持通过 docid 或文档 URL 定位文档。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 企业微信智能表格结构管理
|
|
7
|
+
|
|
8
|
+
> `wecom_mcp` 是一个 MCP tool,所有操作通过调用该 tool 完成。
|
|
9
|
+
|
|
10
|
+
> ⚠️ **前置条件**:首次调用 `wecom_mcp` 前,必须按 `wecom-preflight` 技能执行前置条件检查,确保工具已加入白名单。
|
|
11
|
+
|
|
12
|
+
管理智能表格的子表和字段(列)结构。所有接口支持通过 `docid` 或 `url` 二选一定位文档。
|
|
13
|
+
|
|
14
|
+
## 调用方式
|
|
15
|
+
|
|
16
|
+
通过 `wecom_mcp` tool 调用,品类为 `doc`:
|
|
17
|
+
|
|
18
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc <tool_name> '<json_params>'` 调用指定技能
|
|
19
|
+
|
|
20
|
+
## 返回格式说明
|
|
21
|
+
|
|
22
|
+
所有接口返回 JSON 对象,包含以下公共字段:
|
|
23
|
+
|
|
24
|
+
| 字段 | 类型 | 说明 |
|
|
25
|
+
|------|------|------|
|
|
26
|
+
| `errcode` | integer | 返回码,`0` 表示成功,非 `0` 表示失败 |
|
|
27
|
+
| `errmsg` | string | 错误信息,成功时为 `"ok"` |
|
|
28
|
+
|
|
29
|
+
当 `errcode` 不为 `0` 时,说明接口调用失败,可重试 1 次;若仍失败,将 `errcode` 和 `errmsg` 展示给用户。
|
|
30
|
+
|
|
31
|
+
## 子表管理
|
|
32
|
+
|
|
33
|
+
### smartsheet_get_sheet
|
|
34
|
+
|
|
35
|
+
查询文档中所有子表信息,返回 sheet_id、title、类型等。
|
|
36
|
+
|
|
37
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_get_sheet '{"docid": "DOCID"}'`
|
|
38
|
+
|
|
39
|
+
### smartsheet_add_sheet
|
|
40
|
+
|
|
41
|
+
添加空子表。新子表不含视图、记录和字段,需通过其他接口补充。
|
|
42
|
+
|
|
43
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_add_sheet '{"docid": "DOCID", "properties": {"title": "新子表"}}'`
|
|
44
|
+
|
|
45
|
+
**注意**:新建智能表格文档默认已含一个子表,仅需多个子表时调用。
|
|
46
|
+
|
|
47
|
+
### smartsheet_update_sheet
|
|
48
|
+
|
|
49
|
+
修改子表标题。需提供 sheet_id 和新 title。
|
|
50
|
+
|
|
51
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_update_sheet '{"docid": "DOCID", "sheet_id": "SHEETID", "title": "新标题"}'`
|
|
52
|
+
|
|
53
|
+
### smartsheet_delete_sheet
|
|
54
|
+
|
|
55
|
+
永久删除子表,**操作不可逆**。
|
|
56
|
+
|
|
57
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_delete_sheet '{"docid": "DOCID", "sheet_id": "SHEETID"}'`
|
|
58
|
+
|
|
59
|
+
## 字段管理
|
|
60
|
+
|
|
61
|
+
### smartsheet_get_fields
|
|
62
|
+
|
|
63
|
+
查询子表的所有字段信息,返回 field_id、field_title、field_type。
|
|
64
|
+
|
|
65
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_get_fields '{"docid": "DOCID", "sheet_id": "SHEETID"}'`
|
|
66
|
+
|
|
67
|
+
### smartsheet_add_fields
|
|
68
|
+
|
|
69
|
+
向子表添加一个或多个字段。单个子表最多 150 个字段。
|
|
70
|
+
|
|
71
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_add_fields '{"docid": "DOCID", "sheet_id": "SHEETID", "fields": [{"field_title": "任务名称", "field_type": "FIELD_TYPE_TEXT"}]}'`
|
|
72
|
+
|
|
73
|
+
支持的字段类型参见 [字段类型参考](references/field-types.md)。
|
|
74
|
+
|
|
75
|
+
### smartsheet_update_fields
|
|
76
|
+
|
|
77
|
+
更新字段标题。**只能改名,不能改类型**(field_type 必须传原始类型)。field_title 不能更新为原值。
|
|
78
|
+
|
|
79
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_update_fields '{"docid": "DOCID", "sheet_id": "SHEETID", "fields": [{"field_id": "FIELDID", "field_title": "新标题", "field_type": "FIELD_TYPE_TEXT"}]}'`
|
|
80
|
+
|
|
81
|
+
### smartsheet_delete_fields
|
|
82
|
+
|
|
83
|
+
删除一列或多列字段,**操作不可逆**。field_id 可通过 `smartsheet_get_fields` 获取。
|
|
84
|
+
|
|
85
|
+
使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_delete_fields '{"docid": "DOCID", "sheet_id": "SHEETID", "field_ids": ["FIELDID"]}'`
|
|
86
|
+
|
|
87
|
+
## 典型工作流
|
|
88
|
+
|
|
89
|
+
1. **了解表结构** → 使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_get_sheet` → 使用 `wecom_mcp` tool 调用 `wecom_mcp call doc smartsheet_get_fields`
|
|
90
|
+
2. **创建表结构** → `smartsheet_add_sheet` 添加子表 → `smartsheet_add_fields` 定义列
|
|
91
|
+
3. **修改表结构** → `smartsheet_update_fields` 改列名 / `smartsheet_delete_fields` 删列
|
|
92
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# 智能表格字段类型参考
|
|
2
|
+
|
|
3
|
+
## 支持的字段类型
|
|
4
|
+
|
|
5
|
+
| 类型枚举值 | 说明 | 适用场景 |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| `FIELD_TYPE_TEXT` | 文本 | 名称、标题、描述、负责人姓名等自由文本 |
|
|
8
|
+
| `FIELD_TYPE_NUMBER` | 数字 | 金额、工时、数量等数值 |
|
|
9
|
+
| `FIELD_TYPE_CHECKBOX` | 复选框 | 是否完成等布尔值 |
|
|
10
|
+
| `FIELD_TYPE_DATE_TIME` | 日期时间 | 截止日期、创建时间等 |
|
|
11
|
+
| `FIELD_TYPE_IMAGE` | 图片 | 附件图片 |
|
|
12
|
+
| `FIELD_TYPE_USER` | 用户/成员 | 需传入 user_id;仅在明确知道成员 ID 时使用,若只有姓名应用 TEXT |
|
|
13
|
+
| `FIELD_TYPE_URL` | 链接 | 超链接 |
|
|
14
|
+
| `FIELD_TYPE_SELECT` | 多选 | 标签、分类等可多选的选项 |
|
|
15
|
+
| `FIELD_TYPE_PROGRESS` | 进度 | 完成进度(0-100 整数) |
|
|
16
|
+
| `FIELD_TYPE_PHONE_NUMBER` | 手机号 | 联系电话 |
|
|
17
|
+
| `FIELD_TYPE_EMAIL` | 邮箱 | 电子邮件 |
|
|
18
|
+
| `FIELD_TYPE_SINGLE_SELECT` | 单选 | 状态、优先级、严重程度等有固定选项的字段 |
|
|
19
|
+
| `FIELD_TYPE_LOCATION` | 位置 | 地理位置 |
|
|
20
|
+
| `FIELD_TYPE_CURRENCY` | 货币 | 货币金额 |
|
|
21
|
+
| `FIELD_TYPE_PERCENTAGE` | 百分比 | 比率类数值(完成率、转化率) |
|
|
22
|
+
| `FIELD_TYPE_BARCODE` | 条码 | 条形码/二维码 |
|
|
23
|
+
|
|
24
|
+
## 添加字段示例
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"docid": "DOCID",
|
|
29
|
+
"sheet_id": "SHEETID",
|
|
30
|
+
"fields": [
|
|
31
|
+
{ "field_title": "任务名称", "field_type": "FIELD_TYPE_TEXT" },
|
|
32
|
+
{ "field_title": "优先级", "field_type": "FIELD_TYPE_SINGLE_SELECT" },
|
|
33
|
+
{ "field_title": "截止日期", "field_type": "FIELD_TYPE_DATE_TIME" },
|
|
34
|
+
{ "field_title": "完成进度", "field_type": "FIELD_TYPE_PROGRESS" }
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 更新字段注意事项
|
|
40
|
+
|
|
41
|
+
- `smartsheet_update_fields` **只能更新字段标题**,不能更改字段类型
|
|
42
|
+
- `field_type` 必须传字段当前的原始类型
|
|
43
|
+
- `field_title` 不能更新为原值(即不能传与当前相同的标题)
|