@pyrokine/mcp-chrome 1.1.0 → 1.3.0

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.
Files changed (91) hide show
  1. package/README.md +103 -53
  2. package/dist/anti-detection/behavior.d.ts +0 -8
  3. package/dist/anti-detection/behavior.d.ts.map +1 -1
  4. package/dist/anti-detection/behavior.js +0 -16
  5. package/dist/anti-detection/behavior.js.map +1 -1
  6. package/dist/cdp/client.d.ts +0 -2
  7. package/dist/cdp/client.d.ts.map +1 -1
  8. package/dist/cdp/client.js +30 -45
  9. package/dist/cdp/client.js.map +1 -1
  10. package/dist/cdp/launcher.d.ts +1 -8
  11. package/dist/cdp/launcher.d.ts.map +1 -1
  12. package/dist/cdp/launcher.js +4 -20
  13. package/dist/cdp/launcher.js.map +1 -1
  14. package/dist/core/auto-wait.d.ts +2 -2
  15. package/dist/core/auto-wait.d.ts.map +1 -1
  16. package/dist/core/auto-wait.js +1 -1
  17. package/dist/core/auto-wait.js.map +1 -1
  18. package/dist/core/errors.d.ts +10 -13
  19. package/dist/core/errors.d.ts.map +1 -1
  20. package/dist/core/errors.js +19 -25
  21. package/dist/core/errors.js.map +1 -1
  22. package/dist/core/locator.d.ts +6 -7
  23. package/dist/core/locator.d.ts.map +1 -1
  24. package/dist/core/locator.js +77 -31
  25. package/dist/core/locator.js.map +1 -1
  26. package/dist/core/retry.d.ts.map +1 -1
  27. package/dist/core/retry.js +1 -1
  28. package/dist/core/retry.js.map +1 -1
  29. package/dist/core/session.d.ts +32 -33
  30. package/dist/core/session.d.ts.map +1 -1
  31. package/dist/core/session.js +154 -114
  32. package/dist/core/session.js.map +1 -1
  33. package/dist/core/types.d.ts +4 -0
  34. package/dist/core/types.d.ts.map +1 -1
  35. package/dist/core/types.js +6 -0
  36. package/dist/core/types.js.map +1 -1
  37. package/dist/core/unified-session.d.ts +54 -67
  38. package/dist/core/unified-session.d.ts.map +1 -1
  39. package/dist/core/unified-session.js +215 -181
  40. package/dist/core/unified-session.js.map +1 -1
  41. package/dist/extension/bridge.d.ts +0 -19
  42. package/dist/extension/bridge.d.ts.map +1 -1
  43. package/dist/extension/bridge.js +6 -52
  44. package/dist/extension/bridge.js.map +1 -1
  45. package/dist/extension/http-server.d.ts +13 -11
  46. package/dist/extension/http-server.d.ts.map +1 -1
  47. package/dist/extension/http-server.js +101 -95
  48. package/dist/extension/http-server.js.map +1 -1
  49. package/dist/index.js +11 -64
  50. package/dist/index.js.map +1 -1
  51. package/dist/tools/browse.d.ts +3 -80
  52. package/dist/tools/browse.d.ts.map +1 -1
  53. package/dist/tools/browse.js +135 -291
  54. package/dist/tools/browse.js.map +1 -1
  55. package/dist/tools/cookies.d.ts +3 -71
  56. package/dist/tools/cookies.d.ts.map +1 -1
  57. package/dist/tools/cookies.js +75 -157
  58. package/dist/tools/cookies.js.map +1 -1
  59. package/dist/tools/evaluate.d.ts +3 -52
  60. package/dist/tools/evaluate.d.ts.map +1 -1
  61. package/dist/tools/evaluate.js +35 -86
  62. package/dist/tools/evaluate.js.map +1 -1
  63. package/dist/tools/extract.d.ts +3 -226
  64. package/dist/tools/extract.d.ts.map +1 -1
  65. package/dist/tools/extract.js +98 -170
  66. package/dist/tools/extract.js.map +1 -1
  67. package/dist/tools/index.d.ts +9 -9
  68. package/dist/tools/index.d.ts.map +1 -1
  69. package/dist/tools/index.js +9 -9
  70. package/dist/tools/index.js.map +1 -1
  71. package/dist/tools/input.d.ts +3 -258
  72. package/dist/tools/input.d.ts.map +1 -1
  73. package/dist/tools/input.js +56 -143
  74. package/dist/tools/input.js.map +1 -1
  75. package/dist/tools/logs.d.ts +3 -51
  76. package/dist/tools/logs.d.ts.map +1 -1
  77. package/dist/tools/logs.js +47 -108
  78. package/dist/tools/logs.js.map +1 -1
  79. package/dist/tools/manage.d.ts +3 -64
  80. package/dist/tools/manage.d.ts.map +1 -1
  81. package/dist/tools/manage.js +243 -373
  82. package/dist/tools/manage.js.map +1 -1
  83. package/dist/tools/schema.d.ts +16 -182
  84. package/dist/tools/schema.d.ts.map +1 -1
  85. package/dist/tools/schema.js +70 -159
  86. package/dist/tools/schema.js.map +1 -1
  87. package/dist/tools/wait.d.ts +3 -221
  88. package/dist/tools/wait.d.ts.map +1 -1
  89. package/dist/tools/wait.js +74 -145
  90. package/dist/tools/wait.js.map +1 -1
  91. package/package.json +1 -1
