browser-debug-mcp-bridge 1.1.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 (31) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +101 -0
  3. package/apps/mcp-server/dist/db/connection.js +42 -0
  4. package/apps/mcp-server/dist/db/connection.js.map +1 -0
  5. package/apps/mcp-server/dist/db/error-fingerprints.js +21 -0
  6. package/apps/mcp-server/dist/db/error-fingerprints.js.map +1 -0
  7. package/apps/mcp-server/dist/db/events-repository.js +109 -0
  8. package/apps/mcp-server/dist/db/events-repository.js.map +1 -0
  9. package/apps/mcp-server/dist/db/index.js +4 -0
  10. package/apps/mcp-server/dist/db/index.js.map +1 -0
  11. package/apps/mcp-server/dist/db/migrations.js +101 -0
  12. package/apps/mcp-server/dist/db/migrations.js.map +1 -0
  13. package/apps/mcp-server/dist/db/schema.js +157 -0
  14. package/apps/mcp-server/dist/db/schema.js.map +1 -0
  15. package/apps/mcp-server/dist/main.js +384 -0
  16. package/apps/mcp-server/dist/main.js.map +1 -0
  17. package/apps/mcp-server/dist/mcp/server.js +1619 -0
  18. package/apps/mcp-server/dist/mcp/server.js.map +1 -0
  19. package/apps/mcp-server/dist/mcp-bridge.js +55 -0
  20. package/apps/mcp-server/dist/mcp-bridge.js.map +1 -0
  21. package/apps/mcp-server/dist/retention.js +841 -0
  22. package/apps/mcp-server/dist/retention.js.map +1 -0
  23. package/apps/mcp-server/dist/websocket/index.js +3 -0
  24. package/apps/mcp-server/dist/websocket/index.js.map +1 -0
  25. package/apps/mcp-server/dist/websocket/messages.js +150 -0
  26. package/apps/mcp-server/dist/websocket/messages.js.map +1 -0
  27. package/apps/mcp-server/dist/websocket/websocket-server.js +302 -0
  28. package/apps/mcp-server/dist/websocket/websocket-server.js.map +1 -0
  29. package/apps/mcp-server/package.json +28 -0
  30. package/package.json +88 -0
  31. package/scripts/mcp-start.cjs +229 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retention.js","sourceRoot":"","sources":["../src/retention.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './messages';
