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.
- package/LICENSE +15 -0
- package/README.md +101 -0
- package/apps/mcp-server/dist/db/connection.js +42 -0
- package/apps/mcp-server/dist/db/connection.js.map +1 -0
- package/apps/mcp-server/dist/db/error-fingerprints.js +21 -0
- package/apps/mcp-server/dist/db/error-fingerprints.js.map +1 -0
- package/apps/mcp-server/dist/db/events-repository.js +109 -0
- package/apps/mcp-server/dist/db/events-repository.js.map +1 -0
- package/apps/mcp-server/dist/db/index.js +4 -0
- package/apps/mcp-server/dist/db/index.js.map +1 -0
- package/apps/mcp-server/dist/db/migrations.js +101 -0
- package/apps/mcp-server/dist/db/migrations.js.map +1 -0
- package/apps/mcp-server/dist/db/schema.js +157 -0
- package/apps/mcp-server/dist/db/schema.js.map +1 -0
- package/apps/mcp-server/dist/main.js +384 -0
- package/apps/mcp-server/dist/main.js.map +1 -0
- package/apps/mcp-server/dist/mcp/server.js +1619 -0
- package/apps/mcp-server/dist/mcp/server.js.map +1 -0
- package/apps/mcp-server/dist/mcp-bridge.js +55 -0
- package/apps/mcp-server/dist/mcp-bridge.js.map +1 -0
- package/apps/mcp-server/dist/retention.js +841 -0
- package/apps/mcp-server/dist/retention.js.map +1 -0
- package/apps/mcp-server/dist/websocket/index.js +3 -0
- package/apps/mcp-server/dist/websocket/index.js.map +1 -0
- package/apps/mcp-server/dist/websocket/messages.js +150 -0
- package/apps/mcp-server/dist/websocket/messages.js.map +1 -0
- package/apps/mcp-server/dist/websocket/websocket-server.js +302 -0
- package/apps/mcp-server/dist/websocket/websocket-server.js.map +1 -0
- package/apps/mcp-server/package.json +28 -0
- package/package.json +88 -0
- 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 @@
|
|
|
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":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,GAI5B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,SAAS,mBAAmB;IAC1B,OAAO;QACL,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACzB,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,8BAA8B,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACzB,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,8BAA8B,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,+BAA+B,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,+BAA+B,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC;AAyBD,MAAM,OAAO,gBAAgB;IACnB,GAAG,GAA2B,IAAI,CAAC;IACnC,WAAW,GAAmC,IAAI,GAAG,EAAE,CAAC;IACxD,gBAAgB,GAA4B,IAAI,CAAC;IACjD,sBAAsB,GAAuC,IAAI,GAAG,EAAE,CAAC;IACvE,cAAc,GAAG,CAAC,CAAC;IACnB,MAAM,CAAmB;IACzB,YAAY,GAA0B,IAAI,CAAC;IAClC,gBAAgB,GAAG,KAAK,CAAC;IACzB,eAAe,GAAG,KAAK,CAAC;IAEzC,YAAY,gBAAmC,EAAE,MAAyB;QACxE,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAChD,CAAC;IAED,aAAa,CAAC,UAA4B;QACxC,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;IACrC,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC;YAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,MAAuB;QAChC,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;YAC7D,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;YAC7D,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;YAC/D,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;SAChE,CAAC;QAEF,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,EAAE;YAC1C,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,oCAAoC,CAAC,CAAC;IAC/H,CAAC;IAEO,gBAAgB,CAAC,EAAa;QACpC,MAAM,cAAc,GAAmB;YACrC,EAAE;YACF,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;YACvB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,YAAY,EAAE,CAAC;SAChB,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;YACE,SAAS,EAAE,WAAW;YACtB,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;SACnC,EACD,0CAA0C,CAC3C,CAAC;QAEF,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE;YAChC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;YAC9C,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;gBACE,SAAS,EAAE,WAAW;gBACtB,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,EACD,yCAAyC,CAC1C,CAAC;YACF,cAAc,CAAC,gBAAgB,GAAG,eAAe,CAAC;YAClD,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,EAAa,EAAE,IAAY;QAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,cAAc,CAAC,YAAY,EAAE,CAAC;QAE9B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QAED,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;YACE,SAAS,EAAE,WAAW;YACtB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,OAAO,CAAC,IAAI;SAC1B,EACD,yCAAyC,CAC1C,CAAC;QAEF,IAAI,CAAC;YACH,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,MAAM;oBACT,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;oBAC7C,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvC,MAAM;gBAER,KAAK,MAAM;oBACT,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvC,MAAM;gBAER,KAAK,eAAe;oBAClB,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC5C,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;oBAC7C,MAAM;gBAER,KAAK,aAAa;oBAChB,IAAI,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACzC,IAAI,cAAc,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;wBACnD,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;oBACvC,CAAC;oBACD,cAAc,CAAC,gBAAgB,GAAG,aAAa,CAAC;oBAChD,MAAM;gBAER,KAAK,OAAO;oBACV,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3D,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;wBACtF,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1C,MAAM;gBAER,KAAK,aAAa;oBAChB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3D,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;wBACtF,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,aAAa,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;oBACtE,MAAM;gBAER,KAAK,gBAAgB;oBACnB,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;oBACpC,MAAM;gBAER;oBACE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;gBACE,SAAS,EAAE,WAAW;gBACtB,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,EACD,+CAA+C,CAChD,CAAC;YACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,EAChE,gBAAgB,CACjB,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,EAAa,EAAE,SAAkB,EAAE,cAAuB;QACjF,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,UAAU,EAAE,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,SAAS,EAAE,4CAA4C,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,WAAW,GAAG,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9G,MAAM,gBAAgB,GACpB,UAAU,EAAE,gBAAgB;eACzB,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAExF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;YACE,SAAS,EAAE,WAAW;YACtB,KAAK,EAAE,mBAAmB;YAC1B,SAAS,EAAE,UAAU,EAAE,SAAS;YAChC,MAAM,EAAE,gBAAgB;YACxB,SAAS;YACT,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;SACnC,EACD,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,OAA0B;QAChD,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,EAAE,OAAgB;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;SAC9D,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,qBAAqB,CAAC,OAA6B;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtD,OAAO,CAAC,OAAO,CAAC;YACd,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,SAAiB,EAAE,MAAc;QAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpC,SAAS;YACX,CAAC;YAED,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,SAAiB;QAC/C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACvC,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,SAAiB,EACjB,OAAuB,EACvB,OAAgC,EAChC,YAAoB,IAAI;QAExB,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,8CAA8C,SAAS,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE/F,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;YACE,SAAS,EAAE,WAAW;YACtB,KAAK,EAAE,sBAAsB;YAC7B,SAAS;YACT,OAAO;YACP,SAAS;SACV,EACD,gDAAgD,CACjD,CAAC;QAEF,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,SAAS,IAAI,CAAC,CAAC,CAAC;YACtE,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE;gBACzC,SAAS;gBACT,OAAO;gBACP,MAAM;gBACN,OAAO;aACR,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC9C,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzE,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;oBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;wBACE,SAAS,EAAE,WAAW;wBACtB,KAAK,EAAE,6BAA6B;wBACpC,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU;qBAC9B,EACD,iDAAiD,CAClD,CAAC;oBACF,EAAE,CAAC,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAChB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,SAAS;gBAAE,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC5B,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/D,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEzB,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -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
|
+
}
|