使用品类名称
name: "category-selection"
by chanalii · published 2026-03-22
$ claw add gh:chanalii/chanalii-category-selection---
name: "category-selection"
description: "亚马逊品类自动化选品分析技能。通过五维评分模型对亚马逊品类进行深度市场调研,生成Markdown分析报告。当用户使用 /category-selection 命令或提出'分析XX品类'、'XX品类市场调研'、'XX品类选品'等需求时触发此技能。支持配置分析数量,默认Top20。"
---
快速参考
一键执行工作流 (推荐)
# 使用品类名称
python .claude/skills/category-selection/scripts/workflow.py "Sofas" US 20
# 直接使用 NodeID (推荐,避免类目搜索问题)
python .claude/skills/category-selection/scripts/workflow.py 679394011 US 20
# 指定分析数量
python .claude/skills/category-selection/scripts/workflow.py "Kitchen" US 50**重要更新 (v4.0)**:
核心 API 工具
| 步骤 | 工具/操作 | 用途 | 返回数据大小 |
|------|----------|------|-------------|
| 1. 搜索类目 | `category_name_search` | 获取类目 nodeId | 小 |
| 2. 类目报告 | `category_report` | 获取 Top 产品列表和统计数据 | **大 (>25KB)** |
| 3. 产品详情 | `product_detail` | 获取单个产品详情 | 小 |
| 4. 类目关键词 | `category_keywords` | 获取类目核心关键词 | **大 (>25KB)** |
| 5. 类目趋势 | `category_trend` | 获取25个月历史趋势 | 中 |
| 6. 1688采购 | `products_1688` | 获取采购成本数据 | 小 |
调用格式
curl -s -X POST "https://mcp.sorftime.com?key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":N,"method":"tools/call","params":{"name":"TOOL_NAME","arguments":{"amzSite":"US","nodeId":"NODE_ID"}}}'---
触发条件
当用户使用以下方式请求时,启动此分析流程:
---
角色设定
你是一位拥有10年经验的"亚马逊选品专家"和"市场分析师"。你精通品类分析方法论,能够通过数据洞察市场机会、竞争格局和进入壁垒,为用户提供可执行的选品建议。
---
五维评分模型 (标准版)
**评分标准详解**:
| 维度 | 分值 | 评分标准 | 数据来源 |
|------|------|----------|----------|
| **市场规模** | 20 分 | >$10M=20分, >$5M=17分, >$1M=14分, 其他=10分 | 类目月销额 (top100产品月销额) |
| **增长潜力** | 25 分 | 低评论产品占比>40%=22分, >20%=18分, 其他=14分 | 评论数<100的产品占比 |
| **竞争烈度** | 20 分 | Top3品牌占比<30%=18分, <50%=14分, 其他=8分 | CR3 品牌集中度 |
| **进入壁垒** | 20 分 | Amazon占比<20%且新品>40%=20分, 其他组合6-18分 | Amazon自营占比 + 低评论占比 |
| **利润空间** | 15 分 | 均价>$300=12分, >$150=10分, >$50=7分, 其他=4分 | Top100产品平均价格 |
**评级标准**:
| 总分 | 评级 | 建议 |
|------|------|------|
| 80-100 | 优秀 | 强烈推荐进入 |
| 70-79 | 良好 | 可以考虑进入 |
| 50-69 | 一般 | 谨慎进入 |
| 0-49 | 较差 | 不建议进入 |
**完整标准请参考**: [scoring-standard.md](references/scoring-standard.md)
---
完整分析流程
阶段一: 数据收集
#### 步骤 1: 搜索类目获取 nodeId
curl -s -X POST "https://mcp.sorftime.com?key={API_KEY}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"category_name_search","arguments":{"amzSite":"US","searchName":"品类关键词"}}}'**处理多个类目结果时**:
**常见类目 NodeID 参考**:
Traditional Laptop Computers: 13896615011
2 in 1 Laptop Computers: 13896609011
Women's Fashion Sneakers: 679394011
Women's Road Running Shoes: 14210388011
Men's Fashion Sneakers: 679312011
Kitchen Storage Accessories: 3744031#### 步骤 2: 获取类目报告 (Top100 + 统计)
curl -s -X POST "https://mcp.sorftime.com?key={API_KEY}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"category_report","arguments":{"amzSite":"US","nodeId":"NODE_ID"}}}'**关键**: `category_report` 返回数据通常>25KB,会保存到临时文件
**响应处理**:
# 使用 workflow.py 自动处理 (推荐)
python .claude/skills/category-selection/scripts/workflow.py "Sofas" US 20
# 或手动解码 SSE 响应
python .claude/skills/category-selection/scripts/sse_decoder.py {temp_file} {output_dir} 20#### 步骤 3: 获取 Top N 产品详情 (并发)
# 并发获取 Top3 产品详情
curl ... '{"id":3,"method":"tools/call","params":{"name":"product_detail","arguments":{"amzSite":"US","asin":"ASIN1"}}}' &
curl ... '{"id":4,"method":"tools/call","params":{"name":"product_detail","arguments":{"amzSite":"US","asin":"ASIN2"}}}' &
curl ... '{"id":5,"method":"tools/call","params":{"name":"product_detail","arguments":{"amzSite":"US","asin":"ASIN3"}}}' &
wait#### 步骤 4: 获取类目关键词 (可选)
curl -s -X POST "https://mcp.sorftime.com?key={API_KEY}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":6,"method":"tools/call","params":{"name":"category_keywords","arguments":{"amzSite":"US","nodeId":"NODE_ID","page":1}}}'**处理关键词数据**:
python .claude/skills/category-selection/scripts/keywords_parser.py \
{temp_file} \
{output_dir} \
20#### 步骤 5: 获取历史趋势数据 (可选)
curl -s -X POST "https://mcp.sorftime.com?key={API_KEY}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":7,"method":"tools/call","params":{"name":"category_trend","arguments":{"amzSite":"US","nodeId":"NODE_ID"}}}'**趋势数据类型**:
阶段二: 数据分析
#### 核心分析指标
**1. 市场集中度分析**
# HHI 指数 (赫芬达尔-赫希曼指数)
# 计算: 各品牌市场份额平方和 × 10000
# 解读: <1500=低集中度, 1500-2500=中等, >2500=高集中度
# CR3/CR5 (前N品牌集中度)
# 计算: 前N大品牌销量占比
# 解读: <30%=分散, 30-50%=中等, >50%=集中**2. 品牌分析**
# 品牌分布: 按销量/销额排序
# 品牌数量: 统计独立品牌数
# 品牌多样性: HHI 指数评估**3. 卖家来源分析**
# Amazon 自营占比
# 中国卖家占比
# 美国本土卖家占比
# 其他国际卖家占比**4. 价格分析**
# 价格区间分布
# 平均价格
# 价格中位数
# 价格标准差**5. 新品分析**
# 新产品定义: 上架时间 < 90天
# 新品占比: 新品数量 / 总数量
# 新品表现: 新品平均销量、评论数阶段三: 报告生成
#### 生成完整报告
# 一键生成所有报告格式
python .claude/skills/category-selection/scripts/workflow.py "Sofas" US 20
# 或分步骤生成
python .claude/skills/category-selection/scripts/generate_reports.py {data_json}**输出文件结构**:
category-reports/
└── {Category}_{Site}_{YYYYMMDD}/
├── report.md # Markdown 分析报告
├── data.json # 完整解码数据 (中文键)
├── top_products.json # Top N 产品列表
├── scores.json # 五维评分结果
├── execution.log # 执行日志 (v4.0 新增)
├── keywords.json # 类目关键词
├── trend_data.json # 25个月趋势数据
├── adapted_data.json # Excel 适配数据 (英文键)
├── category_analysis_report.xlsx # Excel 报告
├── dashboard.html # HTML 可视化仪表板
├── data/ # 原始数据目录
│ ├── statistics.csv # 统计数据
│ ├── products.csv # 产品列表
│ └── scores.csv # 评分详情
└── *_raw.txt # 原始 SSE 响应---
数据处理工具
核心工具脚本
| 脚本 | 用途 | 版本 |
|------|------|------|
| `workflow.py` | 一键执行完整分析流程 | **v4.0** |
| `sse_decoder.py` | 解码 category_report SSE 响应 | v6.0 |
| `keywords_parser.py` | 解码 category_keywords 响应 | v3.0 |
| `trend_parser.py` | 解析趋势数据 | v1.0 |
| `data_adapter.py` | 数据格式转换 (中文→英文键) | v1.0 |
| `data_utils.py` | 数据处理工具类 | v2.0 |
| `generate_reports.py` | 统一报告生成器 | v3.0 |
| `generate_excel_report.py` | Excel 报告生成 | v2.0 |
| `generate_markdown_report.py` | Markdown 报告生成 | v2.0 |
| `fix_encoding.py` | 编码修复工具 | v1.0 |
数据字段映射
**API 响应字段 → 标准化字段**:
| API 字段 | 标准化字段 | 说明 |
|----------|-----------|------|
| ASIN | asin | 产品唯一标识 |
| 标题/title | title | 产品标题 |
| 价格/price | price | 当前售价 |
| 月销量/monthlySales | monthly_sales | 月销量 |
| 月销额/monthlyRevenue | monthly_revenue | 月销售额 |
| 评论数/reviews | review_count | 评论数量 |
| 星级/rating | rating | 平均评分 |
| 品牌/brand | brand | 品牌名称 |
| 卖家/seller | seller | 卖家名称 |
| 上架时间/daysOnline | days_online | 上架天数 |
---
HTML 可视化仪表板
特性
模板变量支持
| 变量类型 | 示例变量 | 说明 |
|---------|---------|------|
| 基础信息 | `{{CATEGORY_NAME}}`, `{{SITE}}`, `{{DATA_DATE}}` | 报告基本信息 |
| 五维评分 | `{{MARKET_SIZE_SCORE}}`, `{{MARKET_SIZE_PERCENT}}` | 各维度得分和进度条百分比 |
| KPI指标 | `{{TOTAL_PRODUCTS}}`, `{{AVG_PRICE}}`, `{{CR3}}` | 关键指标数据 |
| 图表数据 | `{{SALES_TREND_DATA}}`, `{{BRAND_SHARE_DATA}}` | JavaScript JSON 数据 |
| 分析结论 | `{{CONCENTRATION_LEVEL}}`, `{{RECOMMENDATION}}` | 智能分析文本 |
---
故障排查
常见问题与解决方案 (v4.0 更新)
#### 1. API Key 未设置
**问题**: `❌ API Key 未设置` 或 `Authentication required`
**原因**:
1. 环境变量 `SORFTIME_API_KEY` 未设置
2. `.mcp.json` 文件不存在或格式错误
**解决方案** (v4.0 已修复):
{
"mcpServers": {
"sorftime": {
"url": "https://mcp.sorftime.com?key=YOUR_API_KEY"
}
}
}**手动设置环境变量 (备用)**:
# Windows PowerShell
$env:SORFTIME_API_KEY="your_api_key"
# Linux/Mac
export SORFTIME_API_KEY="your_api_key"#### 2. JSON 解析失败 - 未转义的控制字符
**问题**: `JSONDecodeError: Invalid control character at: line 1 column 3401`
**原因**: API 返回的 JSON 字符串值中包含原始的换行符(\n)、制表符(\t)等控制字符,这些控制字符没有被正确转义
**示例**:
// 错误格式(API 返回的原始格式)
{"标题": "类目:Renewed Laptops,排名:2
类目:Traditional Laptops,排名:11"}
// 正确格式
{"标题": "类目:Renewed Laptops,排名:2\\n类目:Traditional Laptops,排名:11"}**解决方案** (v4.0 已修复):
#### 3. 类目未找到
**问题**: 搜索类目时返回"未查询到对应类目"
**原因**:
1. 大类目(如 "Computers & Accessories")可能只返回子类目列表
2. 类目名称不准确
**解决方案** (v4.0 已改进):
1. workflow.py v4.0 会自动尝试多种搜索变体
2. 使用更具体的子类目名称
3. **推荐**: 直接使用类目 NodeID 查询
**获取 NodeID 的方法**:
# 先用大类目搜索,查看返回的子类目列表
curl -s -X POST "https://mcp.sorftime.com?key={API_KEY}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"category_name_search","arguments":{"amzSite":"US","searchName":"Laptop"}}}'#### 4. 数据解析失败 (Mojibake 编码问题)
**问题**: data.json 中的中文显示为 "Top100产å" 等乱码
**原因**: API 返回 Unicode-escape 格式 (\u4ea7\u54c1),解码后产生 Mojibake
**解决方案** (v4.0 已自动修复):
#### 5. Python dict 格式问题
**问题**: "Expecting property name enclosed in double quotes"
**原因**: API 返回 Python dict 格式(单引号),不是标准 JSON
**解决方案** (v4.0 已修复):
#### 6. 大类目搜索失败
**问题**: "Computers & Accessories" 等大类目搜索无结果
**解决方案**:
1. 使用子类目名称(如 "Laptops", "Computer Accessories")
2. 先搜索大类目获取子类目列表,让用户选择
3. 直接使用已知 NodeID
版本更新记录
| 脚本 | 版本 | 更新内容 |
|------|------|----------|
| `workflow.py` | **v4.0** | ✅ 从 .mcp.json 自动读取 API Key<br>✅ 修复 JSON 字符串中未转义的控制字符<br>✅ 改进类目搜索策略<br>✅ 新增执行日志<br>✅ 更详细的错误信息 |
| `sse_decoder.py` | v6.0 | Mojibake 自动修复、括号匹配、Python dict 转换 |
| `generate_reports.py` | v3.0 | 完整变量替换、分析文本生成 |
调试技巧
1. **查看执行日志**:
# workflow.py v4.0 会自动保存执行日志
cat category-reports/{Category}_{Site}_{YYYYMMDD}/execution.log2. **查看原始响应**:
# workflow.py 会自动保存原始 SSE 响应
cat category-reports/{Category}_{Site}_{YYYYMMDD}/category_report_raw.txt3. **检查编码问题**:
# 检查文件字节
with open('data.json', 'rb') as f:
print(f.read(100))4. **验证 JSON 格式**:
# 使用 Python 验证 JSON
python -m json.tool data.json5. **测试 API 连接**:
curl -s -X POST "https://mcp.sorftime.com?key={YOUR_KEY}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"category_name_search","arguments":{"amzSite":"US","searchName":"Kitchen"}}}'---
支持的站点
**Amazon**: US, GB, DE, FR, IN, CA, JP, ES, IT, MX, AE, AU, BR, SA
**TikTok**: US, GB, MY, PH, VN, ID
**1688**: 中国批发平台
---
注意事项
1. **API Key 配置**:
- 推荐在 `.mcp.json` 中配置(v4.0 自动读取)
- 也可以使用环境变量 `SORFTIME_API_KEY`
2. **参数名称**: 使用 `amzSite` 而非 `site`
3. **id 递增**: 每个请求的 `id` 字段必须递增 (1, 2, 3...)
4. **并发限制**: 建议最多 3-5 个并发请求
5. **数据时效**: 数据可能有 1-7 天延迟
6. **报告命名**: 使用 `{Category}_{Site}_{YYYYMMDD}` 格式
---
参考文档
---
*本 Skill 由 Claude Code 维护 | 最后更新: 2026-03-05 (v4.0)*
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...