MCP 取数对话测试报告-新版新版
把「一问一答」沉淀成可追溯的 HTML 测试报告:用户问题、思考过程与工具调用流、模型回答三个模块,一个问题一个页面,左侧目录切换。
本 skill 只做记录与渲染,不重新回答问题、不评价答案对错、不改写任何原文。
何时使用
- 用户刚用某个 MCP 取数 skill(如
ppw_data_mcp)问完一个问题,要求把这一轮记进报告。 - 用户要求新建 / 更新 / 补齐 MCP 测试报告。
- 典型节奏:
/ppw_data_mcp 问一个问题→ 回答完成 →/mcp_report→ 下一题。
何时不使用
- 用户要的是报告内容分析、结论汇总(本 skill 只做记录)。
- 会话不在本机(远程、他人会话),无法读取 jsonl。
- 用户要的是 Word/PPT 版报告,改用
workbuddy-office-routing。
执行流程
- 运行脚本(默认追加「本会话最后一个已有回答的轮次」):
bash
python "C:/Users/SMPPW/.workbuddy/skills/mcp_report/scripts/mcp_report.py"
需要指定目录时加 --dir <报告目录>;跨会话取数加 --session <jsonl 路径>。
-
读脚本输出,确认
added与总 N 轮。added: 0表示该轮已在报告中(只重渲染,不算失败)。 -
用
present_files打开<dir>/report.html,一句话告知:本次追加的是第几题、当前共几轮。 -
若用户反馈「HTML 里的回答和聊天里看到的不一样」,说明历史数据是旧版脚本提取的(只留了最后一段),
跑--refresh重取原文,再--render-only重渲染即可;不要手工编辑 HTML。 -
脚本报错时如实转述,不伪造成功:
- 「未找到任何会话记录」→ 说明会话文件不存在,请用户确认是否在本机完成过问答。
- 「该会话没有已完成的问答轮次」→ 说明本轮回答尚未落盘,稍后重试即可。
- 中文路径/编码异常 → 用python -X utf8重跑一次。
参数
| 参数 | 说明 |
|---|---|
--dir |
报告目录(内含 report_data.json 与 report.html)。缺省:MCP_REPORT_DIR 环境变量 → D:\Project\CommonProject\mcp_test_report(存在时)→ ~/Documents/mcp_test_report |
--session |
指定会话 jsonl;缺省按 cwd 自动定位,找不到则取全局最新会话 |
--all |
补齐该会话所有缺失轮次(首次建库或补录时用) |
--index N |
只取该会话第 N 轮(1 起),用于「只保留一个问题」的模板初始化 |
--status |
本轮状态:success(默认)/ rejected(按规拒绝)/ error(异常),决定目录圆点与轮次标签颜色 |
--title |
本轮标题,缺省取提问首行前 28 字 |
--meta-title |
报告标题 |
--list |
只列出已收录轮次,不写文件 |
--refresh |
用会话原文重取已收录轮次的回答与工具流(修历史数据用),不改标题/状态 |
--render-only |
只用现有 report_data.json 重新渲染 HTML,完全不读会话 |
状态判定(--status)
success:正常返回数据。rejected:命中 skill 的拒绝规则(宏观指标、行业分组未开放、导出加工等),属预期行为,不是 bug。error:接口报错、鉴权失败、脚本异常等非预期失败。
判定为 rejected 或 error 时必须显式传 --status,不要一律用默认值,否则报告统计会失真。
文件与数据
<dir>/
├── report_data.json # 唯一数据源,可手工改 title / status
└── report.html # 渲染产物,勿手改(下次运行会覆盖)
report_data.json 结构见 references/usage.md。要调整标题、补状态标记,改 JSON 后重跑脚本即可。
保真约定
- 模块 1:
<user_query>内的原文,只做换行保留,不增删字;原始 payload(含客户端注入上下文)折叠可查。 - 模块 2:
reasoning_text、工具入参、工具返回全部原样,默认折叠。 - 模块 3:
output_text原文,仅做 markdown 渲染(表格、列表、代码、链接、分隔线),文字不改。
一轮回答在会话里常被拆成多条 assistant 消息(工具调用前后各一段),脚本按原始顺序拼接所有段落,
缺一不可;show_widget这类可视化工具在正文中留占位标记(报告是静态 HTML,不嵌入图表,原始代码在模块 2)。 - 不得用「润色后的思考过程」替代原文;原文缺失就留空并说明。
参考
references/usage.md— 数据文件结构、手工修正、跨会话补录、常见故障scripts/mcp_report.py— 解析 + 追加 + 渲染,单文件无依赖