@structured-world/gitlab-mcp 6.62.2 → 7.0.2

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 (70) hide show
  1. package/README.md +22 -1
  2. package/README.md.in +21 -0
  3. package/dist/generated/prisma/internal/class.js +2 -2
  4. package/dist/generated/prisma/internal/prismaNamespace.js +2 -2
  5. package/dist/generated/prisma/models/AuthCodeFlowState.d.ts +1 -2
  6. package/dist/generated/prisma/models/AuthorizationCode.d.ts +1 -2
  7. package/dist/generated/prisma/models/DeviceFlowState.d.ts +1 -2
  8. package/dist/generated/prisma/models/McpSessionMapping.d.ts +1 -2
  9. package/dist/generated/prisma/models/OAuthSession.d.ts +1 -2
  10. package/dist/src/cli/init/connection.js +11 -11
  11. package/dist/src/cli/init/connection.js.map +1 -1
  12. package/dist/src/cli/instances/instances-command.js +5 -1
  13. package/dist/src/cli/instances/instances-command.js.map +1 -1
  14. package/dist/src/config.d.ts +7 -0
  15. package/dist/src/config.js +37 -36
  16. package/dist/src/config.js.map +1 -1
  17. package/dist/src/entities/pipelines/schema-readonly.d.ts +1 -1
  18. package/dist/src/handlers.d.ts +1 -0
  19. package/dist/src/handlers.js +210 -38
  20. package/dist/src/handlers.js.map +1 -1
  21. package/dist/src/logging/types.d.ts +1 -1
  22. package/dist/src/logging/types.js.map +1 -1
  23. package/dist/src/middleware/index.d.ts +1 -0
  24. package/dist/src/middleware/index.js +3 -1
  25. package/dist/src/middleware/index.js.map +1 -1
  26. package/dist/src/middleware/response-write-timeout.d.ts +2 -0
  27. package/dist/src/middleware/response-write-timeout.js +62 -0
  28. package/dist/src/middleware/response-write-timeout.js.map +1 -0
  29. package/dist/src/oauth/gitlab-device-flow.js +31 -26
  30. package/dist/src/oauth/gitlab-device-flow.js.map +1 -1
  31. package/dist/src/registry-manager.d.ts +20 -10
  32. package/dist/src/registry-manager.js +255 -113
  33. package/dist/src/registry-manager.js.map +1 -1
  34. package/dist/src/server.js +37 -21
  35. package/dist/src/server.js.map +1 -1
  36. package/dist/src/services/ConnectionManager.d.ts +29 -20
  37. package/dist/src/services/ConnectionManager.js +265 -140
  38. package/dist/src/services/ConnectionManager.js.map +1 -1
  39. package/dist/src/services/HealthMonitor.d.ts +42 -0
  40. package/dist/src/services/HealthMonitor.js +544 -0
  41. package/dist/src/services/HealthMonitor.js.map +1 -0
  42. package/dist/src/services/InstanceRegistry.d.ts +0 -1
  43. package/dist/src/services/InstanceRegistry.js +9 -21
  44. package/dist/src/services/InstanceRegistry.js.map +1 -1
  45. package/dist/src/services/SchemaIntrospector.d.ts +1 -0
  46. package/dist/src/services/SchemaIntrospector.js +3 -0
  47. package/dist/src/services/SchemaIntrospector.js.map +1 -1
  48. package/dist/src/services/TokenScopeDetector.d.ts +2 -2
  49. package/dist/src/services/TokenScopeDetector.js +59 -36
  50. package/dist/src/services/TokenScopeDetector.js.map +1 -1
  51. package/dist/src/services/ToolAvailability.d.ts +9 -5
  52. package/dist/src/services/ToolAvailability.js +30 -10
  53. package/dist/src/services/ToolAvailability.js.map +1 -1
  54. package/dist/src/services/WidgetAvailability.d.ts +3 -3
  55. package/dist/src/services/WidgetAvailability.js +7 -6
  56. package/dist/src/services/WidgetAvailability.js.map +1 -1
  57. package/dist/src/utils/error-handler.d.ts +10 -1
  58. package/dist/src/utils/error-handler.js +85 -0
  59. package/dist/src/utils/error-handler.js.map +1 -1
  60. package/dist/src/utils/fetch.d.ts +7 -0
  61. package/dist/src/utils/fetch.js +53 -39
  62. package/dist/src/utils/fetch.js.map +1 -1
  63. package/dist/src/utils/gitlab-api.js +5 -2
  64. package/dist/src/utils/gitlab-api.js.map +1 -1
  65. package/dist/src/utils/url.d.ts +1 -0
  66. package/dist/src/utils/url.js +38 -0
  67. package/dist/src/utils/url.js.map +1 -0
  68. package/dist/tsconfig.build.tsbuildinfo +1 -1
  69. package/package.json +19 -25
  70. package/dist/structured-world-gitlab-mcp-6.62.2.tgz +0 -0