@@ -9,146 +9,74 @@
9
9
  */
10
10
  import { writeFile } from 'fs/promises';
11
11
  import { z } from 'zod';
12
- import { formatErrorResponse, getUnifiedSession } from '../core/index.js';
13
- /**
14
- * cookies 工具定义
15
- */
16
- export const cookiesToolDefinition = {
17
- name: 'cookies',
18
- description: 'Cookie 管理:获取、设置、删除、清空',
19
- inputSchema: {
20
- type: 'object',
21
- properties: {
22
- action: {
23
- type: 'string',
24
- enum: ['get', 'set', 'delete', 'clear'],
25
- description: '操作类型',
26
- },
27
- // 通用过滤参数(get/clear)
28
- url: {
29
- type: 'string',
30
- description: 'URL 过滤(get/clear/set/delete)',
31
- },
32
- name: {
33
- type: 'string',
34
- description: 'Cookie 名称(get/set/delete 必填)',
35
- },
36
- domain: {
37
- type: 'string',
38
- description: '域名过滤(get/clear)',
39
- },
40
- path: {
41
- type: 'string',
42
- description: '路径过滤(get)或设置路径(set)',
43
- },
44
- secure: {
45
- type: 'boolean',
46
- description: '只返回 secure cookies(get)或设置 secure 属性(set)',
47
- },
48
- session: {
49
- type: 'boolean',
50
- description: '只返回会话 cookies(get)',
51
- },
52
- // set 专用参数
53
- value: {
54
- type: 'string',
55
- description: 'Cookie 值(set)',
56
- },
57
- httpOnly: {
58
- type: 'boolean',
59
- description: 'httpOnly 属性(set)',
60
- },
61
- sameSite: {
62
- type: 'string',
63
- enum: ['Strict', 'Lax', 'None'],
64
- description: 'SameSite 属性(set)',
65
- },
66
- expirationDate: {
67
- type: 'number',
68
- description: '过期时间戳(set)',
69
- },
70
- // 输出
71
- output: {
72
- type: 'string',
73
- description: '输出文件路径(get)。若指定,cookies 导出为 JSON 文件',
74
- },
75
- },
76
- required: ['action'],
77
- },
78
- };
12
+ import { formatErrorResponse, formatResponse, getUnifiedSession } from '../core/index.js';
79
13
  /**
80
14
  * cookies 参数 schema
81
15
  */
