@j0hanz/fetch-url-mcp 1.3.0 → 1.4.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 (249) hide show
  1. package/README.md +24 -21
  2. package/dist/cli.d.ts +1 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +18 -12
  5. package/dist/cli.js.map +1 -1
  6. package/dist/http/auth.d.ts +15 -1
  7. package/dist/http/auth.d.ts.map +1 -1
  8. package/dist/http/auth.js +84 -17
  9. package/dist/http/auth.js.map +1 -1
  10. package/dist/http/health.d.ts +1 -1
  11. package/dist/http/health.d.ts.map +1 -1
  12. package/dist/http/health.js +5 -15
  13. package/dist/http/health.js.map +1 -1
  14. package/dist/http/helpers.d.ts +1 -8
  15. package/dist/http/helpers.d.ts.map +1 -1
  16. package/dist/http/helpers.js +13 -13
  17. package/dist/http/helpers.js.map +1 -1
  18. package/dist/http/native.d.ts.map +1 -1
  19. package/dist/http/native.js +126 -23
  20. package/dist/http/native.js.map +1 -1
  21. package/dist/http/rate-limit.d.ts +2 -1
  22. package/dist/http/rate-limit.d.ts.map +1 -1
  23. package/dist/http/rate-limit.js +33 -26
  24. package/dist/http/rate-limit.js.map +1 -1
  25. package/dist/index.js +22 -19
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib/cache.d.ts.map +1 -0
  28. package/dist/{cache.js → lib/cache.js} +15 -11
  29. package/dist/lib/cache.js.map +1 -0
  30. package/dist/{config.d.ts → lib/config.d.ts} +2 -0
  31. package/dist/lib/config.d.ts.map +1 -0
  32. package/dist/{config.js → lib/config.js} +4 -2
  33. package/dist/lib/config.js.map +1 -0
  34. package/dist/lib/crypto.d.ts.map +1 -0
  35. package/dist/{crypto.js → lib/crypto.js} +6 -3
  36. package/dist/lib/crypto.js.map +1 -0
  37. package/dist/lib/dom-noise-removal.d.ts.map +1 -0
  38. package/dist/{dom-noise-removal.js → lib/dom-noise-removal.js} +1 -2
  39. package/dist/lib/dom-noise-removal.js.map +1 -0
  40. package/dist/lib/download.d.ts.map +1 -0
  41. package/dist/{download.js → lib/download.js} +7 -7
  42. package/dist/lib/download.js.map +1 -0
  43. package/dist/{errors.d.ts → lib/errors.d.ts} +3 -0
  44. package/dist/lib/errors.d.ts.map +1 -0
  45. package/dist/{errors.js → lib/errors.js} +8 -1
  46. package/dist/lib/errors.js.map +1 -0
  47. package/dist/lib/fetch-content.d.ts.map +1 -0
  48. package/dist/{fetch-content.js → lib/fetch-content.js} +3 -2
  49. package/dist/lib/fetch-content.js.map +1 -0
  50. package/dist/lib/fetch-stream.d.ts.map +1 -0
  51. package/dist/{fetch-stream.js → lib/fetch-stream.js} +3 -5
  52. package/dist/lib/fetch-stream.js.map +1 -0
  53. package/dist/lib/fetch.d.ts.map +1 -0
  54. package/dist/{fetch.js → lib/fetch.js} +100 -145
  55. package/dist/lib/fetch.js.map +1 -0
  56. package/dist/lib/host-normalization.d.ts.map +1 -0
  57. package/dist/{host-normalization.js → lib/host-normalization.js} +9 -9
  58. package/dist/lib/host-normalization.js.map +1 -0
  59. package/dist/lib/ip-blocklist.d.ts.map +1 -0
  60. package/dist/{ip-blocklist.js → lib/ip-blocklist.js} +11 -8
  61. package/dist/lib/ip-blocklist.js.map +1 -0
  62. package/dist/lib/json.d.ts.map +1 -0
  63. package/dist/{json.js → lib/json.js} +2 -5
  64. package/dist/lib/json.js.map +1 -0
  65. package/dist/lib/language-detection.d.ts.map +1 -0
  66. package/dist/{language-detection.js → lib/language-detection.js} +1 -7
  67. package/dist/lib/language-detection.js.map +1 -0
  68. package/dist/{markdown-cleanup.d.ts → lib/markdown-cleanup.d.ts} +1 -1
  69. package/dist/lib/markdown-cleanup.d.ts.map +1 -0
  70. package/dist/{markdown-cleanup.js → lib/markdown-cleanup.js} +2 -5
  71. package/dist/lib/markdown-cleanup.js.map +1 -0
  72. package/dist/lib/mcp-lifecycle.d.ts +5 -0
  73. package/dist/lib/mcp-lifecycle.d.ts.map +1 -0
  74. package/dist/lib/mcp-lifecycle.js +51 -0
  75. package/dist/lib/mcp-lifecycle.js.map +1 -0
  76. package/dist/lib/mcp-validator.d.ts.map +1 -0
  77. package/dist/{mcp-validator.js → lib/mcp-validator.js} +6 -12
  78. package/dist/lib/mcp-validator.js.map +1 -0
  79. package/dist/{mcp.d.ts → lib/mcp.d.ts} +1 -1
  80. package/dist/lib/mcp.d.ts.map +1 -0
  81. package/dist/{mcp.js → lib/mcp.js} +64 -37
  82. package/dist/lib/mcp.js.map +1 -0
  83. package/dist/lib/observability.d.ts.map +1 -0
  84. package/dist/{observability.js → lib/observability.js} +2 -1
  85. package/dist/lib/observability.js.map +1 -0
  86. package/dist/lib/server-tuning.d.ts.map +1 -0
  87. package/dist/{server-tuning.js → lib/server-tuning.js} +3 -2
  88. package/dist/lib/server-tuning.js.map +1 -0
  89. package/dist/{session.d.ts → lib/session.d.ts} +5 -1
  90. package/dist/lib/session.d.ts.map +1 -0
  91. package/dist/{session.js → lib/session.js} +46 -36
  92. package/dist/lib/session.js.map +1 -0
  93. package/dist/lib/timer-utils.d.ts +13 -0
  94. package/dist/lib/timer-utils.d.ts.map +1 -0
  95. package/dist/lib/timer-utils.js +44 -0
  96. package/dist/lib/timer-utils.js.map +1 -0
  97. package/dist/lib/tool-errors.d.ts.map +1 -0
  98. package/dist/{tool-errors.js → lib/tool-errors.js} +8 -5
  99. package/dist/lib/tool-errors.js.map +1 -0
  100. package/dist/{tool-pipeline.d.ts → lib/tool-pipeline.d.ts} +1 -2
  101. package/dist/lib/tool-pipeline.d.ts.map +1 -0
  102. package/dist/{tool-pipeline.js → lib/tool-pipeline.js} +11 -27
  103. package/dist/lib/tool-pipeline.js.map +1 -0
  104. package/dist/{tool-progress.d.ts → lib/tool-progress.d.ts} +1 -2
  105. package/dist/lib/tool-progress.d.ts.map +1 -0
  106. package/dist/{tool-progress.js → lib/tool-progress.js} +27 -21
  107. package/dist/lib/tool-progress.js.map +1 -0
  108. package/dist/lib/type-guards.d.ts.map +1 -0
  109. package/dist/{type-guards.js → lib/type-guards.js} +3 -4
  110. package/dist/lib/type-guards.js.map +1 -0
  111. package/dist/{prompts.d.ts → prompts/index.d.ts} +1 -1
  112. package/dist/prompts/index.d.ts.map +1 -0
  113. package/dist/{prompts.js → prompts/index.js} +13 -13
  114. package/dist/prompts/index.js.map +1 -0
  115. package/dist/{resources.d.ts → resources/index.d.ts} +1 -1
  116. package/dist/resources/index.d.ts.map +1 -0
  117. package/dist/{resources.js → resources/index.js} +30 -34
  118. package/dist/resources/index.js.map +1 -0
  119. package/dist/resources/instructions.d.ts.map +1 -0
  120. package/dist/resources/instructions.js +43 -0
  121. package/dist/resources/instructions.js.map +1 -0
  122. package/dist/schemas/inputs.d.ts +8 -0
  123. package/dist/schemas/inputs.d.ts.map +1 -0
  124. package/dist/schemas/inputs.js +25 -0
  125. package/dist/schemas/inputs.js.map +1 -0
  126. package/dist/schemas/outputs.d.ts +24 -0
  127. package/dist/schemas/outputs.d.ts.map +1 -0
  128. package/dist/schemas/outputs.js +78 -0
  129. package/dist/schemas/outputs.js.map +1 -0
  130. package/dist/server.d.ts.map +1 -1
  131. package/dist/server.js +31 -26
  132. package/dist/server.js.map +1 -1
  133. package/dist/tasks/execution.d.ts.map +1 -1
  134. package/dist/tasks/execution.js +105 -63
  135. package/dist/tasks/execution.js.map +1 -1
  136. package/dist/tasks/manager.d.ts +10 -0
  137. package/dist/tasks/manager.d.ts.map +1 -1
  138. package/dist/tasks/manager.js +62 -54
  139. package/dist/tasks/manager.js.map +1 -1
  140. package/dist/tasks/owner.d.ts +4 -4
  141. package/dist/tasks/owner.d.ts.map +1 -1
  142. package/dist/tasks/owner.js +9 -15
  143. package/dist/tasks/owner.js.map +1 -1
  144. package/dist/tasks/tool-registry.d.ts +12 -0
  145. package/dist/tasks/tool-registry.d.ts.map +1 -0
  146. package/dist/tasks/tool-registry.js +14 -0
  147. package/dist/tasks/tool-registry.js.map +1 -0
  148. package/dist/tools/fetch-url.d.ts +29 -0
  149. package/dist/tools/fetch-url.d.ts.map +1 -0
  150. package/dist/{tools.js → tools/fetch-url.js} +120 -167
  151. package/dist/tools/fetch-url.js.map +1 -0
  152. package/dist/tools/index.d.ts +3 -0
  153. package/dist/tools/index.d.ts.map +1 -0
  154. package/dist/tools/index.js +5 -0
  155. package/dist/tools/index.js.map +1 -0
  156. package/dist/transform/transform.d.ts.map +1 -1
  157. package/dist/transform/transform.js +164 -176
  158. package/dist/transform/transform.js.map +1 -1
  159. package/dist/transform/worker-pool.d.ts.map +1 -1
  160. package/dist/transform/worker-pool.js +9 -11
  161. package/dist/transform/worker-pool.js.map +1 -1
  162. package/dist/transform/workers/shared.d.ts +8 -0
  163. package/dist/transform/workers/shared.d.ts.map +1 -0
  164. package/dist/transform/workers/shared.js +131 -0
  165. package/dist/transform/workers/shared.js.map +1 -0
  166. package/dist/transform/workers/transform-child.js +5 -132
  167. package/dist/transform/workers/transform-child.js.map +1 -1
  168. package/dist/transform/workers/transform-worker.js +7 -125
  169. package/dist/transform/workers/transform-worker.js.map +1 -1
  170. package/package.json +8 -7
  171. package/dist/cache.d.ts.map +0 -1
  172. package/dist/cache.js.map +0 -1
  173. package/dist/config.d.ts.map +0 -1
  174. package/dist/config.js.map +0 -1
  175. package/dist/crypto.d.ts.map +0 -1
  176. package/dist/crypto.js.map +0 -1
  177. package/dist/dom-noise-removal.d.ts.map +0 -1
  178. package/dist/dom-noise-removal.js.map +0 -1
  179. package/dist/download.d.ts.map +0 -1
  180. package/dist/download.js.map +0 -1
  181. package/dist/errors.d.ts.map +0 -1
  182. package/dist/errors.js.map +0 -1
  183. package/dist/examples/mcp-fetch-url-client.js +0 -329
  184. package/dist/examples/mcp-fetch-url-client.js.map +0 -1
  185. package/dist/fetch-content.d.ts.map +0 -1
  186. package/dist/fetch-content.js.map +0 -1
  187. package/dist/fetch-stream.d.ts.map +0 -1
  188. package/dist/fetch-stream.js.map +0 -1
  189. package/dist/fetch.d.ts.map +0 -1
  190. package/dist/fetch.js.map +0 -1
  191. package/dist/host-normalization.d.ts.map +0 -1
  192. package/dist/host-normalization.js.map +0 -1
  193. package/dist/instructions.d.ts.map +0 -1
  194. package/dist/instructions.js +0 -108
  195. package/dist/instructions.js.map +0 -1
  196. package/dist/ip-blocklist.d.ts.map +0 -1
  197. package/dist/ip-blocklist.js.map +0 -1
  198. package/dist/json.d.ts.map +0 -1
  199. package/dist/json.js.map +0 -1
  200. package/dist/language-detection.d.ts.map +0 -1
  201. package/dist/language-detection.js.map +0 -1
  202. package/dist/markdown-cleanup.d.ts.map +0 -1
  203. package/dist/markdown-cleanup.js.map +0 -1
  204. package/dist/mcp-validator.d.ts.map +0 -1
  205. package/dist/mcp-validator.js.map +0 -1
  206. package/dist/mcp.d.ts.map +0 -1
  207. package/dist/mcp.js.map +0 -1
  208. package/dist/observability.d.ts.map +0 -1
  209. package/dist/observability.js.map +0 -1
  210. package/dist/prompts.d.ts.map +0 -1
  211. package/dist/prompts.js.map +0 -1
  212. package/dist/resources.d.ts.map +0 -1
  213. package/dist/resources.js.map +0 -1
  214. package/dist/server-tuning.d.ts.map +0 -1
  215. package/dist/server-tuning.js.map +0 -1
  216. package/dist/session.d.ts.map +0 -1
  217. package/dist/session.js.map +0 -1
  218. package/dist/timer-utils.d.ts +0 -6
  219. package/dist/timer-utils.d.ts.map +0 -1
  220. package/dist/timer-utils.js +0 -30
  221. package/dist/timer-utils.js.map +0 -1
  222. package/dist/tool-errors.d.ts.map +0 -1
  223. package/dist/tool-errors.js.map +0 -1
  224. package/dist/tool-pipeline.d.ts.map +0 -1
  225. package/dist/tool-pipeline.js.map +0 -1
  226. package/dist/tool-progress.d.ts.map +0 -1
  227. package/dist/tool-progress.js.map +0 -1
  228. package/dist/tools.d.ts +0 -54
  229. package/dist/tools.d.ts.map +0 -1
  230. package/dist/tools.js.map +0 -1
  231. package/dist/type-guards.d.ts.map +0 -1
  232. package/dist/type-guards.js.map +0 -1
  233. /package/dist/{cache.d.ts → lib/cache.d.ts} +0 -0
  234. /package/dist/{crypto.d.ts → lib/crypto.d.ts} +0 -0
  235. /package/dist/{dom-noise-removal.d.ts → lib/dom-noise-removal.d.ts} +0 -0
  236. /package/dist/{download.d.ts → lib/download.d.ts} +0 -0
  237. /package/dist/{fetch-content.d.ts → lib/fetch-content.d.ts} +0 -0
  238. /package/dist/{fetch-stream.d.ts → lib/fetch-stream.d.ts} +0 -0
  239. /package/dist/{fetch.d.ts → lib/fetch.d.ts} +0 -0
  240. /package/dist/{host-normalization.d.ts → lib/host-normalization.d.ts} +0 -0
  241. /package/dist/{ip-blocklist.d.ts → lib/ip-blocklist.d.ts} +0 -0
  242. /package/dist/{json.d.ts → lib/json.d.ts} +0 -0
  243. /package/dist/{language-detection.d.ts → lib/language-detection.d.ts} +0 -0
  244. /package/dist/{mcp-validator.d.ts → lib/mcp-validator.d.ts} +0 -0
  245. /package/dist/{observability.d.ts → lib/observability.d.ts} +0 -0
  246. /package/dist/{server-tuning.d.ts → lib/server-tuning.d.ts} +0 -0
  247. /package/dist/{tool-errors.d.ts → lib/tool-errors.d.ts} +0 -0
  248. /package/dist/{type-guards.d.ts → lib/type-guards.d.ts} +0 -0
  249. /package/dist/{instructions.d.ts → resources/instructions.d.ts} +0 -0
