@pyrokine/mcp-chrome 1.6.0 → 2.0.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.
- package/README.md +101 -43
- package/dist/anti-detection/behavior.d.ts.map +1 -1
- package/dist/anti-detection/behavior.js.map +1 -1
- package/dist/anti-detection/index.d.ts +1 -1
- package/dist/anti-detection/index.d.ts.map +1 -1
- package/dist/anti-detection/index.js +1 -1
- package/dist/anti-detection/index.js.map +1 -1
- package/dist/anti-detection/injection.d.ts +6 -2
- package/dist/anti-detection/injection.d.ts.map +1 -1
- package/dist/anti-detection/injection.js +32 -79
- package/dist/anti-detection/injection.js.map +1 -1
- package/dist/cdp/client.d.ts +2 -2
- package/dist/cdp/client.d.ts.map +1 -1
- package/dist/cdp/client.js +8 -10
- package/dist/cdp/client.js.map +1 -1
- package/dist/cdp/index.d.ts.map +1 -1
- package/dist/cdp/index.js.map +1 -1
- package/dist/cdp/launcher.d.ts.map +1 -1
- package/dist/cdp/launcher.js +40 -13
- package/dist/cdp/launcher.js.map +1 -1
- package/dist/core/auto-wait.d.ts +2 -2
- package/dist/core/auto-wait.d.ts.map +1 -1
- package/dist/core/auto-wait.js +2 -2
- package/dist/core/auto-wait.js.map +1 -1
- package/dist/core/browser-driver.d.ts +307 -0
- package/dist/core/browser-driver.d.ts.map +1 -0
- package/dist/core/browser-driver.js +21 -0
- package/dist/core/browser-driver.js.map +1 -0
- package/dist/core/error-sanitizer.d.ts +25 -0
- package/dist/core/error-sanitizer.d.ts.map +1 -0
- package/dist/core/error-sanitizer.js +66 -0
- package/dist/core/error-sanitizer.js.map +1 -0
- package/dist/core/errors.d.ts +10 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +17 -4
- package/dist/core/errors.js.map +1 -1
- package/dist/core/extension-errors.d.ts +20 -0
- package/dist/core/extension-errors.d.ts.map +1 -0
- package/dist/core/extension-errors.js +40 -0
- package/dist/core/extension-errors.js.map +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/locator.d.ts +2 -2
- package/dist/core/locator.d.ts.map +1 -1
- package/dist/core/locator.js +25 -65
- package/dist/core/locator.js.map +1 -1
- package/dist/core/retry.d.ts +2 -2
- package/dist/core/retry.d.ts.map +1 -1
- package/dist/core/retry.js +2 -2
- package/dist/core/retry.js.map +1 -1
- package/dist/core/session.d.ts +153 -46
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +672 -177
- package/dist/core/session.js.map +1 -1
- package/dist/core/types.d.ts +11 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +13 -6
- package/dist/core/types.js.map +1 -1
- package/dist/core/unified-session.d.ts +69 -68
- package/dist/core/unified-session.d.ts.map +1 -1
- package/dist/core/unified-session.js +356 -615
- package/dist/core/unified-session.js.map +1 -1
- package/dist/core/utils.d.ts +7 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +33 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/extension/bridge.d.ts +80 -39
- package/dist/extension/bridge.d.ts.map +1 -1
- package/dist/extension/bridge.js +195 -65
- package/dist/extension/bridge.js.map +1 -1
- package/dist/extension/http-server.d.ts +6 -4
- package/dist/extension/http-server.d.ts.map +1 -1
- package/dist/extension/http-server.js +45 -31
- package/dist/extension/http-server.js.map +1 -1
- package/dist/extension/index.d.ts.map +1 -1
- package/dist/extension/index.js.map +1 -1
- package/dist/index.js +27 -3
- package/dist/index.js.map +1 -1
- package/dist/tools/browse.d.ts.map +1 -1
- package/dist/tools/browse.js +33 -35
- package/dist/tools/browse.js.map +1 -1
- package/dist/tools/cookies.d.ts.map +1 -1
- package/dist/tools/cookies.js +38 -16
- package/dist/tools/cookies.js.map +1 -1
- package/dist/tools/evaluate.d.ts.map +1 -1
- package/dist/tools/evaluate.js +59 -13
- package/dist/tools/evaluate.js.map +1 -1
- package/dist/tools/extract.d.ts.map +1 -1
- package/dist/tools/extract.js +263 -155
- package/dist/tools/extract.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +311 -75
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/logs.d.ts.map +1 -1
- package/dist/tools/logs.js +31 -17
- package/dist/tools/logs.js.map +1 -1
- package/dist/tools/manage.d.ts.map +1 -1
- package/dist/tools/manage.js +25 -28
- package/dist/tools/manage.js.map +1 -1
- package/dist/tools/schema.d.ts +1 -1
- package/dist/tools/schema.d.ts.map +1 -1
- package/dist/tools/schema.js +31 -55
- package/dist/tools/schema.js.map +1 -1
- package/dist/tools/wait.d.ts.map +1 -1
- package/dist/tools/wait.js +73 -22
- package/dist/tools/wait.js.map +1 -1
- package/package.json +48 -40
|
@@ -9,9 +9,12 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { EventEmitter } from 'events';
|
|
11
11
|
import { createServer } from 'http';
|
|
12
|
+
import { readFileSync } from 'node:fs';
|
|
12
13
|
import { WebSocket, WebSocketServer } from 'ws';
|
|
14
|
+
import { sanitizeErrorMessage } from '../core/error-sanitizer.js';
|
|
15
|
+
import { ExtensionDisconnectedError } from '../core/extension-errors.js';
|
|
13
16
|
import { DEFAULT_TIMEOUT } from '../core/types.js';
|
|
14
|
-
const SERVER_VERSION = '
|
|
17
|
+
const SERVER_VERSION = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf-8')).version;
|
|
15
18
|
const DEFAULT_PORT = 19222;
|
|
16
19
|
const MAX_PORT = 19299;
|
|
17
20
|
const REQUEST_TIMEOUT = DEFAULT_TIMEOUT;
|
|
@@ -41,9 +44,9 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
41
44
|
* 发送命令到 Extension
|
|
42
45
|
* @param action 操作名称
|
|
43
46
|
* @param params 操作参数
|
|
44
|
-
* @param requestTimeout
|
|
45
|
-
* 不传则使用 REQUEST_TIMEOUT (30s)
|
|
46
|
-
* ≤0
|
|
47
|
+
* @param requestTimeout 端到端预算(毫秒),包含连接等待和请求超时,
|
|
48
|
+
* 不传则使用 REQUEST_TIMEOUT (30s),
|
|
49
|
+
* ≤0 直接失败
|
|
47
50
|
*/
|
|
48
51
|
async sendCommand(action, params = {}, requestTimeout) {
|
|
49
52
|
const budget = requestTimeout ?? REQUEST_TIMEOUT;
|
|
@@ -57,15 +60,13 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
57
60
|
const connected = await this.waitForConnection(budget);
|
|
58
61
|
connectWait = Date.now() - connectStart;
|
|
59
62
|
if (!connected) {
|
|
60
|
-
throw new Error('Extension
|
|
63
|
+
throw new Error('Extension 未连接,请确保 Chrome 已打开并安装了 MCP Chrome Extension');
|
|
61
64
|
}
|
|
62
65
|
}
|
|
63
66
|
// 端到端预算:函数入口至今的总耗时从预算中扣除
|
|
64
67
|
const remaining = budget - (Date.now() - startTime);
|
|
65
68
|
if (remaining <= 0) {
|
|
66
|
-
const detail = connectWait > 0
|
|
67
|
-
? `budget ${budget}ms, connection wait ${connectWait}ms`
|
|
68
|
-
: `budget ${budget}ms`;
|
|
69
|
+
const detail = connectWait > 0 ? `budget ${budget}ms, connection wait ${connectWait}ms` : `budget ${budget}ms`;
|
|
69
70
|
throw new Error(`Request timeout for action: ${action} (${detail})`);
|
|
70
71
|
}
|
|
71
72
|
return new Promise((resolve, reject) => {
|
|
@@ -73,9 +74,10 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
73
74
|
const message = { id: messageId, action, params };
|
|
74
75
|
const timeout = setTimeout(() => {
|
|
75
76
|
this.messageHandlers.delete(messageId);
|
|
77
|
+
// 明确剩余预算 = 总预算 - 连接等待,提示当前等待是 ws 响应阶段
|
|
76
78
|
const detail = connectWait > 0
|
|
77
|
-
? `
|
|
78
|
-
: `${
|
|
79
|
+
? `remaining ${remaining}ms after connection wait ${connectWait}ms (total budget ${budget}ms)`
|
|
80
|
+
: `${remaining}ms`;
|
|
79
81
|
reject(new Error(`Request timeout for action: ${action} (${detail})`));
|
|
80
82
|
}, remaining);
|
|
81
83
|
this.messageHandlers.set(messageId, { resolve, reject, timeout });
|
|
@@ -85,9 +87,7 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
85
87
|
catch (err) {
|
|
86
88
|
clearTimeout(timeout);
|
|
87
89
|
this.messageHandlers.delete(messageId);
|
|
88
|
-
reject(new Error(`Failed to send command ${action}: ${err instanceof Error ?
|
|
89
|
-
err.message :
|
|
90
|
-
'Unknown error'}`));
|
|
90
|
+
reject(new Error(`Failed to send command ${action}: ${err instanceof Error ? err.message : 'Unknown error'}`));
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
}
|
|
@@ -123,7 +123,7 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
123
123
|
this.rejectPendingHandlers('Server stopped');
|
|
124
124
|
this.clientSocket?.close();
|
|
125
125
|
this.wss?.close();
|
|
126
|
-
return new Promise(resolve => {
|
|
126
|
+
return new Promise((resolve) => {
|
|
127
127
|
if (this.server) {
|
|
128
128
|
this.server.close(() => resolve());
|
|
129
129
|
}
|
|
@@ -136,17 +136,23 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
136
136
|
* 绑定成功后初始化 WebSocket Server
|
|
137
137
|
*/
|
|
138
138
|
setupWebSocket() {
|
|
139
|
-
|
|
140
|
-
this.wss
|
|
141
|
-
|
|
142
|
-
// 无 Origin 的连接(如 Extension Service Worker、curl 等本地工具)放行,
|
|
143
|
-
// 安全性由 listen 绑定 127.0.0.1 保证(仅本机进程可达)。
|
|
139
|
+
// 用 noServer 模式手动处理 upgrade,以便在握手前校验 Origin
|
|
140
|
+
this.wss = new WebSocketServer({ noServer: true });
|
|
141
|
+
this.server.on('upgrade', (req, socket, head) => {
|
|
144
142
|
const origin = req.headers.origin;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
143
|
+
// Origin 严校验:必须是 chrome-extension:// 来源(拒绝无 Origin 的连接,
|
|
144
|
+
// 因为合规的 Extension Service Worker 在握手时会带 Origin 头)
|
|
145
|
+
if (!origin || !origin.startsWith('chrome-extension://')) {
|
|
146
|
+
console.error(`[HTTP] Rejected WebSocket upgrade: invalid origin "${origin ?? '<none>'}"`);
|
|
147
|
+
socket.write('HTTP/1.1 403 Forbidden\r\n\r\n');
|
|
148
|
+
socket.destroy();
|
|
148
149
|
return;
|
|
149
150
|
}
|
|
151
|
+
this.wss.handleUpgrade(req, socket, head, (ws) => {
|
|
152
|
+
this.wss.emit('connection', ws, req);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
this.wss.on('connection', (ws) => {
|
|
150
156
|
console.error('[HTTP] Extension connected');
|
|
151
157
|
// 只允许一个客户端连接,关闭旧的
|
|
152
158
|
if (this.clientSocket) {
|
|
@@ -211,12 +217,12 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
211
217
|
return;
|
|
212
218
|
}
|
|
213
219
|
const url = req.url ?? '/';
|
|
214
|
-
if (url
|
|
220
|
+
if (url.startsWith('/api/health')) {
|
|
215
221
|
res.writeHead(200);
|
|
216
222
|
res.end(JSON.stringify({ status: 'ok', port: this.port }));
|
|
217
223
|
return;
|
|
218
224
|
}
|
|
219
|
-
if (url
|
|
225
|
+
if (url.startsWith('/api/info')) {
|
|
220
226
|
res.writeHead(200);
|
|
221
227
|
res.end(JSON.stringify({
|
|
222
228
|
serverVersion: SERVER_VERSION,
|
|
@@ -240,10 +246,11 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
240
246
|
// 版本握手
|
|
241
247
|
if (message.type === 'hello') {
|
|
242
248
|
this.extensionVersion = message.version ?? null;
|
|
243
|
-
const serverMajor = SERVER_VERSION.split('.')
|
|
244
|
-
const extMajor = (message.version ?? '0').split('.')
|
|
249
|
+
const [serverMajor] = SERVER_VERSION.split('.').map(Number);
|
|
250
|
+
const [extMajor] = (message.version ?? '0.0').split('.').map(Number);
|
|
245
251
|
if (serverMajor !== extMajor) {
|
|
246
|
-
console.error(`[HTTP] ⚠ Version mismatch: Server ${SERVER_VERSION}, Extension ${message.version}
|
|
252
|
+
console.error(`[HTTP] ⚠ Version mismatch: Server ${SERVER_VERSION}, Extension ${message.version}, ` +
|
|
253
|
+
'major version differs — please update to a compatible version,');
|
|
247
254
|
}
|
|
248
255
|
else {
|
|
249
256
|
console.error(`[HTTP] Extension version: ${message.version}`);
|
|
@@ -259,7 +266,8 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
259
266
|
handler.resolve(message.data);
|
|
260
267
|
}
|
|
261
268
|
else {
|
|
262
|
-
|
|
269
|
+
// 对 Extension 上报的错误信息再做一层服务端脱敏(剥离主机绝对路径残留)
|
|
270
|
+
handler.reject(new Error(sanitizeErrorMessage(message.error ?? 'Unknown error')));
|
|
263
271
|
}
|
|
264
272
|
}
|
|
265
273
|
}
|
|
@@ -270,7 +278,7 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
270
278
|
/**
|
|
271
279
|
* 启动心跳:定期发送 ping,检测 pong 响应
|
|
272
280
|
* 如果 Extension 的 Service Worker 被 Chrome 杀死,TCP 连接可能不会立即关闭,
|
|
273
|
-
* 心跳机制能及时检测到这种"半死"
|
|
281
|
+
* 心跳机制能及时检测到这种"半死"连接并清理
|
|
274
282
|
*/
|
|
275
283
|
startHeartbeat() {
|
|
276
284
|
this.stopHeartbeat();
|
|
@@ -304,16 +312,22 @@ export class ExtensionHttpServer extends EventEmitter {
|
|
|
304
312
|
}
|
|
305
313
|
/**
|
|
306
314
|
* 立即 reject 所有 pending 请求并清理
|
|
315
|
+
*
|
|
316
|
+
* Extension 断开类原因抛 typed Error,便于上层 instanceof 判断而无需字符串匹配
|
|
307
317
|
*/
|
|
308
318
|
rejectPendingHandlers(reason) {
|
|
319
|
+
const isDisconnect = reason.includes('Extension disconnected') ||
|
|
320
|
+
reason.includes('Connection replaced') ||
|
|
321
|
+
reason.includes('Server stopped');
|
|
309
322
|
for (const [, handler] of this.messageHandlers) {
|
|
310
323
|
clearTimeout(handler.timeout);
|
|
311
|
-
|
|
324
|
+
const err = isDisconnect ? new ExtensionDisconnectedError(reason) : new Error(reason);
|
|
325
|
+
handler.reject(err);
|
|
312
326
|
}
|
|
313
327
|
this.messageHandlers.clear();
|
|
314
328
|
}
|
|
315
329
|
generateId() {
|
|
316
|
-
return
|
|
330
|
+
return crypto.randomUUID();
|
|
317
331
|
}
|
|
318
332
|
}
|
|
319
333
|
//# sourceMappingURL=http-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../src/extension/http-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../src/extension/http-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,YAAY,EAA2C,MAAM,MAAM,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,cAAc,GAChB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CACnF,CAAC,OAAO,CAAA;AACT,MAAM,YAAY,GAAG,KAAK,CAAA;AAC1B,MAAM,QAAQ,GAAG,KAAK,CAAA;AACtB,MAAM,eAAe,GAAG,eAAe,CAAA;AACvC,MAAM,kBAAkB,GAAG,KAAK,CAAA,CAAC,mCAAmC;AAapE,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IAU7B;IATZ,MAAM,GAAkB,IAAI,CAAA;IAC5B,GAAG,GAA2B,IAAI,CAAA;IAClC,YAAY,GAAqB,IAAI,CAAA;IACrC,IAAI,GAAG,CAAC,CAAA;IACR,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAA;IACnD,gBAAgB,GAAkB,IAAI,CAAA;IACtC,iBAAiB,GAA0B,IAAI,CAAA;IAC/C,YAAY,GAAG,KAAK,CAAA;IAE5B,YAAoB,UAA6B,EAAE;QAC/C,KAAK,EAAE,CAAA;QADS,YAAO,GAAP,OAAO,CAAwB;IAEnD,CAAC;IAED,KAAK,CAAC,KAAK;QACP,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;YAE1E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,YAAY,CAAA;YAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,SAAkB,EAAE,EAAE,cAAuB;QAC3E,MAAM,MAAM,GAAG,cAAc,IAAI,eAAe,CAAA;QAChD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,YAAY,MAAM,KAAK,CAAC,CAAA;QACjF,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,IAAI,WAAW,GAAG,CAAC,CAAA;QAEnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;YACtD,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAA;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;YAC5E,CAAC;QACL,CAAC;QAED,yBAAyB;QACzB,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAA;QACnD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACjB,MAAM,MAAM,GACR,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,uBAAuB,WAAW,IAAI,CAAC,CAAC,CAAC,UAAU,MAAM,IAAI,CAAA;YACnG,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,KAAK,MAAM,GAAG,CAAC,CAAA;QACxE,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;YACnC,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;YAEjD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBACtC,sCAAsC;gBACtC,MAAM,MAAM,GACR,WAAW,GAAG,CAAC;oBACX,CAAC,CAAC,aAAa,SAAS,4BAA4B,WAAW,oBAAoB,MAAM,KAAK;oBAC9F,CAAC,CAAC,GAAG,SAAS,IAAI,CAAA;gBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC,CAAA;YAC1E,CAAC,EAAE,SAAS,CAAC,CAAA;YAEb,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YAEjE,IAAI,CAAC;gBACD,IAAI,CAAC,YAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBACtC,MAAM,CACF,IAAI,KAAK,CACL,0BAA0B,MAAM,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC9F,CACJ,CAAA;YACL,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAO,GAAG,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACpC,IAAI,KAAiC,CAAA;YAErC,MAAM,WAAW,GAAG,GAAG,EAAE;gBACrB,IAAI,KAAK,EAAE,CAAC;oBACR,YAAY,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAA;YACjB,CAAC,CAAA;YAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBACd,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACpB,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;oBAC7C,OAAO,CAAC,KAAK,CAAC,CAAA;gBAClB,CAAC,EAAE,OAAO,CAAC,CAAA;YACf,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,YAAY,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,CAAA;IAC3D,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAA;QAE5C,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAA;QAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACJ,OAAO,EAAE,CAAA;YACb,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACK,cAAc;QAClB,4CAA4C;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAElD,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;YAEjC,wDAAwD;YACxD,kDAAkD;YAClD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,KAAK,CAAC,sDAAsD,MAAM,IAAI,QAAQ,GAAG,CAAC,CAAA;gBAC1F,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;gBAC9C,MAAM,CAAC,OAAO,EAAE,CAAA;gBAChB,OAAM;YACV,CAAC;YAED,IAAI,CAAC,GAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC9C,IAAI,CAAC,GAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;YACzC,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;YAC7B,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAE3C,kBAAkB;YAClB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,2CAA2C;gBAC3C,IAAI,CAAC,qBAAqB,CAAC,mCAAmC,CAAC,CAAA;gBAC/D,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;YAC7B,CAAC;YAED,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;YACtB,IAAI,CAAC,cAAc,EAAE,CAAA;YACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAEtB,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YACvC,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAChB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBAC9C,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;oBAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;oBACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;oBAC5B,IAAI,CAAC,aAAa,EAAE,CAAA;oBACpB,mCAAmC;oBACnC,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAA;oBACpD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAC7B,CAAC;YACL,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3D,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,SAAS,CAAC,IAAY,EAAE,OAAmB,EAAE,MAA4B;QAC7E,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;YACtD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;gBAClF,OAAO,CAAC,KAAK,CAAC,eAAe,IAAI,2BAA2B,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;gBAC1E,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;YAC7C,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,GAAG,CAAC,CAAA;YACf,CAAC;QACL,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;YACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,cAAc,EAAE,CAAA;YACrB,OAAO,CAAC,KAAK,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAA;YACpE,OAAO,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,iBAAiB,CAAC,GAAoB,EAAE,GAAmB;QAC/D,yDAAyD;QACzD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;QACjC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iDAAiD,EAAE,CAAC,CAAC,CAAA;YACrF,OAAM;QACV,CAAC;QAED,yBAAyB;QACzB,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,IAAI,GAAG,CAAC,CAAA;QAC3D,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAA;QAC7D,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;QAEjD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAClB,GAAG,CAAC,GAAG,EAAE,CAAA;YACT,OAAM;QACV,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAA;QAE1B,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAC1D,OAAM;QACV,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAClB,GAAG,CAAC,GAAG,CACH,IAAI,CAAC,SAAS,CAAC;gBACX,aAAa,EAAE,cAAc;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE;aAChC,CAAC,CACL,CAAA;YACD,OAAM;QACV,CAAC;QAED,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;IACnD,CAAC;IAEO,aAAa,CAAC,IAAY;QAC9B,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAO9B,CAAA;YAED,OAAO;YACP,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;gBACxB,OAAM;YACV,CAAC;YAED,OAAO;YACP,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAA;gBAC/C,MAAM,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAC3D,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBACpE,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,CACT,qCAAqC,cAAc,eAAe,OAAO,CAAC,OAAO,IAAI;wBACjF,gEAAgE,CACvE,CAAA;gBACL,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,6BAA6B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;gBACjE,CAAC;gBACD,OAAM;YACV,CAAC;YAED,OAAO;YACP,IAAI,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAE,CAAA;gBACrD,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAEvC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACjC,CAAC;qBAAM,CAAC;oBACJ,2CAA2C;oBAC3C,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,CAAA;gBACrF,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;QACzD,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,cAAc;QAClB,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA,CAAC,SAAS;QAElC,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACxE,IAAI,CAAC,aAAa,EAAE,CAAA;gBACpB,OAAM;YACV,CAAC;YAED,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;gBAClE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAA,CAAC,YAAY;gBAC1C,OAAM;YACV,CAAC;YAED,YAAY;YACZ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;YACzB,IAAI,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;YACzD,CAAC;QACL,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAC1B,CAAC;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;QACjC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,MAAc;QACxC,MAAM,YAAY,GACd,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACzC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACtC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;QACrC,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;YACrF,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAChC,CAAC;IAEO,UAAU;QACd,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAC9B,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -12,13 +12,15 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
14
14
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
15
|
+
import { readFileSync } from 'node:fs';
|
|
15
16
|
import { getUnifiedSession } from './core/index.js';
|
|
16
17
|
import { registerBrowseTool, registerCookiesTool, registerEvaluateTool, registerExtractTool, registerInputTool, registerLogsTool, registerManageTool, registerWaitTool, } from './tools/index.js';
|
|
18
|
+
const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));
|
|
17
19
|
/**
|
|
18
20
|
* 创建 MCP Server
|
|
19
21
|
*/
|
|
20
22
|
function createServer() {
|
|
21
|
-
const server = new McpServer({ name: 'mcp-chrome', version:
|
|
23
|
+
const server = new McpServer({ name: 'mcp-chrome', version: pkg.version }, { capabilities: { tools: {} } });
|
|
22
24
|
registerBrowseTool(server);
|
|
23
25
|
registerInputTool(server);
|
|
24
26
|
registerExtractTool(server);
|
|
@@ -46,17 +48,39 @@ async function cleanup() {
|
|
|
46
48
|
*/
|
|
47
49
|
async function main() {
|
|
48
50
|
// 全局错误兜底:防止未捕获的异常/rejection 杀死进程
|
|
51
|
+
// 检测 EPIPE:父进程(Claude Code)退出后 stdio 断开,写日志会持续 EPIPE 形成死循环
|
|
49
52
|
process.on('uncaughtException', (error) => {
|
|
50
|
-
|
|
53
|
+
if (error.code === 'EPIPE' || error.code === 'ERR_STREAM_DESTROYED') {
|
|
54
|
+
process.exit(0);
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
console.error('[MCP] Uncaught exception:', error);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
51
62
|
});
|
|
52
63
|
process.on('unhandledRejection', (reason) => {
|
|
53
|
-
|
|
64
|
+
try {
|
|
65
|
+
console.error('[MCP] Unhandled rejection:', reason);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
54
70
|
});
|
|
55
71
|
// 启动 Extension HTTP/WebSocket 服务器
|
|
56
72
|
await getUnifiedSession().startExtensionServer();
|
|
57
73
|
const server = createServer();
|
|
58
74
|
const transport = new StdioServerTransport();
|
|
59
75
|
await server.connect(transport);
|
|
76
|
+
// 父进程退出时 stdin 关闭,主动退出防止成为孤儿进程
|
|
77
|
+
process.stdin.on('end', async () => {
|
|
78
|
+
await cleanup();
|
|
79
|
+
process.exit(0);
|
|
80
|
+
});
|
|
81
|
+
// stdout/stderr 写入失败(EPIPE)时直接退出
|
|
82
|
+
process.stdout.on('error', () => process.exit(0));
|
|
83
|
+
process.stderr.on('error', () => process.exit(0));
|
|
60
84
|
// 优雅退出
|
|
61
85
|
process.on('SIGINT', async () => {
|
|
62
86
|
await cleanup();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../src/tools/browse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../src/tools/browse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAoUxE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAS1D"}
|
package/dist/tools/browse.js
CHANGED
|
@@ -18,31 +18,24 @@ import { DEFAULT_TIMEOUT } from '../core/types.js';
|
|
|
18
18
|
* browse 参数 schema
|
|
19
19
|
*/
|
|
20
20
|
const browseSchema = z.object({
|
|
21
|
-
action: z
|
|
22
|
-
'launch', 'connect', 'list', 'attach', 'open',
|
|
23
|
-
'
|
|
24
|
-
|
|
25
|
-
executablePath: z.string()
|
|
26
|
-
.optional()
|
|
27
|
-
.describe('Chrome 可执行文件路径(launch)。不指定则自动查找'),
|
|
21
|
+
action: z
|
|
22
|
+
.enum(['launch', 'connect', 'list', 'attach', 'open', 'back', 'forward', 'refresh', 'close'])
|
|
23
|
+
.describe('操作类型'),
|
|
24
|
+
executablePath: z.string().optional().describe('Chrome 可执行文件路径(launch),不指定则自动查找'),
|
|
28
25
|
incognito: z.boolean().optional().describe('是否以隐身模式启动(launch)'),
|
|
29
|
-
headless: z.boolean()
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
.optional()
|
|
34
|
-
.describe('用户数据目录(launch)。指定后可复用登录状态'),
|
|
35
|
-
stealth: z.enum(['off', 'safe', 'aggressive']).optional()
|
|
36
|
-
.describe('反检测模式(launch/connect)。off=关闭,safe=最小改动(默认),aggressive=完整伪装'),
|
|
37
|
-
port: z.coerce.number()
|
|
26
|
+
headless: z.boolean().optional().describe('是否无头模式(launch),注意:无头模式易被检测'),
|
|
27
|
+
userDataDir: z.string().optional().describe('用户数据目录(launch),指定后可复用登录状态'),
|
|
28
|
+
stealth: z
|
|
29
|
+
.enum(['off', 'safe', 'aggressive'])
|
|
38
30
|
.optional()
|
|
39
|
-
.describe('
|
|
31
|
+
.describe('反检测模式(launch/connect),off=关闭,safe=最小改动(默认),aggressive=完整伪装'),
|
|
32
|
+
port: z.coerce.number().optional().describe('调试端口(launch/connect),launch 时不指定则使用随机端口'),
|
|
40
33
|
host: z.string().optional().describe('调试主机(connect)'),
|
|
41
|
-
targetId: z
|
|
42
|
-
.
|
|
43
|
-
activate: z.boolean()
|
|
34
|
+
targetId: z
|
|
35
|
+
.string()
|
|
44
36
|
.optional()
|
|
45
|
-
.describe('
|
|
37
|
+
.describe('目标 ID(attach),从 list 结果中获取,Extension 模式为数字 Tab ID,CDP 模式为 WebSocket target ID,仅在当前 mode 下有效'),
|
|
38
|
+
activate: z.boolean().optional().describe('是否激活 Tab(attach),默认 false 只设置操作目标不切到前台'),
|
|
46
39
|
url: z.string().optional().describe('目标 URL(open)'),
|
|
47
40
|
wait: z.enum(['load', 'domcontentloaded', 'networkidle']).optional().describe('等待条件(open/refresh)'),
|
|
48
41
|
ignoreCache: z.boolean().optional().describe('刷新时是否忽略缓存(refresh)'),
|
|
@@ -113,10 +106,8 @@ async function handleBrowse(args) {
|
|
|
113
106
|
mode: 'extension',
|
|
114
107
|
connected,
|
|
115
108
|
note: connected
|
|
116
|
-
?
|
|
117
|
-
|
|
118
|
-
:
|
|
119
|
-
'Extension 服务器已启动但未连接,请确保 Chrome 已运行且安装了 MCP Chrome 扩展',
|
|
109
|
+
? 'Extension 模式已连接,无需 connect'
|
|
110
|
+
: 'Extension 服务器已启动但未连接,请确保 Chrome 已运行且安装了 MCP Chrome 扩展',
|
|
120
111
|
});
|
|
121
112
|
}
|
|
122
113
|
if (!args.port) {
|
|
@@ -161,7 +152,7 @@ async function handleBrowse(args) {
|
|
|
161
152
|
};
|
|
162
153
|
// 当没有连接时,提供安装提示
|
|
163
154
|
if (mode === 'none') {
|
|
164
|
-
result.note = '
|
|
155
|
+
result.note = '未连接浏览器,请确保 Chrome 已运行且 MCP Chrome 扩展已安装';
|
|
165
156
|
}
|
|
166
157
|
return formatResponse(result);
|
|
167
158
|
}
|
|
@@ -272,23 +263,30 @@ async function handleBrowse(args) {
|
|
|
272
263
|
});
|
|
273
264
|
}
|
|
274
265
|
case 'close': {
|
|
275
|
-
//
|
|
266
|
+
// Extension 模式:关闭当前 attach 的 tab(与 manage closePage 行为一致)
|
|
267
|
+
// CDP 模式:关闭浏览器会话
|
|
276
268
|
const currentMode = unifiedSession.getMode();
|
|
277
|
-
if (currentMode
|
|
269
|
+
if (currentMode === 'extension') {
|
|
270
|
+
await unifiedSession.closePage();
|
|
271
|
+
return formatResponse({
|
|
272
|
+
success: true,
|
|
273
|
+
action: 'close',
|
|
274
|
+
mode: 'extension',
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
if (currentMode === 'cdp') {
|
|
278
|
+
await cdpSession.close();
|
|
278
279
|
return formatResponse({
|
|
279
280
|
success: true,
|
|
280
281
|
action: 'close',
|
|
281
|
-
mode:
|
|
282
|
-
note: currentMode === 'extension'
|
|
283
|
-
? 'Extension 模式:会话已结束,浏览器保持打开'
|
|
284
|
-
: '无活跃连接',
|
|
282
|
+
mode: 'cdp',
|
|
285
283
|
});
|
|
286
284
|
}
|
|
287
|
-
await cdpSession.close();
|
|
288
285
|
return formatResponse({
|
|
289
286
|
success: true,
|
|
290
287
|
action: 'close',
|
|
291
|
-
mode:
|
|
288
|
+
mode: currentMode,
|
|
289
|
+
note: '无活跃连接',
|
|
292
290
|
});
|
|
293
291
|
}
|
|
294
292
|
default:
|
|
@@ -317,7 +315,7 @@ async function handleBrowse(args) {
|
|
|
317
315
|
*/
|
|
318
316
|
export function registerBrowseTool(server) {
|
|
319
317
|
server.registerTool('browse', {
|
|
320
|
-
description:
|
|
318
|
+
description: `浏览器管理与导航:启动、连接、列出页面、打开 URL、导航`,
|
|
321
319
|
inputSchema: browseSchema,
|
|
322
320
|
}, (args) => handleBrowse(args));
|
|
323
321
|
}
|
package/dist/tools/browse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse.js","sourceRoot":"","sources":["../../src/tools/browse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"browse.js","sourceRoot":"","sources":["../../src/tools/browse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/tools/cookies.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/tools/cookies.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAoRxE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAS3D"}
|
package/dist/tools/cookies.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* - clear: 清空 cookies(支持按域名过滤)
|
|
9
9
|
*/
|
|
10
10
|
import { writeFile } from 'fs/promises';
|
|
11
|
+
import { resolve, sep } from 'path';
|
|
11
12
|
import { z } from 'zod';
|
|
12
13
|
import { formatErrorResponse, formatResponse, getUnifiedSession } from '../core/index.js';
|
|
13
14
|
/**
|
|
@@ -16,22 +17,16 @@ import { formatErrorResponse, formatResponse, getUnifiedSession } from '../core/
|
|
|
16
17
|
const cookiesSchema = z.object({
|
|
17
18
|
action: z.enum(['get', 'set', 'delete', 'clear']).describe('操作类型'),
|
|
18
19
|
url: z.string().optional().describe('URL 过滤(get/clear/set/delete)'),
|
|
19
|
-
name: z.string().optional().describe('Cookie 名称(get/set/delete
|
|
20
|
+
name: z.string().optional().describe('Cookie 名称(get/set/delete 必填;clear 可作过滤)'),
|
|
20
21
|
domain: z.string().optional().describe('域名过滤(get/clear)'),
|
|
21
22
|
path: z.string().optional().describe('路径过滤(get)或设置路径(set)'),
|
|
22
|
-
secure: z.boolean()
|
|
23
|
-
.optional()
|
|
24
|
-
.describe('只返回 secure cookies(get)或设置 secure 属性(set)'),
|
|
23
|
+
secure: z.boolean().optional().describe('只返回 secure cookies(get)或设置 secure 属性(set)'),
|
|
25
24
|
session: z.boolean().optional().describe('只返回会话 cookies(get)'),
|
|
26
25
|
value: z.string().optional().describe('Cookie 值(set)'),
|
|
27
26
|
httpOnly: z.boolean().optional().describe('httpOnly 属性(set)'),
|
|
28
|
-
sameSite: z.enum(['Strict', 'Lax', 'None'])
|
|
29
|
-
.optional()
|
|
30
|
-
.describe('SameSite 属性(set)'),
|
|
27
|
+
sameSite: z.enum(['Strict', 'Lax', 'None']).optional().describe('SameSite 属性(set)'),
|
|
31
28
|
expirationDate: z.number().optional().describe('过期时间戳(set)'),
|
|
32
|
-
output: z.string()
|
|
33
|
-
.optional()
|
|
34
|
-
.describe('输出文件路径(get)。若指定,cookies 导出为 JSON 文件'),
|
|
29
|
+
output: z.string().optional().describe('输出文件路径(get),若指定 cookies 导出为 JSON 文件'),
|
|
35
30
|
});
|
|
36
31
|
/**
|
|
37
32
|
* cookies 工具处理器
|
|
@@ -61,13 +56,18 @@ async function handleCookies(args) {
|
|
|
61
56
|
if (args.session !== undefined) {
|
|
62
57
|
filter.session = args.session;
|
|
63
58
|
}
|
|
64
|
-
const cookies = await unifiedSession.getCookies(filter);
|
|
59
|
+
const cookies = (await unifiedSession.getCookies(filter));
|
|
65
60
|
if (args.output) {
|
|
66
|
-
|
|
61
|
+
const cwd = process.cwd();
|
|
62
|
+
const safeOutput = resolve(cwd, args.output);
|
|
63
|
+
if (!safeOutput.startsWith(cwd + sep) && safeOutput !== cwd) {
|
|
64
|
+
return formatErrorResponse(new Error(`output 路径超出工作目录范围: ${args.output}`));
|
|
65
|
+
}
|
|
66
|
+
await writeFile(safeOutput, JSON.stringify(cookies, null, 2), 'utf-8');
|
|
67
67
|
return formatResponse({
|
|
68
68
|
success: true,
|
|
69
69
|
action: 'get',
|
|
70
|
-
output:
|
|
70
|
+
output: safeOutput,
|
|
71
71
|
count: cookies.length,
|
|
72
72
|
});
|
|
73
73
|
}
|
|
@@ -127,7 +127,9 @@ async function handleCookies(args) {
|
|
|
127
127
|
isError: true,
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
|
-
await unifiedSession.setCookie(
|
|
130
|
+
await unifiedSession.setCookie({
|
|
131
|
+
name: args.name,
|
|
132
|
+
value: args.value,
|
|
131
133
|
url: args.url,
|
|
132
134
|
domain: args.domain,
|
|
133
135
|
path: args.path,
|
|
@@ -185,6 +187,23 @@ async function handleCookies(args) {
|
|
|
185
187
|
});
|
|
186
188
|
}
|
|
187
189
|
case 'clear': {
|
|
190
|
+
// 强制过滤:禁止无参数清全站(避免误删用户登录态)
|
|
191
|
+
if (!args.url && !args.domain && !args.name) {
|
|
192
|
+
return {
|
|
193
|
+
content: [
|
|
194
|
+
{
|
|
195
|
+
type: 'text',
|
|
196
|
+
text: JSON.stringify({
|
|
197
|
+
error: {
|
|
198
|
+
code: 'INVALID_ARGUMENT',
|
|
199
|
+
message: 'cookies action=clear 必须带 name/domain/url 至少一个过滤参数(避免误删用户登录态)',
|
|
200
|
+
},
|
|
201
|
+
}),
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
isError: true,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
188
207
|
// 构建过滤条件
|
|
189
208
|
const filter = {};
|
|
190
209
|
if (args.url) {
|
|
@@ -193,11 +212,14 @@ async function handleCookies(args) {
|
|
|
193
212
|
if (args.domain) {
|
|
194
213
|
filter.domain = args.domain;
|
|
195
214
|
}
|
|
196
|
-
|
|
215
|
+
if (args.name) {
|
|
216
|
+
filter.name = args.name;
|
|
217
|
+
}
|
|
218
|
+
const result = await unifiedSession.clearCookies(filter);
|
|
197
219
|
return formatResponse({
|
|
198
220
|
success: true,
|
|
199
221
|
action: 'clear',
|
|
200
|
-
filter
|
|
222
|
+
filter,
|
|
201
223
|
count: result.count,
|
|
202
224
|
});
|
|
203
225
|
}
|