2
+ export * from './websocket-server';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,150 @@
1
+ import { z } from 'zod';
2
+ export const EventTypeSchema = z.enum([
3
+ 'navigation',
4
+ 'console',
5
+ 'error',
6
+ 'network',
7
+ 'click',
8
+ 'scroll',
9
+ 'input',
10
+ 'change',
11
+ 'submit',
12
+ 'focus',
13
+ 'blur',
14
+ 'keydown',
15
+ 'ui_snapshot',
16
+ 'custom',
17
+ ]);
18
+ export const WebSocketMessageTypeSchema = z.enum([
19
+ 'ping',
20
+ 'pong',
21
+ 'event',
22
+ 'event_batch',
23
+ 'session_start',
24
+ 'session_end',
25
+ 'capture_command',
26
+ 'capture_result',
27
+ 'error',
28
+ ]);
29
+ export const CaptureCommandSchema = z.enum([
30
+ 'CAPTURE_DOM_SUBTREE',
31
+ 'CAPTURE_DOM_DOCUMENT',
32
+ 'CAPTURE_COMPUTED_STYLES',
33
+ 'CAPTURE_LAYOUT_METRICS',
34
+ 'CAPTURE_UI_SNAPSHOT',
35
+ ]);
36
+ export const BaseWebSocketMessageSchema = z.object({
37
+ type: WebSocketMessageTypeSchema,
38
+ timestamp: z.number().optional(),
39
+ });
40
+ export const PingMessageSchema = BaseWebSocketMessageSchema.extend({
41
+ type: z.literal('ping'),
42
+ });
43
+ export const PongMessageSchema = BaseWebSocketMessageSchema.extend({
44
+ type: z.literal('pong'),
45
+ });
46
+ export const EventMessageSchema = BaseWebSocketMessageSchema.extend({
47
+ type: z.literal('event'),
48
+ sessionId: z.string(),
49
+ eventType: EventTypeSchema,
50
+ data: z.record(z.string(), z.unknown()),
51
+ });
52
+ export const EventBatchMessageSchema = BaseWebSocketMessageSchema.extend({
53
+ type: z.literal('event_batch'),
54
+ sessionId: z.string(),
55
+ events: z.array(z.object({
56
+ eventType: EventTypeSchema,
57
+ data: z.record(z.string(), z.unknown()),
58
+ timestamp: z.number().optional(),
59
+ })).min(1).max(100),
60
+ });
61
+ export const SessionStartMessageSchema = BaseWebSocketMessageSchema.extend({
62
+ type: z.literal('session_start'),
63
+ sessionId: z.string(),
64
+ url: z.string(),
65
+ tabId: z.number().optional(),
66
+ windowId: z.number().optional(),
67
+ userAgent: z.string().optional(),
68
+ viewport: z.object({
69
+ width: z.number(),
70
+ height: z.number(),
71
+ }).optional(),
72
+ dpr: z.number().optional(),
73
+ safeMode: z.boolean().optional().default(false),
74
+ });
75
+ export const SessionEndMessageSchema = BaseWebSocketMessageSchema.extend({
76
+ type: z.literal('session_end'),
77
+ sessionId: z.string(),
78
+ });
79
+ export const CaptureCommandMessageSchema = BaseWebSocketMessageSchema.extend({
80
+ type: z.literal('capture_command'),
81
+ commandId: z.string(),
82
+ sessionId: z.string(),
83
+ command: CaptureCommandSchema,
84
+ payload: z.record(z.string(), z.unknown()).default({}),
85
+ timeoutMs: z.number().int().min(100).max(30000).optional(),
86
+ });
87
+ export const CaptureResultMessageSchema = BaseWebSocketMessageSchema.extend({
88
+ type: z.literal('capture_result'),
89
+ commandId: z.string(),
90
+ sessionId: z.string(),
91
+ ok: z.boolean(),
92
+ payload: z.record(z.string(), z.unknown()).optional(),
93
+ truncated: z.boolean().optional(),
94
+ error: z.string().optional(),
95
+ });
96
+ export const ErrorMessageSchema = BaseWebSocketMessageSchema.extend({
97
+ type: z.literal('error'),
98
+ error: z.string(),
99
+ code: z.string().optional(),
100
+ });
101
+ export const WebSocketMessageSchema = z.discriminatedUnion('type', [
102
+ PingMessageSchema,
103
+ PongMessageSchema,
104
+ EventMessageSchema,
105
+ EventBatchMessageSchema,
106
+ SessionStartMessageSchema,
107
+ SessionEndMessageSchema,
108
+ CaptureCommandMessageSchema,
109
+ CaptureResultMessageSchema,
110
+ ErrorMessageSchema,
111
+ ]);
112
+ export function parseMessage(data) {
113
+ try {
114
+ const parsed = JSON.parse(data);
115
+ const result = WebSocketMessageSchema.safeParse(parsed);
116
+ if (result.success) {
117
+ return result.data;
118
+ }
119
+ return null;
120
+ }
121
+ catch {
122
+ return null;
123
+ }
124
+ }
125
+ export function createPongMessage() {
126
+ return {
127
+ type: 'pong',
128
+ timestamp: Date.now(),
129
+ };
130
+ }
131
+ export function createErrorMessage(error, code) {
132
+ return {
133
+ type: 'error',
134
+ error,
135
+ code,
136
+ timestamp: Date.now(),
137
+ };
138
+ }
139
+ export function createCaptureCommandMessage(commandId, sessionId, command, payload, timeoutMs) {
140
+ return {
141
+ type: 'capture_command',
142
+ commandId,
143
+ sessionId,
144
+ command,
145
+ payload,
146
+ timeoutMs,
147
+ timestamp: Date.now(),
148
+ };
149
+ }
150
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/websocket/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,302 @@
1
+ import { WebSocketServer, WebSocket } from 'ws';
2
+ import { parseMessage, createPongMessage, createErrorMessage, createCaptureCommandMessage, } from './messages';
3
+ import { EventsRepository } from '../db/events-repository';
4
+ import { getConnection } from '../db/connection';
5
+ function createConsoleLogger() {
6
+ return {
7
+ info: (payload, message) => {
8
+ console.info(message ?? '[MCPServer][WebSocket][info]', payload);
9
+ },
10
+ warn: (payload, message) => {
11
+ console.warn(message ?? '[MCPServer][WebSocket][warn]', payload);
12
+ },
13
+ error: (payload, message) => {
14
+ console.error(message ?? '[MCPServer][WebSocket][error]', payload);
15
+ },
16
+ debug: (payload, message) => {
17
+ console.debug(message ?? '[MCPServer][WebSocket][debug]', payload);
18
+ },
19
+ };
20
+ }
21
+ export class WebSocketManager {
22
+ wss = null;
23
+ connections = new Map();
24
+ eventsRepository = null;
25
+ pendingCaptureRequests = new Map();
26
+ commandCounter = 0;
27
+ logger;
28
+ pingInterval = null;
29
+ PING_INTERVAL_MS = 30000;
30
+ PONG_TIMEOUT_MS = 10000;
31
+ constructor(eventsRepository, logger) {
32
+ if (eventsRepository) {
33
+ this.eventsRepository = eventsRepository;
34
+ }
35
+ this.logger = logger ?? createConsoleLogger();
36
+ }
37
+ setRepository(repository) {
38
+ this.eventsRepository = repository;
39
+ }
40
+ getRepository() {
41
+ if (!this.eventsRepository) {
42
+ const { db } = getConnection();
43
+ this.eventsRepository = new EventsRepository(db);
44
+ }
45
+ return this.eventsRepository;
46
+ }
47
+ initialize(server) {
48
+ this.logger = {
49
+ info: (payload, message) => server.log.info(payload, message),
50
+ warn: (payload, message) => server.log.warn(payload, message),
51
+ error: (payload, message) => server.log.error(payload, message),
52
+ debug: (payload, message) => server.log.debug(payload, message),
53
+ };
54
+ this.wss = new WebSocketServer({
55
+ server: server.server,
56
+ path: '/ws',
57
+ });
58
+ this.wss.on('connection', (ws) => {
59
+ this.handleConnection(ws);
60
+ });
61
+ this.startPingInterval();
62
+ this.logger.info({ component: 'websocket', event: 'server_initialized', path: '/ws' }, '[MCPServer][WebSocket] Initialized');
63
+ }
64
+ handleConnection(ws) {
65
+ const connectionInfo = {
66
+ ws,
67
+ connectedAt: Date.now(),
68
+ lastPingAt: Date.now(),
69
+ messageCount: 0,
70
+ };
71
+ this.connections.set(ws, connectionInfo);
72
+ this.logger.info({
73
+ component: 'websocket',
74
+ event: 'connection_open',
75
+ connections: this.connections.size,
76
+ }, '[MCPServer][WebSocket] Connection opened');
77
+ ws.on('message', (data) => {
78
+ this.handleMessage(ws, data.toString());
79
+ });
80
+ ws.on('close', (code, reason) => {
81
+ this.handleDisconnect(ws, code, reason);
82
+ });
83
+ ws.on('error', (error) => {
84
+ this.logger.error({
85
+ component: 'websocket',
86
+ event: 'connection_error',
87
+ message: error.message,
88
+ }, '[MCPServer][WebSocket] Connection error');
89
+ connectionInfo.disconnectReason = 'network_error';
90
+ this.handleDisconnect(ws);
91
+ });
92
+ }
93
+ handleMessage(ws, data) {
94
+ const connectionInfo = this.connections.get(ws);
95
+ if (!connectionInfo)
96
+ return;
97
+ connectionInfo.messageCount++;
98
+ const message = parseMessage(data);
99
+ if (!message) {
100
+ ws.send(JSON.stringify(createErrorMessage('Invalid message format', 'INVALID_MESSAGE')));
101
+ return;
102
+ }
103
+ connectionInfo.lastPingAt = Date.now();
104
+ this.logger.debug({
105
+ component: 'websocket',
106
+ event: 'message_received',
107
+ messageType: message.type,
108
+ }, '[MCPServer][WebSocket] Message received');
109
+ try {
110
+ switch (message.type) {
111
+ case 'ping':
112
+ ws.send(JSON.stringify(createPongMessage()));
113
+ connectionInfo.lastPingAt = Date.now();
114
+ break;
115
+ case 'pong':
116
+ connectionInfo.lastPingAt = Date.now();
117
+ break;
118
+ case 'session_start':
119
+ this.getRepository().createSession(message);
120
+ connectionInfo.sessionId = message.sessionId;
121
+ break;
122
+ case 'session_end':
123
+ this.getRepository().endSession(message);
124
+ if (connectionInfo.sessionId === message.sessionId) {
125
+ connectionInfo.sessionId = undefined;
126
+ }
127
+ connectionInfo.disconnectReason = 'manual_stop';
128
+ break;
129
+ case 'event':
130
+ if (!this.getRepository().sessionExists(message.sessionId)) {
131
+ ws.send(JSON.stringify(createErrorMessage('Session not found', 'SESSION_NOT_FOUND')));
132
+ return;
133
+ }
134
+ this.getRepository().insertEvent(message);
135
+ break;
136
+ case 'event_batch':
137
+ if (!this.getRepository().sessionExists(message.sessionId)) {
138
+ ws.send(JSON.stringify(createErrorMessage('Session not found', 'SESSION_NOT_FOUND')));
139
+ return;
140
+ }
141
+ this.getRepository().insertEventsBatch(this.toEventMessages(message));
142
+ break;
143
+ case 'capture_result':
144
+ this.resolvePendingCapture(message);
145
+ break;
146
+ default:
147
+ ws.send(JSON.stringify(createErrorMessage(`Unknown message type`, 'UNKNOWN_TYPE')));
148
+ }
149
+ }
150
+ catch (error) {
151
+ this.logger.error({
152
+ component: 'websocket',
153
+ event: 'message_error',
154
+ error: error instanceof Error ? error.message : 'Unknown error',
155
+ }, '[MCPServer][WebSocket] Error handling message');
156
+ ws.send(JSON.stringify(createErrorMessage(error instanceof Error ? error.message : 'Internal server error', 'INTERNAL_ERROR')));
157
+ }
158
+ }
159
+ handleDisconnect(ws, closeCode, closeReasonRaw) {
160
+ const connection = this.connections.get(ws);
161
+ if (connection?.sessionId) {
162
+ this.rejectPendingForSession(connection.sessionId, 'Connection closed before capture completed');
163
+ }
164
+ const closeReason = closeReasonRaw && closeReasonRaw.length > 0 ? closeReasonRaw.toString('utf8') : undefined;
165
+ const disconnectReason = connection?.disconnectReason
166
+ ?? (closeCode === 1000 ? 'normal_closure' : closeCode ? 'abnormal_close' : 'unknown');
167
+ this.connections.delete(ws);
168
+ this.logger.info({
169
+ component: 'websocket',
170
+ event: 'connection_closed',
171
+ sessionId: connection?.sessionId,
172
+ reason: disconnectReason,
173
+ closeCode,
174
+ closeReason,
175
+ connections: this.connections.size,
176
+ }, '[MCPServer][WebSocket] Connection closed');
177
+ }
178
+ toEventMessages(message) {
179
+ return message.events.map((event) => ({
180
+ type: 'event',
181
+ sessionId: message.sessionId,
182
+ eventType: event.eventType,
183
+ data: event.data,
184
+ timestamp: event.timestamp ?? message.timestamp ?? Date.now(),
185
+ }));
186
+ }
187
+ resolvePendingCapture(message) {
188
+ const pending = this.pendingCaptureRequests.get(message.commandId);
189
+ if (!pending) {
190
+ return;
191
+ }
192
+ clearTimeout(pending.timeout);
193
+ this.pendingCaptureRequests.delete(message.commandId);
194
+ pending.resolve({
195
+ ok: message.ok,
196
+ payload: message.payload,
197
+ truncated: message.truncated,
198
+ error: message.error,
199
+ });
200
+ }
201
+ rejectPendingForSession(sessionId, reason) {
202
+ const entries = Array.from(this.pendingCaptureRequests.entries());
203
+ for (const [commandId, pending] of entries) {
204
+ if (pending.sessionId !== sessionId) {
205
+ continue;
206
+ }
207
+ clearTimeout(pending.timeout);
208
+ this.pendingCaptureRequests.delete(commandId);
209
+ pending.reject(new Error(reason));
210
+ }
211
+ }
212
+ findConnectionBySession(sessionId) {
213
+ for (const connection of this.connections.values()) {
214
+ if (connection.sessionId === sessionId) {
215
+ return connection;
216
+ }
217
+ }
218
+ return undefined;
219
+ }
220
+ async sendCaptureCommand(sessionId, command, payload, timeoutMs = 4000) {
221
+ const connection = this.findConnectionBySession(sessionId);
222
+ if (!connection || connection.ws.readyState !== WebSocket.OPEN) {
223
+ throw new Error(`No active extension connection for session ${sessionId}`);
224
+ }
225
+ const commandId = `capture-${Date.now()}-${this.commandCounter++}`;
226
+ const message = createCaptureCommandMessage(commandId, sessionId, command, payload, timeoutMs);
227
+ this.logger.debug({
228
+ component: 'websocket',
229
+ event: 'capture_command_sent',
230
+ sessionId,
231
+ command,
232
+ commandId,
233
+ }, '[MCPServer][WebSocket] Sending capture command');
234
+ return new Promise((resolve, reject) => {
235
+ const timeout = setTimeout(() => {
236
+ this.pendingCaptureRequests.delete(commandId);
237
+ reject(new Error(`Capture command timed out after ${timeoutMs}ms`));
238
+ }, timeoutMs);
239
+ this.pendingCaptureRequests.set(commandId, {
240
+ sessionId,
241
+ resolve,
242
+ reject,
243
+ timeout,
244
+ });
245
+ try {
246
+ connection.ws.send(JSON.stringify(message));
247
+ }
248
+ catch (error) {
249
+ clearTimeout(timeout);
250
+ this.pendingCaptureRequests.delete(commandId);
251
+ reject(error instanceof Error ? error : new Error('Failed to send capture command'));
252
+ }
253
+ });
254
+ }
255
+ startPingInterval() {
256
+ this.pingInterval = setInterval(() => {
257
+ const now = Date.now();
258
+ for (const [ws, info] of this.connections) {
259
+ if (now - info.lastPingAt > this.PING_INTERVAL_MS + this.PONG_TIMEOUT_MS) {
260
+ info.disconnectReason = 'stale_timeout';
261
+ this.logger.warn({
262
+ component: 'websocket',
263
+ event: 'stale_connection_terminated',
264
+ sessionId: info.sessionId,
265
+ idleMs: now - info.lastPingAt,
266
+ }, '[MCPServer][WebSocket] Closing stale connection');
267
+ ws.terminate();
268
+ this.connections.delete(ws);
269
+ }
270
+ }
271
+ }, this.PING_INTERVAL_MS);
272
+ }
273
+ getConnectionStats() {
274
+ let withSession = 0;
275
+ for (const info of this.connections.values()) {
276
+ if (info.sessionId)
277
+ withSession++;
278
+ }
279
+ return {
280
+ total: this.connections.size,
281
+ withSession,
282
+ };
283
+ }
284
+ close() {
285
+ if (this.pingInterval) {
286
+ clearInterval(this.pingInterval);
287
+ this.pingInterval = null;
288
+ }
289
+ for (const [commandId, pending] of this.pendingCaptureRequests) {
290
+ clearTimeout(pending.timeout);
291
+ pending.reject(new Error('WebSocket manager closed'));
292
+ this.pendingCaptureRequests.delete(commandId);
293
+ }
294
+ for (const [ws] of this.connections) {
295
+ ws.close();
296
+ }
297
+ this.connections.clear();
298
+ this.wss?.close();
299
+ this.wss = null;
300
+ }
301
+ }
302
+ //# sourceMappingURL=websocket-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../src/websocket/websocket-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "mcp-server",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "scripts": {
6
+ "build": "tsc -p tsconfig.app.json",
7
+ "serve": "tsx src/main.ts",
8
+ "serve:mcp": "tsx src/mcp-bridge.ts",
9
+ "dev": "tsx watch src/main.ts",
10
+ "test": "vitest run --config vitest.config.ts",
11
+ "lint": "tsc --noEmit -p tsconfig.app.json"
12
+ },
13
+ "dependencies": {
14
+ "@modelcontextprotocol/sdk": "^1.26.0",
15
+ "@types/ws": "^8.18.1",
16
+ "better-sqlite3": "^12.6.2",
17
+ "fastify": "^4.28.0",
18
+ "jszip": "^3.10.1",
19
+ "ws": "^8.19.0"
20
+ },
21
+ "devDependencies": {
22
+ "@types/better-sqlite3": "^7.6.13",
23
+ "@types/node": "^20.0.0",
24
+ "tsx": "^4.0.0",
25
+ "typescript": "^5.3.0",
26
+ "vitest": "^1.0.0"
27
+ }
28
+ }