@@ -7,10 +7,11 @@ import { performance } from 'node:perf_hooks';
7
7
  import { PassThrough, Readable, Transform } from 'node:stream';
8
8
  import { buffer as consumeBuffer } from 'node:stream/consumers';
9
9
  import { finished, pipeline } from 'node:stream/promises';
10
+ import tls from 'node:tls';
10
11
  import { createBrotliDecompress, createGunzip, createInflate } from 'node:zlib';
11
12
  import { Agent } from 'undici';
12
13
  import { config } from './config.js';
13
- import { createErrorWithCode, FetchError, isSystemError } from './errors.js';
14
+ import { createErrorWithCode, FetchError, isSystemError, toError, } from './errors.js';
14
15
  import { decodeBuffer, getCharsetFromContentType, isBinaryContent, resolveEncoding, } from './fetch-content.js';
15
16
  import { toNodeReadableStream, toWebReadableStream } from './fetch-stream.js';
16
17
  import { createDefaultBlockList, normalizeIpForBlockList, } from './ip-blocklist.js';
@@ -49,9 +50,9 @@ class IpBlocker {
49
50
  if (this.security.blockedHosts.has(normalized))
50
51
  return true;
51
52
  const normalizedIp = normalizeIpForBlockList(normalized);
52
- if (!normalizedIp)
53
- return false;
54
- return this.blockList.check(normalizedIp.ip, normalizedIp.family);
53
+ return normalizedIp
54
+ ? this.blockList.check(normalizedIp.ip, normalizedIp.family)
55
+ : false;
55
56
  }
