bmall-mcp 1.0.4 → 1.0.6
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 +14 -2
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/mtaReadPrompt.d.ts +1 -1
- package/dist/tools/mtaReadPrompt.d.ts.map +1 -1
- package/dist/tools/mtaReadPrompt.js +25 -35
- package/dist/tools/mtaReadPrompt.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +7 -1
- package/src/tools/mtaReadPrompt.ts +26 -37
package/README.md
CHANGED
|
@@ -79,18 +79,30 @@ npx -y bmall-mcp
|
|
|
79
79
|
|
|
80
80
|
```
|
|
81
81
|
提取埋点需求 https://stream.jd.com/ddrx/#/requirement/29582
|
|
82
|
+
提取 iOS 端埋点 https://stream.jd.com/ddrx/#/requirement/29582
|
|
82
83
|
```
|
|
83
84
|
|
|
84
85
|
参数:
|
|
85
86
|
- `requirementUrl`: 埋点需求文档URL(必填)
|
|
87
|
+
- `platform`: 目标端(可选,默认自动检测)
|
|
88
|
+
- `iOS` | `Android` | `H5` | `Web` | `鸿蒙`
|
|
86
89
|
|
|
87
90
|
功能:
|
|
88
|
-
-
|
|
89
|
-
-
|
|
91
|
+
- 支持指定目标端,未指定时自动识别当前项目类型
|
|
92
|
+
- 根据目标端筛选对应的埋点
|
|
90
93
|
- 生成结构化埋点文档
|
|
91
94
|
|
|
92
95
|
## Changelog
|
|
93
96
|
|
|
97
|
+
### v1.0.6 (2026-01-13)
|
|
98
|
+
- ✅ 修正 page_code 为页面编号(非页面名称)
|
|
99
|
+
|
|
100
|
+
### v1.0.5 (2026-01-13)
|
|
101
|
+
- ✅ 支持用户指定目标端(platform 参数),未指定时自动检测
|
|
102
|
+
- ✅ 支持一个模块多个页面,按页面分组显示埋点
|
|
103
|
+
- ✅ 状态筛选支持"新增"和"修改"
|
|
104
|
+
- ✅ 精简 Prompt 输出格式
|
|
105
|
+
|
|
94
106
|
### v1.0.4 (2026-01-13)
|
|
95
107
|
- ✅ 优化 `mta_read` Prompt,精简输出格式
|
|
96
108
|
- ✅ 过滤通用参数(bPin、buId 等),只输出业务参数
|
package/dist/index.js
CHANGED
|
@@ -78,6 +78,11 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
78
78
|
type: "string",
|
|
79
79
|
description: "埋点需求文档URL,如 https://stream.jd.com/ddrx/#/requirement/29582",
|
|
80
80
|
},
|
|
81
|
+
platform: {
|
|
82
|
+
type: "string",
|
|
83
|
+
enum: ["iOS", "Android", "H5", "Web", "鸿蒙"],
|
|
84
|
+
description: "目标端 (可选,默认自动检测当前项目类型)",
|
|
85
|
+
},
|
|
81
86
|
},
|
|
82
87
|
required: ["requirementUrl"],
|
|
83
88
|
},
|
|
@@ -136,6 +141,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
136
141
|
}
|
|
137
142
|
if (request.params.name === "mta_read") {
|
|
138
143
|
const requirementUrl = request.params.arguments?.requirementUrl;
|
|
144
|
+
const platform = request.params.arguments?.platform;
|
|
139
145
|
if (!requirementUrl) {
|
|
140
146
|
return {
|
|
141
147
|
content: [
|
|
@@ -146,7 +152,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
146
152
|
],
|
|
147
153
|
};
|
|
148
154
|
}
|
|
149
|
-
const prompt = getMtaReadPrompt(requirementUrl);
|
|
155
|
+
const prompt = getMtaReadPrompt(requirementUrl, platform);
|
|
150
156
|
return {
|
|
151
157
|
content: [
|
|
152
158
|
{
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,WAAW;AACX,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE;QACL;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,kCAAkC;YAC/C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC;wBACpC,WAAW,EAAE,oBAAoB;qBAClC;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;wBACpD,WAAW,EAAE,sBAAsB;qBACpC;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,2BAA2B;YACxC,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,WAAW;qBACzB;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;wBACpD,WAAW,EAAE,sBAAsB;qBACpC;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,qDAAqD;YAClE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,yBAAyB;qBACvC;iBACF;gBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;aACpB;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,gCAAgC;YAC7C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,cAAc,EAAE;wBACd,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,4DAA4D;qBAC1E;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;wBAC3C,WAAW,EAAE,uBAAuB;qBACrC;iBACF;gBACD,QAAQ,EAAE,CAAC,gBAAgB,CAAC;aAC7B;SACF;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,aAAa;AACb,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,GAAyB,CAAC;QAChE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAA+B,CAAC;QAE5E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAA6B,CAAC;QACxE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAA+B,CAAC;QAE5E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACnD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,KAAe,CAAC;QAExD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,wBAAwB;qBAC/B;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACvC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,cAAwB,CAAC;QAC1E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,QAA8B,CAAC;QAE1E,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,sCAAsC;qBAC7C;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC1D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,QAAQ;AACR,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACvD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* MTA 埋点文档生成工具
|
|
3
3
|
* 返回 Prompt 指导 AI 从京东流式平台提取埋点需求
|
|
4
4
|
*/
|
|
5
|
-
export declare function getMtaReadPrompt(requirementUrl: string): string;
|
|
5
|
+
export declare function getMtaReadPrompt(requirementUrl: string, userPlatform?: string): string;
|
|
6
6
|
//# sourceMappingURL=mtaReadPrompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtaReadPrompt.d.ts","sourceRoot":"","sources":["../../src/tools/mtaReadPrompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"mtaReadPrompt.d.ts","sourceRoot":"","sources":["../../src/tools/mtaReadPrompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAoEtF"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* 返回 Prompt 指导 AI 从京东流式平台提取埋点需求
|
|
4
4
|
*/
|
|
5
5
|
import { detectProjectType, validateAndGetIDE } from "./utils.js";
|
|
6
|
-
// 项目类型 → MTA
|
|
6
|
+
// 项目类型 → MTA 端映射(自动检测时使用)
|
|
7
7
|
const PROJECT_TYPE_TO_MTA_PLATFORMS = {
|
|
8
8
|
ios: ["iOS"],
|
|
9
9
|
android: ["Android"],
|
|
@@ -13,14 +13,20 @@ const PROJECT_TYPE_TO_MTA_PLATFORMS = {
|
|
|
13
13
|
unknown: ["iOS", "Android"],
|
|
14
14
|
};
|
|
15
15
|
// 所有 MTA 端类型(用于排除)
|
|
16
|
-
const ALL_MTA_PLATFORMS = ["iOS", "Android", "H5", "Web"];
|
|
17
|
-
export function getMtaReadPrompt(requirementUrl) {
|
|
16
|
+
const ALL_MTA_PLATFORMS = ["iOS", "Android", "H5", "Web", "鸿蒙"];
|
|
17
|
+
export function getMtaReadPrompt(requirementUrl, userPlatform) {
|
|
18
18
|
// 从 URL 提取需求 ID
|
|
19
19
|
const match = requirementUrl.match(/requirement\/(\d+)/);
|
|
20
20
|
const requirementId = match ? match[1] : "未知";
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
// 确定目标端:用户指定 > 自动检测
|
|
22
|
+
let platforms;
|
|
23
|
+
if (userPlatform && ALL_MTA_PLATFORMS.includes(userPlatform)) {
|
|
24
|
+
platforms = [userPlatform];
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
const projectType = detectProjectType();
|
|
28
|
+
platforms = PROJECT_TYPE_TO_MTA_PLATFORMS[projectType] || PROJECT_TYPE_TO_MTA_PLATFORMS["unknown"];
|
|
29
|
+
}
|
|
24
30
|
const platformsStr = platforms.join("、");
|
|
25
31
|
// 计算需要排除的端
|
|
26
32
|
const excludePlatforms = ALL_MTA_PLATFORMS.filter(p => !platforms.includes(p));
|
|
@@ -33,32 +39,24 @@ export function getMtaReadPrompt(requirementUrl) {
|
|
|
33
39
|
## 需求信息
|
|
34
40
|
- **需求URL**: ${requirementUrl}
|
|
35
41
|
- **需求ID**: ${requirementId}
|
|
36
|
-
- **目标端**: ${platformsStr}
|
|
42
|
+
- **目标端**: ${platformsStr}(不输出: ${excludePlatformsStr})
|
|
37
43
|
|
|
38
44
|
## 执行步骤
|
|
39
|
-
1.
|
|
40
|
-
2.
|
|
41
|
-
3.
|
|
42
|
-
4. 按筛选规则提取信息,生成埋点文档
|
|
45
|
+
1. 打开需求页面,获取埋点列表
|
|
46
|
+
2. 点击每个埋点查看详细参数
|
|
47
|
+
3. 按筛选规则提取,生成文档
|
|
43
48
|
|
|
44
|
-
>
|
|
49
|
+
> 需要浏览器工具(Chrome DevTools MCP、Playwright MCP 等)
|
|
45
50
|
|
|
46
51
|
## 筛选规则
|
|
47
52
|
|
|
48
|
-
|
|
49
|
-
- **输出**: ${platformsStr}
|
|
50
|
-
- **不输出**: ${excludePlatformsStr}
|
|
51
|
-
- **映射**: 苹果→iOS, 安卓→Android, 鸿蒙→iOS
|
|
53
|
+
**端映射**: 苹果→iOS, 安卓→Android
|
|
52
54
|
|
|
53
|
-
|
|
54
|
-
**输出**: page_code, page_name, 业务参数(vidinfo.xxx, skuinfo.xxx 等)
|
|
55
|
+
**状态**: 提取"新增"和"修改"状态
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
**不输出的参数**: bPin, buId, thirdId, crId, shopMode, opPin, industryId
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
### 状态筛选
|
|
61
|
-
仅提取"新增"状态的埋点
|
|
59
|
+
**不输出的字段**: 触发时机, 事件评级, 上报时机, 点击类型, 计入订单, SQL
|
|
62
60
|
|
|
63
61
|
## 输出格式
|
|
64
62
|
|
|
@@ -67,24 +65,16 @@ export function getMtaReadPrompt(requirementUrl) {
|
|
|
67
65
|
|
|
68
66
|
## 1. {模块名称}模块(需求ID: ${requirementId})
|
|
69
67
|
|
|
70
|
-
|
|
71
|
-
- **模块名称**: {模块名称}
|
|
72
|
-
- **涉及页面**: {页面名称} (页面编号: {编号})
|
|
73
|
-
|
|
74
|
-
**埋点概述**: 该模块共N个埋点,覆盖xxx功能。其中X个浏览,Y个曝光,Z个点击。
|
|
68
|
+
**埋点概述**: 共N个埋点。X个浏览,Y个曝光,Z个点击。
|
|
75
69
|
|
|
76
70
|
### 埋点列表
|
|
77
71
|
|
|
72
|
+
#### 页面: {页面名称} (page_code: {页面编号}, page_name: {页面名称})
|
|
73
|
+
|
|
78
74
|
**1.1 埋点名**: {名称}
|
|
79
75
|
**埋点ID**: \`{标识符}\`
|
|
80
76
|
**埋点类型**: {浏览/曝光/点击}
|
|
81
|
-
|
|
82
|
-
- \`page_code\`: 页面唯一标识
|
|
83
|
-
- \`page_name\`: 页面名称
|
|
84
|
-
- \`vidinfo.vid\`: 视频id
|
|
85
|
-
- \`vidinfo.sort\`: 顺序(从1开始)
|
|
86
|
-
|
|
87
|
-
---
|
|
77
|
+
**埋点业务参数**: 无 / 参数列表
|
|
88
78
|
\`\`\`
|
|
89
79
|
|
|
90
80
|
## 输出位置
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtaReadPrompt.js","sourceRoot":"","sources":["../../src/tools/mtaReadPrompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKlE,
|
|
1
|
+
{"version":3,"file":"mtaReadPrompt.js","sourceRoot":"","sources":["../../src/tools/mtaReadPrompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKlE,0BAA0B;AAC1B,MAAM,6BAA6B,GAAkC;IACnE,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,EAAE,EAAE,CAAC,IAAI,CAAC;IACV,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEF,mBAAmB;AACnB,MAAM,iBAAiB,GAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAE/E,MAAM,UAAU,gBAAgB,CAAC,cAAsB,EAAE,YAAqB;IAC5E,gBAAgB;IAChB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9C,oBAAoB;IACpB,IAAI,SAAwB,CAAC;IAC7B,IAAI,YAAY,IAAI,iBAAiB,CAAC,QAAQ,CAAC,YAA2B,CAAC,EAAE,CAAC;QAC5E,SAAS,GAAG,CAAC,YAA2B,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QACxC,SAAS,GAAG,6BAA6B,CAAC,WAAW,CAAC,IAAI,6BAA6B,CAAC,SAAS,CAAC,CAAC;IACrG,CAAC;IACD,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzC,WAAW;IACX,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvD,iBAAiB;IACjB,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAErF,OAAO;;;eAGM,cAAc;cACf,aAAa;aACd,YAAY,SAAS,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;uBAwB9B,aAAa;;;;;;;;;;;;;;;IAehC,SAAS,QAAQ,aAAa,OAAO,CAAC;AAC1C,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -87,6 +87,11 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
87
87
|
type: "string",
|
|
88
88
|
description: "埋点需求文档URL,如 https://stream.jd.com/ddrx/#/requirement/29582",
|
|
89
89
|
},
|
|
90
|
+
platform: {
|
|
91
|
+
type: "string",
|
|
92
|
+
enum: ["iOS", "Android", "H5", "Web", "鸿蒙"],
|
|
93
|
+
description: "目标端 (可选,默认自动检测当前项目类型)",
|
|
94
|
+
},
|
|
90
95
|
},
|
|
91
96
|
required: ["requirementUrl"],
|
|
92
97
|
},
|
|
@@ -153,6 +158,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
153
158
|
|
|
154
159
|
if (request.params.name === "mta_read") {
|
|
155
160
|
const requirementUrl = request.params.arguments?.requirementUrl as string;
|
|
161
|
+
const platform = request.params.arguments?.platform as string | undefined;
|
|
156
162
|
|
|
157
163
|
if (!requirementUrl) {
|
|
158
164
|
return {
|
|
@@ -165,7 +171,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
165
171
|
};
|
|
166
172
|
}
|
|
167
173
|
|
|
168
|
-
const prompt = getMtaReadPrompt(requirementUrl);
|
|
174
|
+
const prompt = getMtaReadPrompt(requirementUrl, platform);
|
|
169
175
|
return {
|
|
170
176
|
content: [
|
|
171
177
|
{
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
import { detectProjectType, validateAndGetIDE } from "./utils.js";
|
|
7
7
|
|
|
8
|
-
// MTA 端类型(埋点需求网站中的
|
|
9
|
-
type MtaPlatform = "iOS" | "Android" | "H5" | "Web";
|
|
8
|
+
// MTA 端类型(埋点需求网站中的 5 种端)
|
|
9
|
+
type MtaPlatform = "iOS" | "Android" | "H5" | "Web" | "鸿蒙";
|
|
10
10
|
|
|
11
|
-
// 项目类型 → MTA
|
|
11
|
+
// 项目类型 → MTA 端映射(自动检测时使用)
|
|
12
12
|
const PROJECT_TYPE_TO_MTA_PLATFORMS: Record<string, MtaPlatform[]> = {
|
|
13
13
|
ios: ["iOS"],
|
|
14
14
|
android: ["Android"],
|
|
@@ -19,16 +19,21 @@ const PROJECT_TYPE_TO_MTA_PLATFORMS: Record<string, MtaPlatform[]> = {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
// 所有 MTA 端类型(用于排除)
|
|
22
|
-
const ALL_MTA_PLATFORMS: MtaPlatform[] = ["iOS", "Android", "H5", "Web"];
|
|
22
|
+
const ALL_MTA_PLATFORMS: MtaPlatform[] = ["iOS", "Android", "H5", "Web", "鸿蒙"];
|
|
23
23
|
|
|
24
|
-
export function getMtaReadPrompt(requirementUrl: string): string {
|
|
24
|
+
export function getMtaReadPrompt(requirementUrl: string, userPlatform?: string): string {
|
|
25
25
|
// 从 URL 提取需求 ID
|
|
26
26
|
const match = requirementUrl.match(/requirement\/(\d+)/);
|
|
27
27
|
const requirementId = match ? match[1] : "未知";
|
|
28
28
|
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
// 确定目标端:用户指定 > 自动检测
|
|
30
|
+
let platforms: MtaPlatform[];
|
|
31
|
+
if (userPlatform && ALL_MTA_PLATFORMS.includes(userPlatform as MtaPlatform)) {
|
|
32
|
+
platforms = [userPlatform as MtaPlatform];
|
|
33
|
+
} else {
|
|
34
|
+
const projectType = detectProjectType();
|
|
35
|
+
platforms = PROJECT_TYPE_TO_MTA_PLATFORMS[projectType] || PROJECT_TYPE_TO_MTA_PLATFORMS["unknown"];
|
|
36
|
+
}
|
|
32
37
|
const platformsStr = platforms.join("、");
|
|
33
38
|
|
|
34
39
|
// 计算需要排除的端
|
|
@@ -44,32 +49,24 @@ export function getMtaReadPrompt(requirementUrl: string): string {
|
|
|
44
49
|
## 需求信息
|
|
45
50
|
- **需求URL**: ${requirementUrl}
|
|
46
51
|
- **需求ID**: ${requirementId}
|
|
47
|
-
- **目标端**: ${platformsStr}
|
|
52
|
+
- **目标端**: ${platformsStr}(不输出: ${excludePlatformsStr})
|
|
48
53
|
|
|
49
54
|
## 执行步骤
|
|
50
|
-
1.
|
|
51
|
-
2.
|
|
52
|
-
3.
|
|
53
|
-
4. 按筛选规则提取信息,生成埋点文档
|
|
55
|
+
1. 打开需求页面,获取埋点列表
|
|
56
|
+
2. 点击每个埋点查看详细参数
|
|
57
|
+
3. 按筛选规则提取,生成文档
|
|
54
58
|
|
|
55
|
-
>
|
|
59
|
+
> 需要浏览器工具(Chrome DevTools MCP、Playwright MCP 等)
|
|
56
60
|
|
|
57
61
|
## 筛选规则
|
|
58
62
|
|
|
59
|
-
|
|
60
|
-
- **输出**: ${platformsStr}
|
|
61
|
-
- **不输出**: ${excludePlatformsStr}
|
|
62
|
-
- **映射**: 苹果→iOS, 安卓→Android, 鸿蒙→iOS
|
|
63
|
+
**端映射**: 苹果→iOS, 安卓→Android
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
**输出**: page_code, page_name, 业务参数(vidinfo.xxx, skuinfo.xxx 等)
|
|
65
|
+
**状态**: 提取"新增"和"修改"状态
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
**不输出的参数**: bPin, buId, thirdId, crId, shopMode, opPin, industryId
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
### 状态筛选
|
|
72
|
-
仅提取"新增"状态的埋点
|
|
69
|
+
**不输出的字段**: 触发时机, 事件评级, 上报时机, 点击类型, 计入订单, SQL
|
|
73
70
|
|
|
74
71
|
## 输出格式
|
|
75
72
|
|
|
@@ -78,24 +75,16 @@ export function getMtaReadPrompt(requirementUrl: string): string {
|
|
|
78
75
|
|
|
79
76
|
## 1. {模块名称}模块(需求ID: ${requirementId})
|
|
80
77
|
|
|
81
|
-
|
|
82
|
-
- **模块名称**: {模块名称}
|
|
83
|
-
- **涉及页面**: {页面名称} (页面编号: {编号})
|
|
84
|
-
|
|
85
|
-
**埋点概述**: 该模块共N个埋点,覆盖xxx功能。其中X个浏览,Y个曝光,Z个点击。
|
|
78
|
+
**埋点概述**: 共N个埋点。X个浏览,Y个曝光,Z个点击。
|
|
86
79
|
|
|
87
80
|
### 埋点列表
|
|
88
81
|
|
|
82
|
+
#### 页面: {页面名称} (page_code: {页面编号}, page_name: {页面名称})
|
|
83
|
+
|
|
89
84
|
**1.1 埋点名**: {名称}
|
|
90
85
|
**埋点ID**: \`{标识符}\`
|
|
91
86
|
**埋点类型**: {浏览/曝光/点击}
|
|
92
|
-
|
|
93
|
-
- \`page_code\`: 页面唯一标识
|
|
94
|
-
- \`page_name\`: 页面名称
|
|
95
|
-
- \`vidinfo.vid\`: 视频id
|
|
96
|
-
- \`vidinfo.sort\`: 顺序(从1开始)
|
|
97
|
-
|
|
98
|
-
---
|
|
87
|
+
**埋点业务参数**: 无 / 参数列表
|
|
99
88
|
\`\`\`
|
|
100
89
|
|
|
101
90
|
## 输出位置
|