@@ -33,11 +33,15 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.resetHandlersState = resetHandlersState;
36
37
  exports.setupHandlers = setupHandlers;
37
38
  const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
38
39
  const ConnectionManager_1 = require("./services/ConnectionManager");
40
+ const HealthMonitor_1 = require("./services/HealthMonitor");
41
+ const url_1 = require("./utils/url");
39
42
  const logger_1 = require("./logger");
40
43
  const error_handler_1 = require("./utils/error-handler");
44
+ const fetch_1 = require("./utils/fetch");
41
45
  const index_1 = require("./logging/index");
42
46
  const config_1 = require("./config");
43
47
  function hasAction(value) {
@@ -56,11 +60,26 @@ function extractActionFromError(error) {
56
60
  }
57
61
  return undefined;
58
62
  }
63
+ function recordEarlyReturnError(toolName, action, errorMessage) {
64
+ const requestTracker = (0, index_1.getRequestTracker)();
65
+ if (config_1.LOG_FORMAT === 'condensed') {
66
+ requestTracker.setToolForCurrentRequest(toolName, action);
67
+ requestTracker.setErrorForCurrentRequest(errorMessage);
68
+ }
69
+ const currentRequestId = (0, index_1.getCurrentRequestId)();
70
+ if (currentRequestId) {
71
+ const stack = requestTracker.getStack(currentRequestId);
72
+ if (stack?.sessionId) {
73
+ (0, index_1.getConnectionTracker)().recordError(stack.sessionId, errorMessage);
74
+ }
75
+ }
76
+ }
59
77
  function isIdempotentOperation(toolName) {
60
78
  return (toolName.startsWith('browse_') ||
61
79
  toolName.startsWith('list_') ||
62
80
  toolName.startsWith('get_') ||
63
- toolName.startsWith('download_'));
81
+ toolName.startsWith('download_') ||
82
+ toolName === 'manage_context');
64
83
  }