82
16
  const cookiesSchema = z.object({
83
- action: z.enum(['get', 'set', 'delete', 'clear']),
84
- // 通用过滤参数
85
- url: z.string().optional(),
86
- name: z.string().optional(),
87
- domain: z.string().optional(),
88
- path: z.string().optional(),
89
- secure: z.boolean().optional(),
90
- session: z.boolean().optional(),
91
- // set 专用参数
92
- value: z.string().optional(),
93
- httpOnly: z.boolean().optional(),
94
- sameSite: z.enum(['Strict', 'Lax', 'None']).optional(),
95
- expirationDate: z.number().optional(),
96
- // 输出
97
- output: z.string().optional(),
17
+ action: z.enum(['get', 'set', 'delete', 'clear']).describe('操作类型'),
18
+ url: z.string().optional().describe('URL 过滤(get/clear/set/delete)'),
19
+ name: z.string().optional().describe('Cookie 名称(get/set/delete 必填)'),
20
+ domain: z.string().optional().describe('域名过滤(get/clear)'),
21
+ path: z.string().optional().describe('路径过滤(get)或设置路径(set)'),
22
+ secure: z.boolean()
23
+ .optional()
24
+ .describe('只返回 secure cookies(get)或设置 secure 属性(set)'),
25
+ session: z.boolean().optional().describe('只返回会话 cookies(get)'),
26
+ value: z.string().optional().describe('Cookie 值(set)'),
27
+ httpOnly: z.boolean().optional().describe('httpOnly 属性(set)'),
28
+ sameSite: z.enum(['Strict', 'Lax', 'None'])
29
+ .optional()
30
+ .describe('SameSite 属性(set)'),
31
+ expirationDate: z.number().optional().describe('过期时间戳(set)'),
32
+ output: z.string()
33
+ .optional()
34
+ .describe('输出文件路径(get)。若指定,cookies 导出为 JSON 文件'),
98
35
  });
99
36
  /**
100
37
  * cookies 工具处理器
101
38
  */