56
57
  }
57
58
  const VALIDATION_ERROR_CODE = 'VALIDATION_ERROR';
@@ -127,35 +128,20 @@ class UrlNormalizer {
127
128
  return hostname;
128
129
  }
129
130
  assertHostnameAllowed(hostname) {
130
- this.assertNotBlockedHost(hostname);
131
- this.assertNotBlockedIp(hostname);
132
- this.assertNotBlockedHostnameSuffix(hostname);
133
- }
134
- assertNotBlockedHost(hostname) {
135
131
  if (isCloudMetadataHost(hostname)) {
136
132
  throw createValidationError(`Blocked host: ${hostname}. Cloud metadata endpoints are not allowed`);
137
133
  }
138
- if (isLocalFetchAllowed())
139
- return;
140
- if (!this.security.blockedHosts.has(hostname))
141
- return;
142
- throw createValidationError(`Blocked host: ${hostname}. Internal hosts are not allowed`);
143
- }
144
- assertNotBlockedIp(hostname) {
145
- if (isCloudMetadataHost(hostname)) {
146
- throw createValidationError(`Blocked IP range: ${hostname}. Cloud metadata endpoints are not allowed`);
134
+ if (!isLocalFetchAllowed()) {
135
+ if (this.security.blockedHosts.has(hostname)) {
136
+ throw createValidationError(`Blocked host: ${hostname}. Internal hosts are not allowed`);
137
+ }
138
+ if (this.ipBlocker.isBlockedIp(hostname)) {
139
+ throw createValidationError(`Blocked IP range: ${hostname}. Private IPs are not allowed`);
140
+ }
141
+ }
142
+ if (this.blockedHostSuffixes.some((suffix) => hostname.endsWith(suffix))) {
143
+ throw createValidationError(`Blocked hostname pattern: ${hostname}. Internal domain suffixes are not allowed`);
147
144
  }
148
- if (isLocalFetchAllowed())
149
- return;
150
- if (!this.ipBlocker.isBlockedIp(hostname))
151
- return;
152
- throw createValidationError(`Blocked IP range: ${hostname}. Private IPs are not allowed`);
153
- }
154
- assertNotBlockedHostnameSuffix(hostname) {
155
- const blocked = this.blockedHostSuffixes.some((suffix) => hostname.endsWith(suffix));
156
- if (!blocked)
157
- return;
158
- throw createValidationError(`Blocked hostname pattern: ${hostname}. Internal domain suffixes are not allowed`);
159
145
  }
160
146
  }
