@j0hanz/fetch-url-mcp 1.10.23 → 1.10.25

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 (43) hide show
  1. package/dist/http/native.d.ts.map +1 -1
  2. package/dist/http/native.js +85 -66
  3. package/dist/lib/core.d.ts.map +1 -1
  4. package/dist/lib/core.js +48 -14
  5. package/dist/lib/dom-prep.d.ts +1 -0
  6. package/dist/lib/dom-prep.d.ts.map +1 -1
  7. package/dist/lib/dom-prep.js +103 -98
  8. package/dist/lib/fetch-pipeline.d.ts +2 -2
  9. package/dist/lib/fetch-pipeline.d.ts.map +1 -1
  10. package/dist/lib/fetch-pipeline.js +13 -6
  11. package/dist/lib/http.d.ts.map +1 -1
  12. package/dist/lib/http.js +43 -34
  13. package/dist/lib/task-handlers.js +1 -1
  14. package/dist/lib/url.d.ts +3 -0
  15. package/dist/lib/url.d.ts.map +1 -1
  16. package/dist/lib/url.js +45 -53
  17. package/dist/lib/utils.d.ts.map +1 -1
  18. package/dist/lib/utils.js +2 -1
  19. package/dist/schemas.js +1 -1
  20. package/dist/tasks/execution.d.ts.map +1 -1
  21. package/dist/tasks/execution.js +1 -1
  22. package/dist/tasks/manager.d.ts +1 -17
  23. package/dist/tasks/manager.d.ts.map +1 -1
  24. package/dist/tasks/manager.js +27 -49
  25. package/dist/tasks/registry.d.ts +18 -0
  26. package/dist/tasks/registry.d.ts.map +1 -0
  27. package/dist/tasks/registry.js +28 -0
  28. package/dist/tools/fetch-url.d.ts +7 -6
  29. package/dist/tools/fetch-url.d.ts.map +1 -1
  30. package/dist/tools/fetch-url.js +108 -106
  31. package/dist/transform/html-translators.d.ts +1 -1
  32. package/dist/transform/html-translators.d.ts.map +1 -1
  33. package/dist/transform/html-translators.js +301 -320
  34. package/dist/transform/metadata.d.ts.map +1 -1
  35. package/dist/transform/metadata.js +5 -10
  36. package/dist/transform/next-flight.d.ts.map +1 -1
  37. package/dist/transform/next-flight.js +131 -63
  38. package/dist/transform/transform.d.ts.map +1 -1
  39. package/dist/transform/transform.js +2 -1
  40. package/dist/transform/worker-pool.d.ts +1 -0
  41. package/dist/transform/worker-pool.d.ts.map +1 -1
  42. package/dist/transform/worker-pool.js +29 -35
  43. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/http/native.ts"],"names":[],"mappings":"AAokCA,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CA0DD"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/http/native.ts"],"names":[],"mappings":"AAgoCA,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CA0DD"}
