淘宝桌面版MCP工具评测框架。用于系统化测试MCP工具的各项功能,生成专业的技术评测报告。Use when 需要对淘宝MCP工具进行评测、测试、验收、迭代验证。
---
name: qf-mcp-benchmark
description: 淘宝桌面版MCP工具评测框架。用于系统化测试MCP工具的各项功能,生成专业的技术评测报告。Use when 需要对淘宝MCP工具进行评测、测试、验收、迭代验证。
version: v1.7.7
metadata:
openclaw:
emoji: "📊"
author: "CoPaw AI"
created: "2026-03-17"
updated: "2026-03-22"
---
# 淘宝桌面版MCP评测框架 v1.7.7
## 概述
本skill提供一套系统化的评测框架,用于测试淘宝桌面版MCP工具的各项功能,并生成专业的技术评测报告。
**v1.7.7 更新内容**:
- 清理历史遗留的小红书相关提示(任务6已改为图片OCR流程,不再涉及小红书)
**v1.7.6 更新内容**:
- 新增任务9:收藏夹商家上新检查
- 调整任务权重分配
**v1.7.5 更新内容**:
- 任务6重构:图片OCR识别+价格对比+最便宜商品加购
**v1.7.3 更新内容**:
- 更新钉钉文档链接格式
**v1.7.2 更新内容**:
- 新增任务8:退货退款申请(包含定时任务跟踪)
- 支持自动检查退货状态并通知用户
**v1.7.1 更新内容**:
- 钉钉文档更新必须使用钉钉文档MCP(`mcporter call 钉钉文档`)
- 强调每次评测必须填写完整的评测报告并追加到钉钉文档
---
## ⚠️ 执行原则(必须遵守)
### 原子性执行
**评测任务一旦开始,必须完整执行完成,不可中断。**
| 原则 | 说明 |
|------|------|
| **不可中断** | 开始评测后,必须完成所有8个任务 + 生成报告 |
| **完整流程** | 初始化 → 任务1-8 → 截图收集 → 报告生成 → 清理 |
| **状态跟踪** | 每个任务完成后记录 checkpoint,便于恢复 |
| **详细记录** | 每个工具调用必须记录完整参数和返回结果 |
---
## 📝 详细记录规范(v1.6.0 新增)
### 工具调用日志格式
每次工具调用后,必须将完整信息保存到日志文件:
**文件位置**:`~/.copaw/tasks/benchmark_{id}/calls/`
**命名规则**:`{task_id}_{step}_{tool_name}.json`
**日志格式**:
```json
{
"call_id": "T1_S1_navigate",
"task_id": 1,
"step": 1,
"tool": "navigate",
"params": {
"page": "home"
},
"result": {
"success": true,
"page": "home",
"url": "https://pages-fast.m.taobao.com/..."
},
"start_time": "2026-03-20 12:30:00.123",
"end_time": "2026-03-20 12:30:02.456",
"duration_ms": 2333,
"success": true,
"screenshot": "T1_S1_homepage.png",
"error": null
}
```
### 截图关联规则
| 截图命名 | 关联调用 | 说明 |
|----------|----------|------|
| `T{task_id}_S{step}_{desc}.png` | 对应的调用日志 | 操作后截图 |
| `T{task_id}_issue_{n}.png` | 问题截图 | 发现问题时截图 |
### 任务完成记录格式
每个任务完成后,生成任务详情文件:
**文件位置**:`~/.copaw/tasks/benchmark_{id}/tasks/task_{id}.json`
```json
{
"task_id": 1,
"task_name": "淘金币签到",
"weight": 0.15,
"start_time": "2026-03-20 12:30:00",
"end_time": "2026-03-20 12:32:30",
"duration_seconds": 150,
"call_count": 5,
"score": 9.0,
"status": "completed",
"calls": [
{
"step": 1,
"tool": "navigate",
"params": {"page": "home"},
"result_summary": "成功导航到首页",
"duration_ms": 2333
}
],
"screenshots": ["T1_S1_homepage.png", "T1_S2_coin_popup.png"],
"data": {
"coins": 10003,
"can_deduct": 100
},
"issues": [],
"notes": "成功完成淘金币签到流程"
}
```
---
## 评测任务清单
### 任务1:淘金币签到(权重 13%)
**测试目标**:验证导航、元素识别、点击操作的稳定性
**测试步骤**:
1. `navigate` → 首页
2. `scan_page_elements` → 识别淘金币入口
3. `click_element` → 进入淘金币页面
4. `read_page_content` → 读取金币数量
5. 完成签到任务
6. 验证金币增加
**评分标准**:
| 指标 | 分值 |
|------|------|
| 导航成功 | 2分 |
| 元素识别准确 | 2分 |
| 点击操作成功 | 2分 |
| 金币增加验证 | 2分 |
| 流程顺畅度 | 2分 |
---
### 任务2:商品搜索+对比+加购(权重 17%)
**测试目标**:验证搜索、详情查看、SKU选择、加购流程
**测试步骤**:
1. `search_products` → 搜索关键词
2. `read_page_content` → 读取搜索结果
3. 筛选商品进行对比
4. `add_to_cart` → 加入购物车
**评分标准**:
| 指标 | 分值 |
|------|------|
| 搜索返回结果 | 2分 |
| 商品详情页导航 | 2分 |
| 信息提取完整 | 2分 |
| SKU选择准确 | 2分 |
| 加购成功 | 2分 |
---
### 任务3:订单管理(权重 17%)
**测试目标**:验证订单页面导航、状态筛选功能
**测试步骤**:
1. `navigate` → 订单页面
2. `scan_page_elements` → 识别筛选标签
3. 测试筛选功能
4. `read_page_content` → 读取订单列表
**评分标准**:
| 指标 | 分值 |
|------|------|
| 订单页面导航 | 2分 |
| 筛选标签识别 | 2分 |
| 筛选功能正常 | 2分 |
| 订单信息读取 | 2分 |
| 页面切换流畅 | 2分 |
---
### 任务4:获取购物车以及降价信息(权重 17%)
**测试目标**:验证购物车导航、商品列表读取、降价信息提取
**测试步骤**:
1. `navigate` → 购物车页面
2. `read_page_content` → 读取商品列表
3. 统计购物车商品
4. 识别降价商品
**评分标准**:
| 指标 | 分值 |
|------|------|
| 购物车导航成功 | 2分 |
| 商品列表读取完整 | 2分 |
| 降价标签点击成功 | 2分 |
| 降价信息提取准确 | 2分 |
| 数据记录完整 | 2分 |
---
### 任务5:客服咨询对话(权重 13%)
**测试目标**:验证客服咨询功能
**测试步骤**:
1. `search_products` → 搜索商品
2. `open_chat` → 进入客服对话
3. 发送咨询消息
4. 等待回复
**评分标准**:
| 指标 | 分值 |
|------|------|
| 商品搜索成功 | 2分 |
| 进入客服对话 | 2分 |
| 消息发送成功 | 2分 |
| 客服回复接收 | 2分 |
| 对话记录完整 | 2分 |
---
### 任务6:图片OCR识别与淘宝加购(权重 5%)
**测试目标**:验证图片OCR识别、商品搜索、价格对比、加购流程
**测试图片**:`https://img.alicdn.com/imgextra/i2/385132127/O1CN01vV3hBP1RaDYS7eteZ_!!4611686018427381343-2-item_pic.png_.webp`
**测试步骤**:
#### 阶段1:OCR识别商品图片
1. **下载图片**:将测试图片下载到本地临时目录
2. **OCR识别**:使用OCR工具识别图片中的商品信息
- 提取商品名称/关键词
- 提取SKU规格(如有)
- 记录识别结果
#### 阶段2:淘宝搜索商品
1. `search_products` → 使用OCR提取的关键词搜索
2. `read_page_content` → 读取搜索结果列表
3. 记录商品列表(标题、价格、店铺、链接)
#### 阶段3:价格对比与选品
1. 解析搜索结果中的价格信息
2. 按价格排序,找到最便宜的商品
3. 记录最低价商品信息:
- 商品ID
- 商品标题
- 价格
- 店铺名称
#### 阶段4:加购最便宜商品
1. `add_to_cart` → 将最便宜的商品加入购物车
2. 如果有SKU选择,根据OCR识别的规格选择
3. 验证加购成功
**数据记录格式**:
```json
{
"ocr_result": {
"keywords": "识别的商品关键词",
"sku_info": "识别的SKU规格",
"confidence": 0.95
},
"search_results": [
{
"title": "商品标题",
"price": 99.00,
"shop": "店铺名",
"item_id": "xxx"
}
],
"cheapest": {
"title": "最便宜商品标题",
"price": 88.00,
"shop": "店铺名",
"item_id": "xxx"
},
"add_to_cart_result": {
"success": true,
"message": "加购成功"
}
}
```
**评分标准**:
| 指标 | 分值 |
|------|------|
| 图片OCR识别成功 | 2分 |
| 关键词提取准确 | 1分 |
| 搜索返回结果 | 1分 |
| 价格对比正确 | 2分 |
| 加购最便宜商品成功 | 2分 |
| 数据记录完整 | 1分 |
| 流程顺畅度 | 1分 |
---
### 任务7:购物车价格监控设置(权重 5%)
**测试目标**:验证价格监控功能
**测试步骤**:
1. `navigate` → 购物车
2. `read_page_content` → 读取降价信息
3. 记录价格监控数据
**评分标准**:
| 指标 | 分值 |
|------|------|
| 购物车导航成功 | 2分 |
| 降价信息显示 | 2分 |
| 价格保护服务 | 2分 |
| 监控入口识别 | 2分 |
| 数据完整性 | 2分 |
---
### 任务8:退货退款申请(权重 10%)
**测试目标**:验证售后流程完整性,包括订单查找、申请提交、状态跟踪
**⚠️ 重要说明**:
- 此任务会**真实提交退货退款申请**,请在测试环境或确认后执行
- 需要配合**定时任务**跟踪退货状态
**测试步骤**:
#### 阶段1:查找已成交订单
1. `navigate` → `{"page": "order"}`
2. `scan_page_elements` → 识别订单状态筛选标签
3. `click_element` → 点击"已完成"或"已成交"筛选
4. `read_page_content` → 读取订单列表
5. 找到最新已成交订单,记录订单号
#### 阶段2:提交退货退款申请
1. `click_element` → 点击订单的"申请售后"按钮
2. `scan_page_elements` → 识别售后类型选项
3. `click_element` → 选择"退货退款"
4. `click_element` → 选择退货原因(如"不想要了"、"商品描述不符"等)
5. `type` → 填写退货说明(可选)
6. `click_element` → 提交申请
7. `read_page_content` → 读取申请结果
#### 阶段3:处理申请结果
**情况A:需要等待商家确认**
```
1. 记录退货申请单号
2. 告知用户:
"✅ 退货退款申请已提交,等待商家确认。
我已设置定时任务,每小时自动检查退货进度。"
3. 创建定时任务检查退货状态
```
**情况B:直接通过申请(极速退款)**
```
1. `read_page_content` → 读取取件码
2. 发送取件码给用户:
"✅ 退货申请已通过!
📦 取件码:XXXXXX
请联系快递员上门取件或前往快递点寄件。"
```
#### 阶段4:定时任务跟踪(可选)
**创建定时检查任务**:
```bash
# 使用 copaw cron 创建定时任务
copaw cron add --name "检查退货申请状态" --schedule "0 * * * *" --command "检查退货申请 {申请单号}"
```
**定时任务逻辑**:
```python
# 每小时执行一次
1. navigate → 订单页面
2. 找到退货申请订单
3. 读取当前状态
4. 如果状态变化:
- 商家同意 → 发送取件码给用户
- 商家拒绝 → 通知用户并说明原因
- 退货完成 → 通知用户退款已到账
```
**退货状态枚举**:
| 状态 | 说明 | 通知内容 |
|------|------|----------|
| `pending` | 等待商家确认 | 已提交,定时检查中 |
| `approved` | 商家同意 | 取件码:XXX |
| `rejected` | 商家拒绝 | 拒绝原因:XXX |
| `pickup_scheduled` | 待取件 | 快递员将上门取件 |
| `in_transit` | 运输中 | 退货运输中 |
| `refunded` | 退款完成 | 退款已到账 |
**评分标准**:
| 指标 | 分值 |
|------|------|
| 订单查找成功 | 2分 |
| 售后入口识别 | 2分 |
| 申请流程完成 | 2分 |
| 结果通知正确 | 2分 |
| 定时任务设置(如需要) | 2分 |
---
### 任务9:收藏夹商家上新检查(权重 8%)
**测试目标**:验证收藏夹导航、商家上新状态检测、新品信息提取和通知功能
**测试步骤**:
#### 阶段1:进入收藏夹
1. `navigate` → `{"page": "collect"}` 进入收藏夹页面
2. `scan_page_elements` → 识别页面结构(关注商家/收藏商品标签)
3. `click_element` → 切换到"关注商家"或类似标签
4. `read_page_content` → 读取关注的商家列表
#### 阶段2:检查商家上新状态
1. `scan_page_elements` → 扫描商家列表,查找"上新"、"新品"等标签
2. 记录有上新的商家:
- 商家名称
- 上新数量/标签
- 商家链接
#### 阶段3:获取新品详情
对于每个有上新的商家:
1. `click_element` → 进入商家店铺或新品页面
2. `read_page_content` → 读取新品列表
3. 提取新品信息:
- 商品名称
- 价格
- 销量/热度
- 商品链接
4. 按重要性筛选新品(可参考销量、价格、是否新品标等)
5. `navigate` → 返回收藏夹,继续检查下一个商家
#### 阶段4:整理并发送通知
1. 汇总所有有上新的商家及新品信息
2. 按重要性排序(商家上新数量、新品热度等)
3. 发送通知给用户,格式如下:
```
📦 收藏夹商家上新通知
共 X 家商家有上新:
🏪 【商家A】(3件新品)
1. [商品名] - ¥XX.XX
2. [商品名] - ¥XX.XX
3. [商品名] - ¥XX.XX
🏪 【商家B】(1件新品)
1. [商品名] - ¥XX.XX
---
共发现 X 件新品,以上为精选推荐。
```
#### 阶段5:无上新处理
如果没有商家上新:
```
📦 收藏夹商家上新检查
当前关注的商家暂无新品上架。
上次检查时间:XXXX-XX-XX XX:XX
```
**数据记录格式**:
```json
{
"check_time": "2026-03-22 10:30:00",
"total_shops": 10,
"shops_with_new": 3,
"total_new_items": 8,
"shops": [
{
"name": "店铺名称",
"new_count": 3,
"items": [
{
"title": "商品标题",
"price": 99.00,
"sales": 100,
"link": "商品链接"
}
]
}
]
}
```
**评分标准**:
| 指标 | 分值 |
|------|------|
| 收藏夹导航成功 | 1分 |
| 商家列表识别准确 | 1分 |
| 上新状态检测正确 | 2分 |
| 新品信息提取完整 | 2分 |
| 筛选排序合理 | 2分 |
| 通知格式清晰 | 1分 |
| 流程顺畅度 | 1分 |
---
## 评测流程
### 1. 初始化评测任务
```bash
# 创建评测任务目录结构
BENCHMARK_ID="benchmark_$(date +%Y%m%d_%H%M%S)"
mkdir -p ~/.copaw/tasks/$BENCHMARK_ID/{screenshots,calls,tasks}
# 创建初始状态文件
cat > ~/.copaw/tasks/$BENCHMARK_ID/status.json << 'EOF'
{
"benchmark_id": "...",
"version": "1.6.0",
"start_time": "...",
"status": "running",
"current_task": 0,
"tasks": [...]
}
EOF
```
### 2. 执行评测任务(详细记录)
**每个工具调用必须执行以下步骤**:
```bash
# 1. 记录开始时间
START_TIME=$(date +%s%3N)
# 2. 执行工具调用(结果保存到变量)
# 3. 记录结束时间
END_TIME=$(date +%s%3N)
# 4. 保存完整日志
cat > ~/.copaw/tasks/$BENCHMARK_ID/calls/T{task_id}_S{step}_{tool}.json << 'EOF'
{
"call_id": "T1_S1_navigate",
"start_time": "...",
"end_time": "...",
"duration_ms": ...,
"tool": "navigate",
"params": {...},
"result": {...},
"success": true,
"screenshot": "..."
}
EOF
# 5. 截图
screencapture -x ~/.copaw/tasks/$BENCHMARK_ID/screenshots/T{task_id}_S{step}_{desc}.png
```
### 3. 生成评测报告
**⚠️ 重要:每次评测必须填写完整的评测报告**
**报告必须包含**:
1. **整体小结**
- 评测概览
- 总体评分
- 任务完成度
- 工具调用统计
- 问题汇总
2. **分任务详情**(每个任务必须包含)
- 任务概要表
- **执行流程表**(详细记录每个工具调用)
- **工具调用日志**(完整的JSON返回结果代码块)
- 过程截图(嵌入文档)
- 数据结果
- 问题分析
3. **技术分析**
- 工具调用统计
- 性能指标
- 问题清单
4. **附录**
- 截图清单
- 完整调用日志
### 4. 追加报告到钉钉文档(必须执行)
**评测完成后,必须将完整报告追加到钉钉文档**:
```bash
# 读取本地报告内容
REPORT=$(cat ~/.copaw/tasks/$BENCHMARK_ID/评测报告.md)
# 追加到钉钉文档
mcporter call 钉钉文档 update_document --args "{
\"nodeId\": \"mweZ92PV6MbD5bE4Fg9wvN6xWxEKBD6p\",
\"markdown\": \"$REPORT\",
\"mode\": \"append\"
}"
```
**检查追加结果**:
```bash
# 获取文档内容确认追加成功
mcporter call 钉钉文档 get_document_content --args '{
"nodeId": "mweZ92PV6MbD5bE4Fg9wvN6xWxEKBD6p"
}'
```
### 5. 完整评测流程总结
```
1. 初始化评测任务(创建目录、状态文件)
2. 执行任务1-7(每个任务详细记录日志和截图)
3. 生成本地评测报告(完整的Markdown格式)
4. 追加报告到钉钉文档(使用钉钉文档MCP)
5. 确认追加成功
6. 清理临时文件(可选)
```
---
## 📝 钉钉文档迭代记录(v1.7.0 新增)
### 核心原则
**评测完成后,必须将完整评测报告追加到指定的钉钉文档,遵循以下规则:**
| 规则 | 说明 |
|------|------|
| **指定文档** | 固定使用一个文档,永不更换 |
| **只追加不覆盖** | 每次只在文档末尾追加新内容 |
| **完整报告** | 每次评测必须追加完整的评测报告,不是简化版本 |
| **格式固定** | 使用统一模板记录 |
| **版本管控** | 按时间顺序排列,便于对比变化 |
### 钉钉文档配置
**本地配置文件**:`~/.copaw/config/dingtalk_doc.json`
```json
{
"mcp_name": "钉钉文档",
"report_doc": {
"name": "产品体验迭代跟踪报告",
"nodeId": "mweZ92PV6MbD5bE4Fg9wvN6xWxEKBD6p",
"url": "https://alidocs.dingtalk.com/i/nodes/mweZ92PV6MbD5bE4Fg9wvN6xWxEKBD6p?utm_scene=person_space",
"mode": "append",
"rules": {
"never_create_new": true,
"never_overwrite": true,
"always_append_to_end": true
}
}
}
```
### 使用钉钉文档MCP更新
**必须使用 `mcporter call 钉钉文档` 来更新文档**:
```bash
# 追加完整评测报告到钉钉文档
mcporter call 钉钉文档 update_document --args '{
"nodeId": "mweZ92PV6MbD5bE4Fg9wvN6xWxEKBD6p",
"markdown": "# 淘宝桌面版MCP工具评测报告\n\n**评测ID**: benchmark_xxx\n\n...(完整报告内容)...",
"mode": "append"
}'
```
**注意**:
- 参数名是 `markdown`,不是 `content`
- `mode` 必须为 `"append"`
- 内容必须是完整的Markdown格式评测报告
---
## 报告模板(v1.6.0)
### Word报告结构
```
淘宝桌面版MCP评测报告
│
├── 一、整体小结
│ ├── 1.1 评测概览表
│ ├── 1.2 总体评分
│ ├── 1.3 任务完成度表
│ ├── 1.4 工具调用总览表
│ ├── 1.5 耗时分布表
│ ├── 1.6 问题汇总表
│ └── 1.7 关键结论
│
├── 二、分任务详情
│ └── 2.X 任务X:{任务名称}
│ ├── 2.X.1 任务概要表
│ │ └── 目标、时间、耗时、调用次数、评分、状态
│ ├── 2.X.2 执行流程表
│ │ └── 步骤、操作、工具、参数、结果摘要、耗时、状态
│ ├── 2.X.3 工具调用详情 ⭐ 新增
│ │ ├── 调用1:navigate
│ │ │ ├── 参数:{...}
│ │ │ ├── 返回结果(代码块):
│ │ │ │ ```json
│ │ │ │ {
│ │ │ │ "success": true,
│ │ │ │ "page": "home",
│ │ │ │ "url": "..."
│ │ │ │ }
│ │ │ │ ```
│ │ │ └── 截图:[嵌入图片]
│ │ └── 调用2:...
│ ├── 2.X.4 过程截图
│ │ └── 每个关键步骤的截图
│ ├── 2.X.5 数据结果
│ ├── 2.X.6 问题分析
│ └── 2.X.7 评价与建议
│
├── 三、技术分析
│ ├── 3.1 工具调用统计表
│ ├── 3.2 性能指标表
│ └── 3.3 问题清单
│
└── 四、附录
├── 4.1 截图清单
└── 4.2 完整调用日志路径
```
---
## 评分计算
```
总分 = Σ(任务评分 × 权重)
```
**任务权重**(v1.7.6):
| 任务 | 权重 |
|------|------|
| 1. 淘金币签到 | 12% |
| 2. 商品搜索+对比+加购 | 15% |
| 3. 订单管理 | 15% |
| 4. 获取购物车以及降价信息 | 15% |
| 5. 客服咨询对话 | 12% |
| 6. 图片OCR识别与淘宝加购 | 5% |
| 7. 购物车价格监控设置 | 5% |
| 8. 退货退款申请 | 10% |
| 9. 收藏夹商家上新检查 | 8% |
| **总计** | **97%** |
---
## 迭代记录
| 版本 | 日期 | 变更内容 |
|------|------|----------|
| v1.7.6 | 2026-03-22 | **新增任务9**:收藏夹商家上新检查,调整任务权重分配 |
| v1.7.5 | 2026-03-21 | **任务6重构**:小红书链接提取改为图片OCR识别,新增价格对比找最便宜商品 |
| v1.7.4 | 2026-03-20 | 确认钉钉文档链接更新 |
| v1.7.3 | 2026-03-20 | 更新钉钉文档链接格式 |
| v1.7.2 | 2026-03-20 | **新增任务8**:退货退款申请,支持定时任务跟踪退货状态 |
| v1.7.1 | 2026-03-20 | 小红书使用可见浏览器;钉钉文档更新使用MCP;强调完整报告 |
| v1.7.0 | 2026-03-20 | **重大更新**:集成钉钉文档迭代记录,评测结果自动追加到指定文档 |
| v1.6.0 | 2026-03-20 | **重大更新**:详细记录每个工具调用的完整返回结果,报告包含代码块 |
| v1.5.0 | 2026-03-20 | 新增任务6、7,调整任务权重 |
| v1.4.1 | 2026-03-17 | 报告标题和文件名增加日期 |
| v1.4.0 | 2026-03-17 | 任务4改名,任务5要求两轮对话 |
| v1.3.0 | 2026-03-17 | 新增原子性执行原则 |
| v1.2.0 | 2026-03-17 | 优化报告结构 |
| v1.1.0 | 2026-03-17 | 新增任务5 |
| v1.0.0 | 2026-03-17 | 初始版本 |
---
## 文件结构
```
~/.copaw/tasks/benchmark_{id}/
├── status.json # 评测状态
├── timing.log # 耗时日志
├── screenshots/ # 截图目录
│ ├── T1_S1_homepage.png
│ ├── T1_S2_coin_popup.png
│ └── ...
├── calls/ # 工具调用日志(v1.6.0新增)
│ ├── T1_S1_navigate.json
│ ├── T1_S2_read_content.json
│ └── ...
├── tasks/ # 任务详情(v1.6.0新增)
│ ├── task_1.json
│ ├── task_2.json
│ └── ...
└── 评测报告.md # Markdown报告
~/.copaw/config/
└── dingtalk_doc.json # 钉钉文档配置(v1.7.0新增)
```
---
*最后更新:2026-03-22 v1.7.6*don't have the plugin yet? install it then click "run inline in claude" again.