161
147
  function getPatternGroup(groups, key) {
@@ -563,43 +549,31 @@ function parseRetryAfter(header) {
563
549
  return 0;
564
550
  return Math.ceil(deltaMs / 1000);
565
551
  }
566
- function createCanceledFetchError(url) {
567
- return new FetchError('Request was canceled', url, 499, {
568
- reason: 'aborted',
569
- });
570
- }
571
- function createTimeoutFetchError(url, timeoutMs) {
572
- return new FetchError(`Request timeout after ${timeoutMs}ms`, url, 504, {
573
- timeout: timeoutMs,
574
- });
575
- }
576
- function createRateLimitedFetchError(url, retryAfterHeader) {
577
- return new FetchError('Too many requests', url, 429, {
578
- retryAfter: parseRetryAfter(retryAfterHeader),
579
- });
580
- }
581
- function createHttpFetchError(url, status, statusText) {
582
- return new FetchError(`HTTP ${status}: ${statusText}`, url, status);
583
- }
584
- function createTooManyRedirectsFetchError(url) {
585
- return new FetchError('Too many redirects', url);
586
- }
587
- function createMissingRedirectLocationFetchError(url) {
588
- return new FetchError('Redirect response missing Location header', url);
589
- }
590
- function buildNetworkErrorMessage(url) {
591
- return `Network error: Could not reach ${url}`;
592
- }
593
- function createNetworkFetchError(url, message) {
594
- return new FetchError(buildNetworkErrorMessage(url), url, undefined, message ? { message } : {});
595
- }
596
- function createUnknownFetchError(url, message) {
597
- return new FetchError(message, url);
598
- }
599
- function createAbortedFetchError(url) {
600
- return new FetchError('Request was aborted during response read', url, 499, {
601
- reason: 'aborted',
602
- });
552
+ function createFetchError(input, url) {
553
+ switch (input.kind) {
554
+ case 'canceled':
555
+ return new FetchError('Request was canceled', url, 499, {
556
+ reason: 'aborted',
557
+ });
558
+ case 'aborted':
559
+ return new FetchError('Request was aborted during response read', url, 499, { reason: 'aborted' });
560
+ case 'timeout':
561
+ return new FetchError(`Request timeout after ${input.timeout}ms`, url, 504, { timeout: input.timeout });
562
+ case 'rate-limited':
563
+ return new FetchError('Too many requests', url, 429, {
564
+ retryAfter: parseRetryAfter(input.retryAfter),
565
+ });
566
+ case 'http':
567
+ return new FetchError(`HTTP ${input.status}: ${input.statusText}`, url, input.status);
568
+ case 'too-many-redirects':
569
+ return new FetchError('Too many redirects', url);
570
+ case 'missing-redirect-location':
571
+ return new FetchError('Redirect response missing Location header', url);
572
+ case 'network':
573
+ return new FetchError(`Network error: Could not reach ${url}`, url, undefined, { message: input.message });
574
+ case 'unknown':
575
+ return new FetchError(input.message ?? 'Unexpected error', url);
576
+ }
603
577
  }
604
578
  function isAbortError(error) {
605
579
  return (isError(error) &&
@@ -622,15 +596,15 @@ function mapFetchError(error, fallbackUrl, timeoutMs) {
622
596
  const url = resolveErrorUrl(error, fallbackUrl);
623
597
  if (isAbortError(error)) {
624
598
  return isTimeoutError(error)
625
- ? createTimeoutFetchError(url, timeoutMs)
626
- : createCanceledFetchError(url);
599
+ ? createFetchError({ kind: 'timeout', timeout: timeoutMs }, url)
600
+ : createFetchError({ kind: 'canceled' }, url);
627
601
  }
628
602
  if (!isError(error))
629
- return createUnknownFetchError(url, 'Unexpected error');
603
+ return createFetchError({ kind: 'unknown', message: 'Unexpected error' }, url);
630
604
  if (!isSystemError(error)) {
631
605
  const err = error;
632
606
  const causeStr = err.cause instanceof Error ? err.cause.message : String(err.cause);
633
- return createNetworkFetchError(url, `${err.message}. Cause: ${causeStr}`);
607
+ return createFetchError({ kind: 'network', message: `${err.message}. Cause: ${causeStr}` }, url);
634
608
  }
635
609
  const { code } = error;
636
610
  if (code === 'ETIMEOUT') {
@@ -643,10 +617,7 @@ function mapFetchError(error, fallbackUrl, timeoutMs) {
643
617
  code === 'EINVAL') {
644
618
  return new FetchError(error.message, url, 400, { code });
645
619
  }
646
- return new FetchError(buildNetworkErrorMessage(url), url, undefined, {
647
- code,
648
- message: error.message,
649
- });
620
+ return createFetchError({ kind: 'network', message: error.message }, url);
650
621
  }
651
622
  const fetchChannel = diagnosticsChannel.channel('fetch-url-mcp.fetch');
652
623
  const SLOW_REQUEST_THRESHOLD_MS = 5000;
@@ -662,6 +633,14 @@ class FetchTelemetry {
662
633
  redact(url) {
663
634
  return this.redactor.redact(url);
664
635
  }
636
+ contextFields(ctx) {
637
+ return {
638
+ ...(ctx.contextRequestId
639
+ ? { contextRequestId: ctx.contextRequestId }
640
+ : {}),
641
+ ...(ctx.operationId ? { operationId: ctx.operationId } : {}),
642
+ };
643
+ }
665
644
  start(url, method) {
666
645
  const safeUrl = this.redactor.redact(url);
667
646
  const contextRequestId = this.context.getRequestId();
@@ -676,109 +655,81 @@ class FetchTelemetry {
676
655
  ctx.contextRequestId = contextRequestId;
677
656
  if (operationId)
678
657
  ctx.operationId = operationId;
679
- const event = {
658
+ const ctxFields = this.contextFields(ctx);
659
+ this.publish({
680
660
  v: 1,
681
661
  type: 'start',
682
662
  requestId: ctx.requestId,
683
663
  method: ctx.method,
684
664
  url: ctx.url,
685
- };
686
- if (ctx.contextRequestId)
687
- event.contextRequestId = ctx.contextRequestId;
688
- if (ctx.operationId)
689
- event.operationId = ctx.operationId;
690
- this.publish(event);
691
- const logData = {
665
+ ...ctxFields,
666
+ });
667
+ this.logger.debug('HTTP Request', {
692
668
  requestId: ctx.requestId,
693
669
  method: ctx.method,
694
670
  url: ctx.url,
695
- };
696
- if (ctx.contextRequestId)
697
- logData['contextRequestId'] = ctx.contextRequestId;
698
- if (ctx.operationId)
699
- logData['operationId'] = ctx.operationId;
700
- this.logger.debug('HTTP Request', logData);
671
+ ...ctxFields,
672
+ });
701
673
  return ctx;
702
674
  }
703
675
  recordResponse(context, response, contentSize) {
704
676
  const duration = performance.now() - context.startTime;
705
677
  const durationLabel = `${Math.round(duration)}ms`;
706
- const event = {
678
+ const ctxFields = this.contextFields(context);
679
+ this.publish({
707
680
  v: 1,
708
681
  type: 'end',
709
682
  requestId: context.requestId,
710
683
  status: response.status,
711
684
  duration,
712
- };
713
- if (context.contextRequestId)
714
- event.contextRequestId = context.contextRequestId;
715
- if (context.operationId)
716
- event.operationId = context.operationId;
717
- this.publish(event);
685
+ ...ctxFields,
686
+ });
718
687
  const contentType = response.headers.get('content-type') ?? undefined;
719
688
  const contentLengthHeader = response.headers.get('content-length');
720
689
  const size = contentLengthHeader ??
721
690
  (contentSize === undefined ? undefined : String(contentSize));
722
- const logData = {
691
+ this.logger.debug('HTTP Response', {
723
692
  requestId: context.requestId,
724
693
  status: response.status,
725
694
  url: context.url,
726
695
  duration: durationLabel,
727
- };
728
- if (context.contextRequestId)
729
- logData['contextRequestId'] = context.contextRequestId;
730
- if (context.operationId)
731
- logData['operationId'] = context.operationId;
732
- if (contentType)
733
- logData['contentType'] = contentType;
734
- if (size)
735
- logData['size'] = size;
736
- this.logger.debug('HTTP Response', logData);
696
+ ...ctxFields,
697
+ ...(contentType ? { contentType } : {}),
698
+ ...(size ? { size } : {}),
699
+ });
737
700
  if (duration > SLOW_REQUEST_THRESHOLD_MS) {
738
- const warnData = {
701
+ this.logger.warn('Slow HTTP request detected', {
739
702
  requestId: context.requestId,
740
703
  url: context.url,
741
704
  duration: durationLabel,
742
- };
743
- if (context.contextRequestId)
744
- warnData['contextRequestId'] = context.contextRequestId;
745
- if (context.operationId)
746
- warnData['operationId'] = context.operationId;
747
- this.logger.warn('Slow HTTP request detected', warnData);
705
+ ...ctxFields,
706
+ });
748
707
  }
749
708
  }
750
709
  recordError(context, error, status) {
751
710
  const duration = performance.now() - context.startTime;
752
- const err = isError(error) ? error : new Error(String(error));
711
+ const err = toError(error);
753
712
  const code = isSystemError(err) ? err.code : undefined;
754
- const event = {
713
+ const ctxFields = this.contextFields(context);
714
+ this.publish({
755
715
  v: 1,
756
716
  type: 'error',
757
717
  requestId: context.requestId,
758
718
  url: context.url,
759
719
  error: err.message,
760
720
  duration,
761
- };
762
- if (code !== undefined)
763
- event.code = code;
764
- if (status !== undefined)
765
- event.status = status;
766
- if (context.contextRequestId)
767
- event.contextRequestId = context.contextRequestId;
768
- if (context.operationId)
769
- event.operationId = context.operationId;
770
- this.publish(event);
721
+ ...(code !== undefined ? { code } : {}),
722
+ ...(status !== undefined ? { status } : {}),
723
+ ...ctxFields,
724
+ });
771
725
  const logData = {
772
726
  requestId: context.requestId,
773
727
  url: context.url,
774
728
  status,
775
729
  code,
776
730
  error: err.message,
731
+ ...ctxFields,
777
732
  };
778
- if (context.contextRequestId)
779
- logData['contextRequestId'] = context.contextRequestId;
780
- if (context.operationId)
781
- logData['operationId'] = context.operationId;
782
733
  if (status === 429) {
783
734
  this.logger.warn('HTTP Request Error', logData);
784
735
  return;
@@ -835,7 +786,7 @@ class RedirectFollower {
835
786
  return { response, url: currentUrl };
836
787
  currentUrl = nextUrl;
837
788
  }
838
- throw createTooManyRedirectsFetchError(currentUrl);
789
+ throw createFetchError({ kind: 'too-many-redirects' }, currentUrl);
839
790
  }
840
791
  async performFetchCycle(currentUrl, init, redirectLimit, redirectCount, ipAddress) {
841
792
  const fetchInit = {
@@ -843,6 +794,7 @@ class RedirectFollower {
843
794
  redirect: 'manual',
844
795
  };
845
796
  if (ipAddress) {
797
+ const ca = tls.rootCertificates.length > 0 ? tls.rootCertificates : undefined;
846
798
  const agent = new Agent({
847
799
  connect: {
848
800
  lookup: (hostname, options, callback) => {
@@ -854,6 +806,8 @@ class RedirectFollower {
854
806
  callback(null, ipAddress, family);
855
807
  }
856
808
  },
809
+ timeout: config.fetcher.timeout,
810
+ ...(ca ? { ca } : {}),
857
811
  },
858
812
  pipelining: 1,
859
813
  connections: 1,
@@ -865,7 +819,10 @@ class RedirectFollower {
865
819
  const response = await this.fetchFn(currentUrl, fetchInit);
866
820
  if (!isRedirectStatus(response.status))
867
821
  return { response };
868
- this.assertRedirectWithinLimit(response, currentUrl, redirectLimit, redirectCount);
822
+ if (redirectCount >= redirectLimit) {
823
+ cancelResponseBody(response);
824
+ throw createFetchError({ kind: 'too-many-redirects' }, currentUrl);
825
+ }
869
826
  const location = this.getRedirectLocation(response, currentUrl);
870
827
  cancelResponseBody(response);
871
828
  const nextUrl = this.resolveRedirectTarget(currentUrl, location);
@@ -879,18 +836,12 @@ class RedirectFollower {
879
836
  nextUrl,
880
837
  };
881
838
  }
882
- assertRedirectWithinLimit(response, currentUrl, redirectLimit, redirectCount) {
883
- if (redirectCount < redirectLimit)
884
- return;
885
- cancelResponseBody(response);
886
- throw createTooManyRedirectsFetchError(currentUrl);
887
- }
888
839
  getRedirectLocation(response, currentUrl) {
889
840
  const location = response.headers.get('location');
890
841
  if (location)
891
842
  return location;
892
843
  cancelResponseBody(response);
893
- throw createMissingRedirectLocationFetchError(currentUrl);
844
+ throw createFetchError({ kind: 'missing-redirect-location' }, currentUrl);
894
845
  }
895
846
  resolveRedirectTarget(baseUrl, location) {
896
847
  let resolved;
@@ -929,7 +880,7 @@ class ResponseTextReader {
929
880
  async readBuffer(response, url, maxBytes, signal, encoding) {
930
881
  if (signal?.aborted) {
931
882
  cancelResponseBody(response);
932
- throw createAbortedFetchError(url);
883
+ throw createFetchError({ kind: 'aborted' }, url);
933
884
  }
934
885
  if (!response.body) {
935
886
  return this.readNonStreamBuffer(response, url, maxBytes, signal, encoding);
@@ -938,7 +889,7 @@ class ResponseTextReader {
938
889
  }
939
890
  async readNonStreamBuffer(response, url, maxBytes, signal, encoding) {
940
891
  if (signal?.aborted)
941
- throw createCanceledFetchError(url);
892
+ throw createFetchError({ kind: 'canceled' }, url);
942
893
  const limit = maxBytes <= 0 ? Number.POSITIVE_INFINITY : maxBytes;
943
894
  let buffer;
944
895
  let truncated = false;
@@ -1014,7 +965,7 @@ class ResponseTextReader {
1014
965
  callback(null, buf);
1015
966
  }
1016
967
  catch (error) {
1017
- callback(error instanceof Error ? error : new Error(String(error)));
968
+ callback(toError(error));
1018
969
  }
1019
970
  },
1020
971
  });
@@ -1037,7 +988,7 @@ class ResponseTextReader {
1037
988
  }
1038
989
  catch (error) {
1039
990
  if (signal?.aborted)
1040
- throw createAbortedFetchError(url);
991
+ throw createFetchError({ kind: 'aborted' }, url);
1041
992
  if (error instanceof FetchError)
1042
993
  throw error;
1043
994
  if (error instanceof MaxBytesError) {
@@ -1084,11 +1035,15 @@ function buildRequestInit(headers, signal) {
1084
1035
  }
1085
1036
  function resolveResponseError(response, finalUrl) {
1086
1037
  if (response.status === 429) {
1087
- return createRateLimitedFetchError(finalUrl, response.headers.get('retry-after'));
1038
+ return createFetchError({ kind: 'rate-limited', retryAfter: response.headers.get('retry-after') }, finalUrl);
1088
1039
  }
1089
1040
  return response.ok
1090
1041
  ? null
1091
- : createHttpFetchError(finalUrl, response.status, response.statusText);
1042
+ : createFetchError({
1043
+ kind: 'http',
1044
+ status: response.status,
1045
+ statusText: response.statusText,
1046
+ }, finalUrl);
1092
1047
  }
1093
1048
  function resolveMediaType(contentType) {
1094
1049
  if (!contentType)
@@ -1250,7 +1205,7 @@ async function decodeResponseIfNeeded(response, url, signal) {
1250
1205
  signal.addEventListener('abort', abortDecodePipeline, { once: true });
1251
1206
  }
1252
1207
  void decodedPipeline.catch((error) => {
1253
- decodedNodeStream.destroy(error instanceof Error ? error : new Error(String(error)));
1208
+ decodedNodeStream.destroy(toError(error));
1254
1209
  });
1255
1210
  const decodedBodyStream = toWebReadableStream(decodedNodeStream, url, 'response:decode-content-encoding');
1256
1211
  const decodedReader = decodedBodyStream.getReader();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/lib/fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-normalization.d.ts","sourceRoot":"","sources":["../../src/lib/host-normalization.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB1D"}
@@ -7,15 +7,15 @@ export function normalizeHost(value) {
7
7
  const first = takeFirstHostValue(trimmedLower);
8
8
  if (!first)
9
9
  return null;
10
- const normalizedSocketAddress = normalizeSocketAddress(first);
11
- if (normalizedSocketAddress)
12
- return normalizedSocketAddress;
13
- const parsed = parseHostWithUrl(first);
14
- if (parsed)
15
- return parsed;
16
- const normalizedBracketedIpv6 = normalizeBracketedIpv6(first);
17
- if (normalizedBracketedIpv6)
18
- return normalizedBracketedIpv6;
10
+ for (const resolveCandidate of [
11
+ () => normalizeSocketAddress(first),
12
+ () => parseHostWithUrl(first),
13
+ () => normalizeBracketedIpv6(first),
14
+ ]) {
15
+ const candidate = resolveCandidate();
16
+ if (candidate !== null)
17
+ return candidate;
18
+ }
19
19
  if (isIpV6Literal(first)) {
20
20
  return normalizeHostname(first);
21
21
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-normalization.js","sourceRoot":"","sources":["../../src/lib/host-normalization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-blocklist.d.ts","sourceRoot":"","sources":["../../src/lib/ip-blocklist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAQ,MAAM,UAAU,CAAC;AAE3C,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAkDhC,wBAAgB,sBAAsB,IAAI,SAAS,CAMlD;AAcD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,GACZ;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAmBzC"}
@@ -63,14 +63,17 @@ export function normalizeIpForBlockList(input) {
63
63
  if (!normalizedInput)
64
64
  return null;
65
65
  const ipType = isIP(normalizedInput);
66
- if (ipType === 4)
67
- return { ip: normalizedInput, family: 'ipv4' };
68
- if (ipType === 6) {
69
- const mapped = extractMappedIpv4(normalizedInput);
70
- if (mapped)
71
- return { ip: mapped, family: 'ipv4' };
72
- return { ip: normalizedInput, family: 'ipv6' };
66
+ switch (ipType) {
67
+ case 4:
68
+ return { ip: normalizedInput, family: 'ipv4' };
69
+ case 6: {
70
+ const mapped = extractMappedIpv4(normalizedInput);
71
+ return mapped
72
+ ? { ip: mapped, family: 'ipv4' }
73
+ : { ip: normalizedInput, family: 'ipv6' };
74
+ }
75
+ default:
76
+ return null;
73
77
  }
74
- return null;
75
78
  }
76
79
  //# sourceMappingURL=ip-blocklist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ip-blocklist.js","sourceRoot":"","sources":["../../src/lib/ip-blocklist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/lib/json.ts"],"names":[],"mappings":"AAoDA,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,KAAK,SAAI,EACT,IAAI,mBAAgB,GACnB,MAAM,CAGR"}