@@ -157,15 +157,14 @@ class McpSessionGateway {
157
157
  const method = typeof body.method === 'string' ? body.method : null;
158
158
  const isInitializedMethod = method !== null && isInitializedNotification(method);
159
159
  const isInitNotification = isInitializedMethod && body.id === undefined;
160
- const sessionId = getMcpSessionId(ctx.req);
161
160
  if (isInitializedMethod && !isInitNotification) {
162
161
  sendError(ctx.res, -32600, 'notifications/initialized must be sent as a notification', 400, requestId);
163
162
  return null;
164
163
  }
165
- const authFingerprint = buildAuthFingerprint(ctx.auth);
166
- const session = sessionId
167
- ? (this.getAuthenticatedSessionById(sessionId, authFingerprint, ctx.res, requestId) ?? undefined)
168
- : undefined;
164
+ const sessionState = this.getOptionalAuthenticatedSession(ctx, requestId);
165
+ if (!sessionState)
166
+ return null;
167
+ const { sessionId, session } = sessionState;
169
168
  if (!this.ensurePostSessionAccess({
170
169
  ctx,
171
170
  sessionId,
@@ -248,14 +247,25 @@ class McpSessionGateway {
248
247
  this.store.touch(sessionId);
249
248
  return session.transport;
250
249
  }
251
- getRequiredAuthenticatedSession(ctx, requestId = null, options) {
252
- const sessionId = this.getRequiredSessionId(ctx.req, ctx.res, requestId);
250
+ getOptionalAuthenticatedSession(ctx, requestId = null) {
251
+ const sessionId = getMcpSessionId(ctx.req);
253
252
  if (!sessionId)
254
- return null;
253
+ return { sessionId: null, session: undefined };
255
254
  const authFingerprint = buildAuthFingerprint(ctx.auth);
256
255
  const session = this.getAuthenticatedSessionById(sessionId, authFingerprint, ctx.res, requestId);
257
256
  if (!session)
258
257
  return null;
258
+ return { sessionId, session };
259
+ }
260
+ getRequiredAuthenticatedSession(ctx, requestId = null, options) {
261
+ const state = this.getOptionalAuthenticatedSession(ctx, requestId);
262
+ if (!state)
263
+ return null;
264
+ const { sessionId, session } = state;
265
+ if (!sessionId || !session) {
266
+ sendError(ctx.res, -32600, 'Missing session ID', 400, requestId);
267
+ return null;
268
+ }
259
269
  if (!this.ensureSessionProtocolVersion(ctx, session))
260
270
  return null;
261
271
  if (options?.requireInitialized && !session.protocolInitialized) {
@@ -264,13 +274,6 @@ class McpSessionGateway {
264
274
  }
265
275
  return { sessionId, session };
266
276
  }
267
- getRequiredSessionId(req, res, requestId = null) {
268
- const sessionId = getMcpSessionId(req);
269
- if (sessionId)
270
- return sessionId;
271
- sendError(res, -32600, 'Missing session ID', 400, requestId);
272
- return null;
273
- }
274
277
  getAuthenticatedSessionById(sessionId, authFingerprint, res, requestId = null) {
275
278
  const session = this.store.get(sessionId);
276
279
  if (!session) {
@@ -296,50 +299,29 @@ class McpSessionGateway {
296
299
  if (sessionId)
297
300
  this.store.touch(sessionId);
298
301
  }
299
- async createNewSession(ctx, requestId, negotiatedProtocolVersion) {
300
- const authFingerprint = buildAuthFingerprint(ctx.auth);
301
- if (!authFingerprint) {
302
- sendError(ctx.res, -32603, 'Missing auth context', 500, requestId);
303
- return null;
304
- }
305
- if (!this.reserveCapacity(ctx.res, requestId))
306
- return null;
307
- const tracker = createSlotTracker(this.store);
308
- const newSessionId = randomUUID();
309
- let sessionServer;
310
- try {
311
- sessionServer = await this.createSessionServer();
312
- }
313
- catch (error) {
314
- tracker.releaseSlot();
315
- throw error;
316
- }
317
- const transportImpl = new StreamableHTTPServerTransport({
318
- sessionIdGenerator: () => newSessionId,
319
- });
320
- const unpublishedSession = {
321
- server: sessionServer,
322
- transport: transportImpl,
323
- };
302
+ createSessionInitTimeout(sessionId, tracker, unpublishedSession) {
324
303
  const initTimeout = setTimeout(() => {
325
- const session = this.store.get(newSessionId);
304
+ const session = this.store.get(sessionId);
326
305
  if (session) {
327
306
  if (session.protocolInitialized) {
328
- this.clearSessionInitTimeout(newSessionId);
307
+ this.clearSessionInitTimeout(sessionId);
329
308
  return;
330
309
  }
331
- this.cleanupSessionRecord(newSessionId, 'session-init-timeout');
310
+ this.cleanupSessionRecord(sessionId, 'session-init-timeout');
332
311
  return;
333
312
  }
334
313
  tracker.releaseSlot();
335
314
  void teardownUnregisteredSessionResources(unpublishedSession, 'session-init-timeout');
336
315
  }, config.server.sessionInitTimeoutMs);
337
316
  initTimeout.unref();
317
+ return initTimeout;
318
+ }
319
+ async connectTransport(sessionServer, transportImpl, initTimeout, tracker, unpublishedSession, sessionId) {
338
320
  const connectState = { transportClosed: false };
339
321
  transportImpl.onclose = () => {
340
322
  connectState.transportClosed = true;
341
323
  clearTimeout(initTimeout);
342
- this.sessionInitTimeouts.delete(newSessionId);
324
+ this.sessionInitTimeouts.delete(sessionId);
343
325
  tracker.releaseSlot();
344
326
  };
345
327
  try {
@@ -352,8 +334,37 @@ class McpSessionGateway {
352
334
  void teardownUnregisteredSessionResources(unpublishedSession, 'session-connect-failed');
353
335
  throw err;
354
336
  }
337
+ return !connectState.transportClosed;
338
+ }
339
+ async createNewSession(ctx, requestId, negotiatedProtocolVersion) {
340
+ const authFingerprint = buildAuthFingerprint(ctx.auth);
341
+ if (!authFingerprint) {
342
+ sendError(ctx.res, -32603, 'Missing auth context', 500, requestId);
343
+ return null;
344
+ }
345
+ if (!this.reserveCapacity(ctx.res, requestId))
346
+ return null;
347
+ const tracker = createSlotTracker(this.store);
348
+ const newSessionId = randomUUID();
349
+ let sessionServer;
350
+ try {
351
+ sessionServer = await this.createSessionServer();
352
+ }
353
+ catch (error) {
354
+ tracker.releaseSlot();
355
+ throw error;
356
+ }
357
+ const transportImpl = new StreamableHTTPServerTransport({
358
+ sessionIdGenerator: () => newSessionId,
359
+ });
360
+ const unpublishedSession = {
361
+ server: sessionServer,
362
+ transport: transportImpl,
363
+ };
364
+ const initTimeout = this.createSessionInitTimeout(newSessionId, tracker, unpublishedSession);
365
+ const isConnected = await this.connectTransport(sessionServer, transportImpl, initTimeout, tracker, unpublishedSession, newSessionId);
355
366
  tracker.releaseSlot();
356
- if (connectState.transportClosed) {
367
+ if (!isConnected) {
357
368
  void teardownUnregisteredSessionResources(unpublishedSession, 'session-closed-during-connect');
358
369
  return null;
359
370
  }
@@ -533,29 +544,36 @@ class HttpDispatcher {
533
544
  // ---------------------------------------------------------------------------
534
545
  // Body parse error responses
535
546
  // ---------------------------------------------------------------------------
547
+ const DEFAULT_BODY_ERROR = {
548
+ statusCode: 400,
549
+ mcpCode: -32700,
550
+ mcpMsg: 'Parse error',
551
+ restMsg: 'Invalid JSON',
552
+ };
553
+ const BODY_PARSE_ERRORS = {
554
+ 'payload-too-large': {
555
+ statusCode: 413,
556
+ mcpCode: -32600,
557
+ mcpMsg: 'Request body too large',
558
+ restMsg: 'Payload too large',
559
+ },
560
+ 'read-failed': {
561
+ statusCode: 400,
562
+ mcpCode: -32600,
563
+ mcpMsg: 'Request body read failed',
564
+ restMsg: 'Invalid JSON',
565
+ },
566
+ default: DEFAULT_BODY_ERROR,
567
+ };
536
568
  function sendBodyParseError(ctx, bodyErrorKind, rawReq) {
537
- if (ctx.url.pathname === '/mcp') {
538
- switch (bodyErrorKind) {
539
- case 'payload-too-large':
540
- sendError(ctx.res, -32600, 'Request body too large', 413, null);
541
- break;
542
- case 'read-failed':
543
- if (!rawReq.destroyed) {
544
- sendError(ctx.res, -32600, 'Request body read failed', 400, null);
545
- }
546
- break;
547
- case 'invalid-json':
548
- default:
549
- sendError(ctx.res, -32700, 'Parse error', 400, null);
550
- break;
569
+ const errorDef = BODY_PARSE_ERRORS[bodyErrorKind ?? 'default'] ?? DEFAULT_BODY_ERROR;
570
+ if (bodyErrorKind !== 'read-failed' || !rawReq.destroyed) {
571
+ if (ctx.url.pathname === '/mcp') {
572
+ sendError(ctx.res, errorDef.mcpCode, errorDef.mcpMsg, errorDef.statusCode, null);
573
+ }
574
+ else {
575
+ sendJson(ctx.res, errorDef.statusCode, { error: errorDef.restMsg });
551
576
  }
552
- }
553
- else {
554
- sendJson(ctx.res, bodyErrorKind === 'payload-too-large' ? 413 : 400, {
555
- error: bodyErrorKind === 'payload-too-large'
556
- ? 'Payload too large'
557
- : 'Invalid JSON',
558
- });
559
577
  }
560
578
  drainRequest(rawReq);
561
579
  }
@@ -619,6 +637,7 @@ class HttpRequestPipeline {
619
637
  return false;
620
638
  }
621
639
  if (!this.rateLimiter.check(ctx)) {
640
+ sendJson(ctx.res, 429, { error: 'Too Many Requests' });
622
641
  drainRequest(rawReq);
623
642
  return false;
624
643
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/lib/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/lib/core.ts"],"names":[],"mappings":"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"}
package/dist/lib/core.js CHANGED
@@ -584,10 +584,23 @@ class InMemoryCacheStore {
584
584
  const now = Date.now();
585
585
  const expiresAtMs = now + this.ttlMs;
586
586
  const entrySize = content.length;
587
+ // Reject oversized entries before deleting the old one to avoid data loss
588
+ if (entrySize > this.maxBytes) {
589
+ logWarn('Cache entry exceeds max size', {
590
+ key: cacheKey,
591
+ size: entrySize,
592
+ max: this.maxBytes,
593
+ });
594
+ return;
595
+ }
596
+ const isUpdate = this.entries.has(cacheKey);
597
+ if (isUpdate) {
598
+ this.delete(cacheKey);
599
+ }
587
600
  const capacity = this.ensureCapacity(cacheKey, entrySize);
588
601
  if (!capacity.ok)
589
602
  return;
590
- let listChanged = !this.entries.has(cacheKey) || capacity.listChanged;
603
+ let listChanged = !isUpdate || capacity.listChanged;
591
604
  const entry = {
592
605
  url: metadata.url,
593
606
  content,
@@ -596,9 +609,6 @@ class InMemoryCacheStore {
596
609
  expiresAtMs,
597
610
  ...(metadata.title ? { title: metadata.title } : {}),
598
611
  };
599
- if (this.entries.has(cacheKey)) {
600
- this.delete(cacheKey);
601
- }
602
612
  this.entries.set(cacheKey, entry);
603
613
  this.currentBytes += entrySize;
604
614
  // Eviction (LRU: first insertion-order key) - Count based
@@ -1015,6 +1025,7 @@ export { composeCloseHandlers, createSessionStore, createSlotTracker, ensureSess
1015
1025
  const MIN_CLEANUP_INTERVAL_MS = 10_000;
1016
1026
  const MAX_CLEANUP_INTERVAL_MS = 60_000;
1017
1027
  const SESSION_CLOSE_BATCH_SIZE = 10;
1028
+ const SESSION_CLOSE_TIMEOUT_MS = 5_000;
1018
1029
  function getCleanupIntervalMs(sessionTtlMs) {
1019
1030
  return Math.min(Math.max(Math.floor(sessionTtlMs / 2), MIN_CLEANUP_INTERVAL_MS), MAX_CLEANUP_INTERVAL_MS);
1020
1031
  }
@@ -1080,23 +1091,46 @@ class SessionCleanupLoop {
1080
1091
  });
1081
1092
  }
1082
1093
  }
1094
+ const closePromise = Promise.allSettled([
1095
+ session.transport.close(),
1096
+ session.server.close(),
1097
+ ]);
1098
+ let timeoutId;
1099
+ const timeoutPromise = new Promise((_, reject) => {
1100
+ timeoutId = setTimeout(() => {
1101
+ reject(new Error('Session close timed out'));
1102
+ }, SESSION_CLOSE_TIMEOUT_MS);
1103
+ timeoutId.unref();
1104
+ });
1083
1105
  try {
1084
- unregisterMcpSessionServer(sessionId);
1106
+ const [transportResult, serverResult] = await Promise.race([
1107
+ closePromise,
1108
+ timeoutPromise,
1109
+ ]);
1110
+ if (transportResult.status === 'rejected') {
1111
+ this.logCloseFailure('transport', transportResult.reason);
1112
+ }
1113
+ if (serverResult.status === 'rejected') {
1114
+ this.logCloseFailure('server', serverResult.reason);
1115
+ }
1085
1116
  }
1086
1117
  catch (error) {
1087
- logWarn('Failed to unregister session server', {
1118
+ logWarn('Session close operation failed or timed out', {
1088
1119
  error: getErrorMessage(error),
1089
1120
  });
1090
1121
  }
1091
- const [transportResult, serverResult] = await Promise.allSettled([
1092
- session.transport.close(),
1093
- session.server.close(),
1094
- ]);
1095
- if (transportResult.status === 'rejected') {
1096
- this.logCloseFailure('transport', transportResult.reason);
1122
+ finally {
1123
+ if (timeoutId) {
1124
+ clearTimeout(timeoutId);
1125
+ }
1097
1126
  }
1098
- if (serverResult.status === 'rejected') {
1099
- this.logCloseFailure('server', serverResult.reason);
1127
+ try {
1128
+ unregisterMcpSessionServer(sessionId);
1129
+ }
1130
+ catch (error) {
1131
+ logWarn('Failed to unregister session server', {
1132
+ error: getErrorMessage(error),
1133
+ });
1100
1134
  }
1101
1135
  }
1102
1136
  logCloseFailure(target, error) {
@@ -7,6 +7,7 @@ export declare function serializeDocumentForMarkdown(document: Document, fallbac
7
7
  export declare function normalizeTabContent(document: Document): void;
8
8
  export declare function surfaceCodeEditorContent(document: Document): void;
9
9
  export declare function stripDocsControls(document: Document): void;
10
+ export declare function stripScreenReaderText(document: Document): void;
10
11
  export declare function runDocsControlPass(document: Document): void;
11
12
  export declare function prepareDocumentForMarkdown(document: Document, baseUrl?: string, signal?: AbortSignal): void;
12
13
  export declare function removeNoiseFromHtml(html: string, document?: Document, baseUrl?: string, signal?: AbortSignal): string;
@@ -1 +1 @@
1
- {"version":3,"file":"dom-prep.d.ts","sourceRoot":"","sources":["../../src/lib/dom-prep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA6oB9D,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAyCvD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CA6B9D;AAuBD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAY/D;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CASR;AA0CD,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAG5D;AA0RD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CA2BjE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE1D;AAWD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAQ3D;AAuDD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,IAAI,CAON;AA4BD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,MAAM,CAcR;AA0ED,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAChC,MAAM,CAaR;AA+KD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,GACjB,QAAQ,GAAG,IAAI,CAsBjB"}
1
+ {"version":3,"file":"dom-prep.d.ts","sourceRoot":"","sources":["../../src/lib/dom-prep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA4mB9D,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAyCvD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CA6B9D;AAuBD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAY/D;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CASR;AA0CD,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAG5D;AA0RD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CA2BjE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE1D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAY9D;AAWD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAQ3D;AAuDD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,IAAI,CAON;AA4BD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,MAAM,CAcR;AA0ED,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAChC,MAAM,CAaR;AAiMD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,GACjB,QAAQ,GAAG,IAAI,CA8BjB"}