102
- export async function handleCookies(params) {
39
+ async function handleCookies(args) {
103
40
  try {
104
- const args = cookiesSchema.parse(params);
105
41
  const unifiedSession = getUnifiedSession();
106
42
  switch (args.action) {
107
43
  case 'get': {
108
44
  // 构建过滤条件
109
45
  const filter = {};
110
- if (args.url)
46
+ if (args.url) {
111
47
  filter.url = args.url;
112
- if (args.name)
48
+ }
49
+ if (args.name) {
113
50
  filter.name = args.name;
114
- if (args.domain)
51
+ }
52
+ if (args.domain) {
115
53
  filter.domain = args.domain;
116
- if (args.path)
54
+ }
55
+ if (args.path) {
117
56
  filter.path = args.path;
118
- if (args.secure !== undefined)
57
+ }
58
+ if (args.secure !== undefined) {
119
59
  filter.secure = args.secure;
120
- if (args.session !== undefined)
60
+ }
61
+ if (args.session !== undefined) {
121
62
  filter.session = args.session;
63
+ }
122
64
  const cookies = await unifiedSession.getCookies(filter);
123
65
  if (args.output) {
124
66
  await writeFile(args.output, JSON.stringify(cookies, null, 2), 'utf-8');
125
- return {
126
- content: [
127
- {
128
- type: 'text',
129
- text: JSON.stringify({
130
- success: true,
131
- action: 'get',
132
- output: args.output,
133
- count: cookies.length,
134
- }),
135
- },
136
- ],
137
- };
67
+ return formatResponse({
68
+ success: true,
69
+ action: 'get',
70
+ output: args.output,
71
+ count: cookies.length,
72
+ });
138
73
  }
139
- return {
140
- content: [
141
- {
142
- type: 'text',
143
- text: JSON.stringify({
144
- success: true,
145
- action: 'get',
146
- count: cookies.length,
147
- cookies,
148
- }, null, 2),
149
- },
150
- ],
151
- };
74
+ return formatResponse({
75
+ success: true,
76
+ action: 'get',
77
+ count: cookies.length,
78
+ cookies,
79
+ });
152
80
  }
153
81
  case 'set': {
154
82
  if (!args.url) {
@@ -208,19 +136,12 @@ export async function handleCookies(params) {
208
136
  sameSite: args.sameSite,
209
137
  expirationDate: args.expirationDate,
210
138
  });
211
- return {
212
- content: [
213
- {
214
- type: 'text',
215
- text: JSON.stringify({
216
- success: true,
217
- action: 'set',
218
- url: args.url,
219
- name: args.name,
220
- }),
221
- },
222
- ],
223
- };
139
+ return formatResponse({
140
+ success: true,
141
+ action: 'set',
142
+ url: args.url,
143
+ name: args.name,
144
+ });
224
145
  }
225
146
  case 'delete': {
226
147
  if (!args.url) {
@@ -256,41 +177,29 @@ export async function handleCookies(params) {
256
177
  };
257
178
  }
258
179
  await unifiedSession.deleteCookie(args.url, args.name);
259
- return {
260
- content: [
261
- {
262
- type: 'text',
263
- text: JSON.stringify({
264
- success: true,
265
- action: 'delete',
266
- url: args.url,
267
- name: args.name,
268
- }),
269
- },
270
- ],
271
- };
180
+ return formatResponse({
181
+ success: true,
182
+ action: 'delete',
183
+ url: args.url,
184
+ name: args.name,
185
+ });
272
186
  }
273
187
  case 'clear': {
274
188
  // 构建过滤条件
275
189
  const filter = {};
276
- if (args.url)
190
+ if (args.url) {
277
191
  filter.url = args.url;
278
- if (args.domain)
192
+ }
193
+ if (args.domain) {
279
194
  filter.domain = args.domain;
195
+ }
280
196
  const result = await unifiedSession.clearCookies(Object.keys(filter).length > 0 ? filter : undefined);
281
- return {
282
- content: [
283
- {
284
- type: 'text',
285
- text: JSON.stringify({
286
- success: true,
287
- action: 'clear',
288
- filter: Object.keys(filter).length > 0 ? filter : 'all',
289
- count: result.count,
290
- }),
291
- },
292
- ],
293
- };
197
+ return formatResponse({
198
+ success: true,
199
+ action: 'clear',
200
+ filter: Object.keys(filter).length > 0 ? filter : 'all',
201
+ count: result.count,
202
+ });
294
203
  }
295
204
  default:
296
205
  return {
@@ -313,4 +222,13 @@ export async function handleCookies(params) {
313
222
  return formatErrorResponse(error);
314
223
  }
315
224
  }
225
+ /**
226
+ * 注册 cookies 工具
227
+ */
228
+ export function registerCookiesTool(server) {
229
+ server.registerTool('cookies', {
230
+ description: 'Cookie 管理:获取、设置、删除、清空',
231
+ inputSchema: cookiesSchema,
232
+ }, (args) => handleCookies(args));
233
+ }
316
234
  //# sourceMappingURL=cookies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../src/tools/cookies.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAA;AACrB,OAAO,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAA;AAEvE;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE;QACT,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;gBACvC,WAAW,EAAE,MAAM;aACtB;YACD,oBAAoB;YACpB,GAAG,EAAE;gBACD,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC9C;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;aAC9C;YACD,MAAM,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iBAAiB;aACjC;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qBAAqB;aACrC;YACD,MAAM,EAAE;gBACJ,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,2CAA2C;aAC3D;YACD,OAAO,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,oBAAoB;aACpC;YACD,WAAW;YACX,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,eAAe;aAC/B;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,kBAAkB;aAClC;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;gBAC/B,WAAW,EAAE,kBAAkB;aAClC;YACD,cAAc,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,YAAY;aAC5B;YACD,KAAK;YACL,MAAM,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qCAAqC;aACrD;SACJ;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACvB;CACJ,CAAA;AAED;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,SAAS;IACT,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW;IACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,KAAK;IACL,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAA;AAIF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAe;IAI/C,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAE1C,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACT,SAAS;gBACT,MAAM,MAAM,GAOR,EAAE,CAAA;gBACN,IAAI,IAAI,CAAC,GAAG;oBAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;gBACnC,IAAI,IAAI,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;gBACtC,IAAI,IAAI,CAAC,MAAM;oBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;gBAC5C,IAAI,IAAI,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;gBACtC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;oBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;gBAC1D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;oBAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;gBAE7D,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,MAAM,CAUpD,CAAA;gBAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;oBACvE,OAAO;wBACH,OAAO,EAAE;4BACL;gCACI,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACjB,OAAO,EAAE,IAAI;oCACb,MAAM,EAAE,KAAK;oCACb,MAAM,EAAE,IAAI,CAAC,MAAM;oCACnB,KAAK,EAAE,OAAO,CAAC,MAAM;iCACxB,CAAC;6BACL;yBACJ;qBACJ,CAAA;gBACL,CAAC;gBAED,OAAO;oBACH,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;gCACI,OAAO,EAAE,IAAI;gCACb,MAAM,EAAE,KAAK;gCACb,KAAK,EAAE,OAAO,CAAC,MAAM;gCACrB,OAAO;6BACV,EACD,IAAI,EACJ,CAAC,CACJ;yBACJ;qBACJ;iBACJ,CAAA;YACL,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACZ,OAAO;wBACH,OAAO,EAAE;4BACL;gCACI,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACjB,KAAK,EAAE;wCACH,IAAI,EAAE,kBAAkB;wCACxB,OAAO,EAAE,qBAAqB;qCACjC;iCACJ,CAAC;6BACL;yBACJ;wBACD,OAAO,EAAE,IAAI;qBAChB,CAAA;gBACL,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACb,OAAO;wBACH,OAAO,EAAE;4BACL;gCACI,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACjB,KAAK,EAAE;wCACH,IAAI,EAAE,kBAAkB;wCACxB,OAAO,EAAE,sBAAsB;qCAClC;iCACJ,CAAC;6BACL;yBACJ;wBACD,OAAO,EAAE,IAAI;qBAChB,CAAA;gBACL,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO;wBACH,OAAO,EAAE;4BACL;gCACI,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACjB,KAAK,EAAE;wCACH,IAAI,EAAE,kBAAkB;wCACxB,OAAO,EAAE,uBAAuB;qCACnC;iCACJ,CAAC;6BACL;yBACJ;wBACD,OAAO,EAAE,IAAI;qBAChB,CAAA;gBACL,CAAC;gBAED,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;oBAClD,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,cAAc,EAAE,IAAI,CAAC,cAAc;iBACtC,CAAC,CAAA;gBAEF,OAAO;oBACH,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACjB,OAAO,EAAE,IAAI;gCACb,MAAM,EAAE,KAAK;gCACb,GAAG,EAAE,IAAI,CAAC,GAAG;gCACb,IAAI,EAAE,IAAI,CAAC,IAAI;6BAClB,CAAC;yBACL;qBACJ;iBACJ,CAAA;YACL,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACZ,OAAO;wBACH,OAAO,EAAE;4BACL;gCACI,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACjB,KAAK,EAAE;wCACH,IAAI,EAAE,kBAAkB;wCACxB,OAAO,EAAE,qBAAqB;qCACjC;iCACJ,CAAC;6BACL;yBACJ;wBACD,OAAO,EAAE,IAAI;qBAChB,CAAA;gBACL,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACb,OAAO;wBACH,OAAO,EAAE;4BACL;gCACI,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACjB,KAAK,EAAE;wCACH,IAAI,EAAE,kBAAkB;wCACxB,OAAO,EAAE,sBAAsB;qCAClC;iCACJ,CAAC;6BACL;yBACJ;wBACD,OAAO,EAAE,IAAI;qBAChB,CAAA;gBACL,CAAC;gBAED,MAAM,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBAEtD,OAAO;oBACH,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACjB,OAAO,EAAE,IAAI;gCACb,MAAM,EAAE,QAAQ;gCAChB,GAAG,EAAE,IAAI,CAAC,GAAG;gCACb,IAAI,EAAE,IAAI,CAAC,IAAI;6BAClB,CAAC;yBACL;qBACJ;iBACJ,CAAA;YACL,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,SAAS;gBACT,MAAM,MAAM,GAAoC,EAAE,CAAA;gBAClD,IAAI,IAAI,CAAC,GAAG;oBAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;gBACnC,IAAI,IAAI,CAAC,MAAM;oBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;gBAE5C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,CAC5C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CACtD,CAAA;gBAED,OAAO;oBACH,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACjB,OAAO,EAAE,IAAI;gCACb,MAAM,EAAE,OAAO;gCACf,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;gCACvD,KAAK,EAAE,MAAM,CAAC,KAAK;6BACtB,CAAC;yBACL;qBACJ;iBACJ,CAAA;YACL,CAAC;YAED;gBACI,OAAO;oBACH,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACjB,KAAK,EAAE;oCACH,IAAI,EAAE,kBAAkB;oCACxB,OAAO,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE;iCAClC;6BACJ,CAAC;yBACL;qBACJ;oBACD,OAAO,EAAE,IAAI;iBAChB,CAAA;QACT,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../src/tools/cookies.ts"],"names":[],"mappings":"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"}
@@ -3,58 +3,9 @@
3
3
  *
4
4
  * 在页面上下文执行 JavaScript
5
5
  */
6
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
7
  /**
7
- * evaluate 工具定义
8
+ * 注册 evaluate 工具
8
9
  */
9
- export declare const evaluateToolDefinition: {
10
- name: string;
11
- description: string;
12
- inputSchema: {
13
- type: "object";
14
- properties: {
15
- script: {
16
- type: string;
17
- description: string;
18
- };
19
- args: {
20
- type: string;
21
- description: string;
22
- };
23
- output: {
24
- type: string;
25
- description: string;
26
- };
27
- timeout: {
28
- type: string;
29
- description: string;
30
- };
31
- mode: {
32
- type: string;
33
- enum: string[];
34
- description: string;
35
- };
36
- tabId: {
37
- type: string;
38
- description: string;
39
- };
40
- frame: {
41
- oneOf: {
42
- type: string;
43
- }[];
44
- description: string;
45
- };
46
- };
47
- required: string[];
48
- };
49
- };
50
- /**
51
- * evaluate 工具处理器
52
- */
53
- export declare function handleEvaluate(params: unknown): Promise<{
54
- content: Array<{
55
- type: 'text';
56
- text: string;
57
- }>;
58
- isError?: boolean;
59
- }>;
10
+ export declare function registerEvaluateTool(server: McpServer): void;
60
11
  //# sourceMappingURL=evaluate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/tools/evaluate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsClC,CAAA;AAeD;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAC3D,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC,CAkFD"}
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/tools/evaluate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAA;AAuGtE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAK5D"}
@@ -8,67 +8,26 @@ import { writeFile } from 'fs/promises';
8
8
  import { tmpdir } from 'os';
9
9
  import { join } from 'path';
10
10
  import { z } from 'zod';
11
- import { formatErrorResponse, getUnifiedSession } from '../core/index.js';
12
- /**
13
- * evaluate 工具定义
14
- */
15
- export const evaluateToolDefinition = {
16
- name: 'evaluate',
17
- description: '在页面上下文执行 JavaScript',
18
- inputSchema: {
19
- type: 'object',
20
- properties: {
21
- script: {
22
- type: 'string',
23
- description: 'JavaScript 代码',
24
- },
25
- args: {
26
- type: 'array',
27
- description: '传递给脚本的参数。使用时 script 必须是函数表达式,如 "(x, y) => x + y",参数通过 IIFE 调用传入',
28
- },
29
- output: {
30
- type: 'string',
31
- description: '输出文件路径(可选)。若指定,字符串结果直接写入原始文本,其他类型序列化为 JSON',
32
- },
33
- timeout: {
34
- type: 'number',
35
- description: '超时(毫秒)。Extension 模式作为端到端预算(含传输);CDP 模式作为脚本执行超时',
36
- },
37
- mode: {
38
- type: 'string',
39
- enum: ['stealth', 'precise'],
40
- description: '执行模式。precise(默认)使用 debugger API,可绕过 CSP;stealth 使用 JS 注入,不触发调试提示但受 CSP 限制',
41
- },
42
- tabId: {
43
- type: 'string',
44
- description: '目标 Tab ID(可选,仅 Extension 模式)。不指定则使用当前 attach 的 tab。可操作非当前 attach 的 tab。CDP 模式下忽略此参数',
45
- },
46
- frame: {
47
- oneOf: [{ type: 'string' }, { type: 'number' }],
48
- description: 'iframe 定位(可选,仅 Extension 模式)。CSS 选择器(如 "iframe#main")或索引(如 0)。不指定则在主框架执行',
49
- },
50
- },
51
- required: ['script'],
52
- },
53
- };
11
+ import { formatErrorResponse, formatResponse, getUnifiedSession } from '../core/index.js';
54
12
  /**
55
13
  * evaluate 参数 schema
56
14
  */
57
15
  const evaluateSchema = z.object({
58
- script: z.string(),
59
- args: z.array(z.unknown()).optional(),
60
- output: z.string().optional(),
61
- timeout: z.number().optional(),
62
- mode: z.enum(['stealth', 'precise']).optional(),
63
- tabId: z.string().optional(),
64
- frame: z.union([z.string(), z.number()]).optional(),
16
+ script: z.string().describe('JavaScript 代码'),
17
+ args: z.array(z.unknown()).optional().describe('传递给脚本的参数。使用时 script 必须是函数表达式,如 "(x, y) => x + y",参数通过 IIFE 调用传入'),
18
+ output: z.string()
19
+ .optional()
20
+ .describe('输出文件路径(可选)。若指定,字符串结果直接写入原始文本,其他类型序列化为 JSON'),
21
+ timeout: z.number().optional().describe('超时(毫秒)。Extension 模式作为端到端预算(含传输);CDP 模式作为脚本执行超时'),
22
+ mode: z.enum(['stealth', 'precise']).optional().describe('执行模式。precise(默认)使用 debugger API,可绕过 CSP;stealth 使用 JS 注入,不触发调试提示但受 CSP 限制'),
23
+ tabId: z.string().optional().describe('目标 Tab ID(可选,仅 Extension 模式)。不指定则使用当前 attach 的 tab。可操作非当前 attach 的 tab。CDP 模式下忽略此参数'),
24
+ frame: z.union([z.string(), z.number()]).optional().describe('iframe 定位(可选,仅 Extension 模式)。CSS 选择器(如 "iframe#main")或索引(如 0)。不指定则在主框架执行'),
65
25
  });
66
26
  /**
67
27
  * evaluate 工具处理器
68
28
  */
69
- export async function handleEvaluate(params) {
29
+ async function handleEvaluate(args) {
70
30
  try {
71
- const args = evaluateSchema.parse(params);
72
31
  const unifiedSession = getUnifiedSession();
73
32
  return await unifiedSession.withTabId(args.tabId, async () => {
74
33
  return await unifiedSession.withFrame(args.frame, async () => {
@@ -78,17 +37,10 @@ export async function handleEvaluate(params) {
78
37
  // string 类型直接写入原始文本,其他类型 JSON 序列化
79
38
  const content = typeof result === 'string' ? result : JSON.stringify(normalizedResult, null, 2);
80
39
  await writeFile(args.output, content, 'utf-8');
81
- return {
82
- content: [
83
- {
84
- type: 'text',
85
- text: JSON.stringify({
86
- success: true,
87
- output: args.output,
88
- }),
89
- },
90
- ],
91
- };
40
+ return formatResponse({
41
+ success: true,
42
+ output: args.output,
43
+ });
92
44
  }
93
45
  const serialized = JSON.stringify({ success: true, result: normalizedResult }, null, 2);
94
46
  // 检测结果大小,超过 100KB 自动保存到文件
@@ -97,36 +49,24 @@ export async function handleEvaluate(params) {
97
49
  const tmpPath = join(tmpdir(), `mcp-chrome-eval-${randomUUID()}.${suffix}`);
98
50
  const fileContent = typeof result === 'string' ? result : JSON.stringify(normalizedResult, null, 2);
99
51
  await writeFile(tmpPath, fileContent, 'utf-8');
100
- return {
101
- content: [
102
- {
103
- type: 'text',
104
- text: JSON.stringify({
105
- success: true,
106
- autoSaved: true,
107
- path: tmpPath,
108
- size: fileContent.length,
109
- hint: '结果过大已自动保存到文件,请使用 Read 工具读取',
110
- }),
111
- },
112
- ],
113
- };
52
+ return formatResponse({
53
+ success: true,
54
+ autoSaved: true,
55
+ path: tmpPath,
56
+ size: fileContent.length,
57
+ hint: '结果过大已自动保存到文件,请使用 Read 工具读取',
58
+ });
114
59
  }
115
- return {
116
- content: [
117
- {
118
- type: 'text',
119
- text: serialized,
120
- },
121
- ],
122
- };
60
+ return formatResponse({ success: true, result: normalizedResult });
123
61
  });
124
62
  }); // withTabId
125
63
  }
126
64
  catch (error) {
127
65
  // 检测 CSP 错误,提示使用 precise 模式
128
66
  const errorMessage = error instanceof Error ? error.message : String(error);
129
- if (errorMessage.includes('CSP') || errorMessage.includes('Content Security Policy') || errorMessage.includes('unsafe-eval')) {
67
+ if (errorMessage.includes('CSP') ||
68
+ errorMessage.includes('Content Security Policy') ||
69
+ errorMessage.includes('unsafe-eval')) {
130
70
  return {
131
71
  content: [
132
72
  {
@@ -146,4 +86,13 @@ export async function handleEvaluate(params) {
146
86
  return formatErrorResponse(error);
147
87
  }
148
88
  }
89
+ /**
90
+ * 注册 evaluate 工具
91
+ */
92
+ export function registerEvaluateTool(server) {
93
+ server.registerTool('evaluate', {
94
+ description: '在页面上下文执行 JavaScript',
95
+ inputSchema: evaluateSchema,
96
+ }, (args) => handleEvaluate(args));
97
+ }
149
98
  //# sourceMappingURL=evaluate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/tools/evaluate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/tools/evaluate.ts"],"names":[],"mappings":"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"}