65
84
  function toStructuredError(error, toolName, toolArgs) {
66
85
  if ((0, error_handler_1.isStructuredToolError)(error)) {
@@ -77,27 +96,81 @@ function toStructuredError(error, toolName, toolArgs) {
77
96
  action = toolArgs.action;
78
97
  }
79
98
  action ??= 'unknown';
80
- const timeoutMs = (0, error_handler_1.parseTimeoutError)(error.message);
81
- if (timeoutMs !== null) {
99
+ if (error instanceof fetch_1.GitLabTimeoutError ||
100
+ (error instanceof Error &&
101
+ error.name === 'GitLabTimeoutError' &&
102
+ 'timeoutMs' in error &&
103
+ typeof error.timeoutMs === 'number')) {
82
104
  const retryable = isIdempotentOperation(toolName);
83
- return (0, error_handler_1.createTimeoutError)(toolName, action, timeoutMs, retryable);
105
+ return (0, error_handler_1.createTimeoutError)(toolName, action, error.timeoutMs, retryable);
106
+ }
107
+ if (error instanceof Error) {
108
+ const timeoutMs = (0, error_handler_1.parseTimeoutError)(error.message);
109
+ if (timeoutMs !== null) {
110
+ const retryable = isIdempotentOperation(toolName);
111
+ return (0, error_handler_1.createTimeoutError)(toolName, action, timeoutMs, retryable);
112
+ }
84
113
  }
85
114
  const parsed = (0, error_handler_1.parseGitLabApiError)(error.message);
86
115
  if (!parsed)
87
116
  return null;
88
117
  return (0, error_handler_1.handleGitLabError)({ status: parsed.status, message: parsed.message }, toolName, action, toolArgs);
89
118
  }
119
+ let healthMonitorStartup = null;
120
+ let stateChangeRegistered = false;
121
+ function resetHandlersState() {
122
+ healthMonitorStartup = null;
123
+ stateChangeRegistered = false;
124
+ }
90
125
  async function setupHandlers(server) {
91
126
  const { isAuthenticationConfigured } = await Promise.resolve().then(() => __importStar(require('./oauth/index')));
92
127
  if (isAuthenticationConfigured()) {
93
- const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
94
- try {
95
- await connectionManager.initialize();
96
- (0, logger_1.logInfo)('Connection initialized during server setup');
97
- }
98
- catch (error) {
99
- (0, logger_1.logWarn)(`Initial connection failed during setup, will retry on first tool call: ${error instanceof Error ? error.message : String(error)}`);
100
- }
128
+ healthMonitorStartup ??= (async () => {
129
+ try {
130
+ const healthMonitor = HealthMonitor_1.HealthMonitor.getInstance();
131
+ if (!stateChangeRegistered) {
132
+ stateChangeRegistered = true;
133
+ const broadcastToolsListChangedForStateChange = async (instanceUrl, from, to) => {
134
+ const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
135
+ RegistryManager.getInstance().refreshCache(instanceUrl);
136
+ const { getSessionManager } = await Promise.resolve().then(() => __importStar(require('./session-manager')));
137
+ await getSessionManager().broadcastToolsListChanged();
138
+ (0, logger_1.logInfo)('Tool list updated after connection state change', {
139
+ instanceUrl,
140
+ from,
141
+ to,
142
+ });
143
+ };
144
+ healthMonitor.onStateChange((instanceUrl, from, to) => {
145
+ if (from !== to) {
146
+ broadcastToolsListChangedForStateChange(instanceUrl, from, to).catch((error) => {
147
+ (0, logger_1.logWarn)('Failed to broadcast tools/list_changed after state change', {
148
+ instanceUrl,
149
+ err: error,
150
+ });
151
+ });
152
+ }
153
+ });
154
+ }
155
+ await healthMonitor.initialize();
156
+ const state = healthMonitor.getState();
157
+ (0, logger_1.logInfo)('Connection health monitor initialized', { state });
158
+ try {
159
+ const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
160
+ RegistryManager.getInstance().refreshCache();
161
+ }
162
+ catch (cacheError) {
163
+ (0, logger_1.logWarn)('Failed to refresh registry cache during handler setup', {
164
+ err: cacheError,
165
+ });
166
+ }
167
+ }
168
+ catch (error) {
169
+ healthMonitorStartup = null;
170
+ throw error;
171
+ }
172
+ })();
173
+ await healthMonitorStartup;
101
174
  }
102
175
  else {
103
176
  (0, logger_1.logInfo)('Skipping connection initialization - no authentication configured');
@@ -169,10 +242,21 @@ async function setupHandlers(server) {
169
242
  };
170
243
  });
171
244
  server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
245
+ const { getGitLabApiUrlFromContext: getUrlFromCtx, isOAuthEnabled } = await Promise.resolve().then(() => __importStar(require('./oauth/index')));
246
+ const rawInstanceUrl = isOAuthEnabled()
247
+ ? (getUrlFromCtx() ?? config_1.GITLAB_BASE_URL)
248
+ : (ConnectionManager_1.ConnectionManager.getInstance().getCurrentInstanceUrl() ?? config_1.GITLAB_BASE_URL);
249
+ const requestInstanceUrl = (0, url_1.normalizeInstanceUrl)(rawInstanceUrl);
250
+ let timedOut = false;
251
+ let bootstrapStarted = false;
252
+ let bootstrapComplete = false;
172
253
  const HANDLER_TIMEOUT_SYMBOL = Symbol('handler_timeout');
173
254
  let handlerTimeoutId;
174
255
  const timeoutPromise = new Promise((resolve) => {
175
- handlerTimeoutId = setTimeout(() => resolve(HANDLER_TIMEOUT_SYMBOL), config_1.HANDLER_TIMEOUT_MS);
256
+ handlerTimeoutId = setTimeout(() => {
257
+ timedOut = true;
258
+ resolve(HANDLER_TIMEOUT_SYMBOL);
259
+ }, config_1.HANDLER_TIMEOUT_MS);
176
260
  });
177
261
  const handlerWork = async () => {
178
262
  if (!request.params.arguments) {
@@ -188,41 +272,115 @@ async function setupHandlers(server) {
188
272
  'or set GITLAB_TOKEN manually. ' +
189
273
  'Documentation: https://gitlab-mcp.sw.foundation/guide/configuration');
190
274
  }
275
+ const effectiveInstanceUrl = requestInstanceUrl;
191
276
  const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
277
+ const healthMonitor = HealthMonitor_1.HealthMonitor.getInstance();
278
+ const toolName = request.params.name;
279
+ if (!healthMonitor.isInstanceReachable(effectiveInstanceUrl) &&
280
+ toolName !== 'manage_context') {
281
+ const action = request.params.arguments && typeof request.params.arguments.action === 'string'
282
+ ? request.params.arguments.action
283
+ : 'unknown';
284
+ const rawState = healthMonitor.getState(effectiveInstanceUrl);
285
+ let connectionState;
286
+ if (rawState === 'failed') {
287
+ connectionState = 'failed';
288
+ }
289
+ else if (rawState === 'connecting') {
290
+ connectionState = 'connecting';
291
+ }
292
+ else {
293
+ connectionState = 'disconnected';
294
+ }
295
+ const connError = (0, error_handler_1.createConnectionFailedError)(toolName, action, effectiveInstanceUrl, connectionState);
296
+ recordEarlyReturnError(toolName, action, connError.message);
297
+ return {
298
+ content: [{ type: 'text', text: JSON.stringify(connError, null, 2) }],
299
+ isError: true,
300
+ };
301
+ }
302
+ if (toolName === 'manage_context' &&
303
+ !healthMonitor.isInstanceReachable(effectiveInstanceUrl)) {
304
+ if (config_1.LOG_FORMAT === 'condensed') {
305
+ const action = request.params.arguments && typeof request.params.arguments.action === 'string'
306
+ ? request.params.arguments.action
307
+ : undefined;
308
+ const requestTracker = (0, index_1.getRequestTracker)();
309
+ requestTracker.setToolForCurrentRequest(toolName, action);
310
+ }
311
+ const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
312
+ const registryManager = RegistryManager.getInstance();
313
+ if (registryManager.hasToolHandler(toolName, effectiveInstanceUrl)) {
314
+ const result = await registryManager.executeTool(toolName, request.params.arguments, effectiveInstanceUrl);
315
+ return {
316
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
317
+ };
318
+ }
319
+ }
320
+ bootstrapStarted = true;
192
321
  const oauthMode = isOAuthEnabled();
193
322
  try {
194
- connectionManager.getClient();
323
+ if (!connectionManager.isConnected(effectiveInstanceUrl)) {
324
+ if (config_1.LOG_FORMAT === 'verbose') {
325
+ (0, logger_1.logInfo)('Connection not initialized, attempting to initialize...');
326
+ }
327
+ await connectionManager.initialize(effectiveInstanceUrl);
328
+ }
329
+ connectionManager.getClient(effectiveInstanceUrl);
195
330
  if (oauthMode) {
196
- await connectionManager.ensureIntrospected();
331
+ await connectionManager.ensureIntrospected(effectiveInstanceUrl);
197
332
  }
198
- const instanceInfo = connectionManager.getInstanceInfo();
199
- if (config_1.LOG_FORMAT === 'verbose') {
200
- (0, logger_1.logInfo)(`Connection verified: ${instanceInfo.version} ${instanceInfo.tier}`);
333
+ bootstrapComplete = true;
334
+ {
335
+ const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
336
+ RegistryManager.getInstance().refreshCache(effectiveInstanceUrl);
201
337
  }
202
- }
203
- catch {
204
338
  if (config_1.LOG_FORMAT === 'verbose') {
205
- (0, logger_1.logInfo)('Connection not initialized, attempting to initialize...');
206
- }
207
- try {
208
- await connectionManager.initialize();
209
- connectionManager.getClient();
210
- if (oauthMode) {
211
- await connectionManager.ensureIntrospected();
339
+ try {
340
+ const instanceInfo = connectionManager.getInstanceInfo(effectiveInstanceUrl);
341
+ (0, logger_1.logInfo)(`Connection verified: ${instanceInfo.version} ${instanceInfo.tier}`);
212
342
  }
213
- const instanceInfo = connectionManager.getInstanceInfo();
214
- if (config_1.LOG_FORMAT === 'verbose') {
215
- (0, logger_1.logInfo)(`Connection initialized: ${instanceInfo.version} ${instanceInfo.tier}`);
343
+ catch {
344
+ (0, logger_1.logDebug)('Connection verified but instance info not yet available', {
345
+ instanceUrl: effectiveInstanceUrl,
346
+ });
216
347
  }
217
- const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
218
- RegistryManager.getInstance().refreshCache();
219
348
  }
220
- catch (initError) {
221
- (0, logger_1.logError)(`Connection initialization failed: ${initError instanceof Error ? initError.message : String(initError)}`);
222
- throw new Error('Bad Request: Server not initialized', { cause: initError });
349
+ }
350
+ catch (initError) {
351
+ if (!bootstrapComplete) {
352
+ const errorCategory = initError instanceof Error ? (0, error_handler_1.classifyError)(initError) : 'permanent';
353
+ if (initError instanceof Error) {
354
+ if (!timedOut || errorCategory === 'auth' || errorCategory === 'permanent') {
355
+ healthMonitor.reportError(effectiveInstanceUrl, initError);
356
+ }
357
+ }
358
+ (0, logger_1.logError)(`Connection initialization failed: ${initError instanceof Error ? initError.message : String(initError)}`, { instanceUrl: effectiveInstanceUrl });
359
+ const action = request.params.arguments && typeof request.params.arguments.action === 'string'
360
+ ? request.params.arguments.action
361
+ : 'unknown';
362
+ const monitorState = healthMonitor.getState(effectiveInstanceUrl);
363
+ let derivedState;
364
+ if (monitorState === 'connecting' || monitorState === 'failed') {
365
+ derivedState = monitorState;
366
+ }
367
+ else if (errorCategory === 'auth' || errorCategory === 'permanent') {
368
+ derivedState = 'failed';
369
+ }
370
+ else {
371
+ derivedState = 'disconnected';
372
+ }
373
+ const connError = (0, error_handler_1.createConnectionFailedError)(toolName, action, effectiveInstanceUrl, derivedState);
374
+ if (!timedOut) {
375
+ recordEarlyReturnError(toolName, action, connError.message);
376
+ }
377
+ return {
378
+ content: [{ type: 'text', text: JSON.stringify(connError, null, 2) }],
379
+ isError: true,
380
+ };
223
381
  }
382
+ throw initError;
224
383
  }
225
- const toolName = request.params.name;
226
384
  const toolArgs = request.params.arguments;
227
385
  const action = toolArgs && typeof toolArgs.action === 'string' ? toolArgs.action : undefined;
228
386
  if (config_1.LOG_FORMAT === 'condensed') {
@@ -247,7 +405,7 @@ async function setupHandlers(server) {
247
405
  try {
248
406
  const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
249
407
  const registryManager = RegistryManager.getInstance();
250
- if (!registryManager.hasToolHandler(toolName)) {
408
+ if (!registryManager.hasToolHandler(toolName, effectiveInstanceUrl)) {
251
409
  throw new Error(`Tool '${toolName}' is not available or has been filtered out`);
252
410
  }
253
411
  if (config_1.LOG_FORMAT === 'verbose') {
@@ -262,7 +420,10 @@ async function setupHandlers(server) {
262
420
  tool: toolName,
263
421
  });
264
422
  }
265
- const result = await registryManager.executeTool(toolName, request.params.arguments);
423
+ const result = await registryManager.executeTool(toolName, request.params.arguments, effectiveInstanceUrl);
424
+ if (!timedOut) {
425
+ healthMonitor.reportSuccess(effectiveInstanceUrl);
426
+ }
266
427
  return {
267
428
  content: [
268
429
  {
@@ -273,6 +434,12 @@ async function setupHandlers(server) {
273
434
  };
274
435
  }
275
436
  catch (error) {
437
+ if (!timedOut && error instanceof Error) {
438
+ const category = (0, error_handler_1.classifyError)(error);
439
+ if (category === 'transient' || category === 'auth') {
440
+ healthMonitor.reportError(effectiveInstanceUrl, error);
441
+ }
442
+ }
276
443
  const errorMessage = error instanceof Error ? error.message : String(error);
277
444
  throw new Error(`Failed to execute tool '${toolName}': ${errorMessage}`, { cause: error });
278
445
  }
@@ -287,6 +454,11 @@ async function setupHandlers(server) {
287
454
  const retryable = isIdempotentOperation(toolName);
288
455
  const timeoutError = (0, error_handler_1.createTimeoutError)(toolName, action, config_1.HANDLER_TIMEOUT_MS, retryable);
289
456
  (0, logger_1.logError)(`Handler timeout: tool '${toolName}' timed out after ${config_1.HANDLER_TIMEOUT_MS}ms`);
457
+ if (bootstrapStarted && !bootstrapComplete) {
458
+ HealthMonitor_1.HealthMonitor.getInstance().reportError(requestInstanceUrl, new Error(`Handler timed out after ${config_1.HANDLER_TIMEOUT_MS}ms — bootstrap did not complete`));
459
+ ConnectionManager_1.ConnectionManager.getInstance().clearInflight(requestInstanceUrl);
460
+ }
461
+ recordEarlyReturnError(toolName, action, timeoutError.message);
290
462
  return {
291
463
  content: [
292
464
  {
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/handlers.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export interface RequestStack {
14
14
  status?: number;
15
15
  error?: string;
16
16
  }
17
- export type ConnectionCloseReason = 'client_disconnect' | 'idle_timeout' | 'server_shutdown' | 'transport_error' | 'auth_expired' | 'session_closed' | 'destroyed' | 'normal_close' | 'heartbeat_failed' | `peer_reset:${string}`;
17
+ export type ConnectionCloseReason = 'client_disconnect' | 'idle_timeout' | 'server_shutdown' | 'transport_error' | 'auth_expired' | 'session_closed' | 'destroyed' | 'normal_close' | 'heartbeat_failed' | 'write_timeout' | `peer_reset:${string}`;
18
18
  export interface ConnectionStats {
19
19
  connectedAt: number;
20
20
  clientIp: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":";;;AA+La,QAAA,kBAAkB,GAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":";;;AAgMa,QAAA,kBAAkB,GAAc,WAAW,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { oauthAuthMiddleware, createOAuthMiddleware, optionalOAuthMiddleware } from './oauth-auth';
2
2
  export { rateLimiterMiddleware, stopCleanup as stopRateLimitCleanup, getRateLimitStats, } from './rate-limiter';
3
+ export { responseWriteTimeoutMiddleware } from './response-write-timeout';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRateLimitStats = exports.stopRateLimitCleanup = exports.rateLimiterMiddleware = exports.optionalOAuthMiddleware = exports.createOAuthMiddleware = exports.oauthAuthMiddleware = void 0;
3
+ exports.responseWriteTimeoutMiddleware = exports.getRateLimitStats = exports.stopRateLimitCleanup = exports.rateLimiterMiddleware = exports.optionalOAuthMiddleware = exports.createOAuthMiddleware = exports.oauthAuthMiddleware = void 0;
4
4
  var oauth_auth_1 = require("./oauth-auth");
5
5
  Object.defineProperty(exports, "oauthAuthMiddleware", { enumerable: true, get: function () { return oauth_auth_1.oauthAuthMiddleware; } });
6
6
  Object.defineProperty(exports, "createOAuthMiddleware", { enumerable: true, get: function () { return oauth_auth_1.createOAuthMiddleware; } });
@@ -9,4 +9,6 @@ var rate_limiter_1 = require("./rate-limiter");
9
9
  Object.defineProperty(exports, "rateLimiterMiddleware", { enumerable: true, get: function () { return rate_limiter_1.rateLimiterMiddleware; } });
10
10
  Object.defineProperty(exports, "stopRateLimitCleanup", { enumerable: true, get: function () { return rate_limiter_1.stopCleanup; } });
11
11
  Object.defineProperty(exports, "getRateLimitStats", { enumerable: true, get: function () { return rate_limiter_1.getRateLimitStats; } });
12
+ var response_write_timeout_1 = require("./response-write-timeout");
13
+ Object.defineProperty(exports, "responseWriteTimeoutMiddleware", { enumerable: true, get: function () { return response_write_timeout_1.responseWriteTimeoutMiddleware; } });
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/index.ts"],"names":[],"mappings":";;;AAMA,2CAAmG;AAA1F,iHAAA,mBAAmB,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AAC5E,+CAIwB;AAHtB,qHAAA,qBAAqB,OAAA;AACrB,oHAAA,WAAW,OAAwB;AACnC,iHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/index.ts"],"names":[],"mappings":";;;AAMA,2CAAmG;AAA1F,iHAAA,mBAAmB,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AAC5E,+CAIwB;AAHtB,qHAAA,qBAAqB,OAAA;AACrB,oHAAA,WAAW,OAAwB;AACnC,iHAAA,iBAAiB,OAAA;AAEnB,mEAA0E;AAAjE,wIAAA,8BAA8B,OAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Request, Response, NextFunction } from 'express';
2
+ export declare function responseWriteTimeoutMiddleware(): (req: Request, res: Response, next: NextFunction) => void;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.responseWriteTimeoutMiddleware = responseWriteTimeoutMiddleware;
4
+ const zod_1 = require("zod");
5
+ const config_1 = require("../config");
6
+ const logger_1 = require("../logger");
7
+ const mcpSessionIdSchema = zod_1.z
8
+ .union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())])
9
+ .optional()
10
+ .transform((value) => (Array.isArray(value) ? value[0] : value));
11
+ function normalizeContentType(value) {
12
+ if (typeof value === 'string')
13
+ return value.toLowerCase();
14
+ if (Array.isArray(value))
15
+ return value.join(',').toLowerCase();
16
+ return '';
17
+ }
18
+ function responseWriteTimeoutMiddleware() {
19
+ return (req, res, next) => {
20
+ if (config_1.RESPONSE_WRITE_TIMEOUT_MS <= 0) {
21
+ next();
22
+ return;
23
+ }
24
+ let writeTimer;
25
+ const originalWriteHead = res.writeHead.bind(res);
26
+ res.writeHead = (...args) => {
27
+ const result = originalWriteHead(...args);
28
+ if (!writeTimer) {
29
+ const isSSE = normalizeContentType(res.getHeader('content-type')).includes('text/event-stream');
30
+ if (!isSSE) {
31
+ writeTimer = setTimeout(() => {
32
+ if (!res.writableFinished && !res.destroyed) {
33
+ res.locals = res.locals ?? {};
34
+ res.locals.writeTimedOut = true;
35
+ const parsedSessionId = mcpSessionIdSchema.safeParse(req.headers['mcp-session-id']);
36
+ const sessionId = parsedSessionId.success ? parsedSessionId.data : undefined;
37
+ (0, logger_1.logWarn)('Response write timeout — destroying zombie connection', {
38
+ method: req.method,
39
+ path: req.path,
40
+ timeoutMs: config_1.RESPONSE_WRITE_TIMEOUT_MS,
41
+ sessionId,
42
+ reason: 'write_timeout',
43
+ });
44
+ res.destroy();
45
+ }
46
+ }, config_1.RESPONSE_WRITE_TIMEOUT_MS);
47
+ }
48
+ }
49
+ return result;
50
+ };
51
+ const cleanup = () => {
52
+ if (writeTimer) {
53
+ clearTimeout(writeTimer);
54
+ writeTimer = undefined;
55
+ }
56
+ };
57
+ res.on('finish', cleanup);
58
+ res.on('close', cleanup);
59
+ next();
60
+ };
61
+ }
62
+ //# sourceMappingURL=response-write-timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-write-timeout.js","sourceRoot":"","sources":["../../../src/middleware/response-write-timeout.ts"],"names":[],"mappings":"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"}