@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
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/tasks/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/tasks/manager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ServerResult } from '@modelcontextprotocol/sdk/types.js';
2
- import type { ProgressNotification } from '../tools.js';
3
- export interface HandlerExtra {
2
+ import type { ProgressNotification } from '../lib/tool-progress.js';
3
+ interface HandlerExtra {
4
4
  sessionId?: string;
5
5
  authInfo?: {
6
6
  clientId?: string;
@@ -12,11 +12,11 @@ export interface HandlerExtra {
12
12
  }
13
13
  export interface ToolCallContext {
14
14
  ownerKey: string;
15
+ sessionId?: string;
15
16
  signal?: AbortSignal;
16
17
  requestId?: string | number;
17
18
  sendNotification?: (notification: ProgressNotification) => Promise<void>;
18
19
  }
19
- declare function isRecord(value: unknown): value is Record<string, unknown>;
20
20
  /** Strip keys whose value is `undefined`, returning an object with only the
21
21
  * present keys. Return type correctly omits the `undefined` union so the result
22
22
  * is compatible with `exactOptionalPropertyTypes`. */
@@ -29,5 +29,5 @@ export declare function resolveTaskOwnerKey(extra?: HandlerExtra): string;
29
29
  export declare function resolveToolCallContext(extra?: HandlerExtra): ToolCallContext;
30
30
  export declare function isServerResult(value: unknown): value is ServerResult;
31
31
  export declare function tryReadToolStructuredError(value: unknown): string | undefined;
32
- export { isRecord };
32
+ export {};
33
33
  //# sourceMappingURL=owner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../../src/tasks/owner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAOxD,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElE;AAED;;sDAEsD;AACtD,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,KAAK,GACnD,KAAK,GACL,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CAClC,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAQ9D;AA2BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAyB1E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAKhE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,eAAe,CAW5E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAIpE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkB7E;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../../src/tasks/owner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAIvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAOpE,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AAED;;sDAEsD;AACtD,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,KAAK,GACnD,KAAK,GACL,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CAClC,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAQ9D;AA2BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAyB1E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAMhE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,eAAe,CAQ5E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAIpE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkB7E"}
@@ -1,7 +1,5 @@
1
- import { isObject } from '../type-guards.js';
2
- function isRecord(value) {
3
- return isObject(value);
4
- }
1
+ import { createHash } from 'node:crypto';
2
+ import { isObject } from '../lib/type-guards.js';
5
3
  export function compact(obj) {
6
4
  const result = {};
7
5
  for (const key of Object.keys(obj)) {
@@ -58,20 +56,17 @@ export function resolveTaskOwnerKey(extra) {
58
56
  if (extra?.authInfo?.clientId)
59
57
  return `client:${extra.authInfo.clientId}`;
60
58
  if (extra?.authInfo?.token)
61
- return `token:${extra.authInfo.token}`;
59
+ return `token:${createHash('sha256').update(extra.authInfo.token).digest('hex')}`;
62
60
  return 'default';
63
61
  }
64
62
  export function resolveToolCallContext(extra) {
65
- const context = {
63
+ return compact({
66
64
  ownerKey: resolveTaskOwnerKey(extra),
67
- };
68
- if (extra?.signal)
69
- context.signal = extra.signal;
70
- if (extra?.requestId !== undefined)
71
- context.requestId = extra.requestId;
72
- if (extra?.sendNotification)
73
- context.sendNotification = extra.sendNotification;
74
- return context;
65
+ sessionId: extra?.sessionId,
66
+ signal: extra?.signal,
67
+ requestId: extra?.requestId,
68
+ sendNotification: extra?.sendNotification,
69
+ });
75
70
  }
76
71
  export function isServerResult(value) {
77
72
  return (isObject(value) && Array.isArray(value.content));
@@ -95,5 +90,4 @@ export function tryReadToolStructuredError(value) {
95
90
  return undefined;
96
91
  }
97
92
  }
98
- export { isRecord };
99
93
  //# sourceMappingURL=owner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"owner.js","sourceRoot":"","sources":["../../src/tasks/owner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"owner.js","sourceRoot":"","sources":["../../src/tasks/owner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ServerResult } from '@modelcontextprotocol/sdk/types.js';
2
+ import type { ToolHandlerExtra } from '../lib/tool-progress.js';
3
+ export interface TaskCapableToolDescriptor<TArgs = unknown> {
4
+ name: string;
5
+ parseArguments: (args: unknown) => TArgs;
6
+ execute: (args: TArgs, extra?: ToolHandlerExtra) => Promise<ServerResult>;
7
+ }
8
+ export declare function registerTaskCapableTool<TArgs>(descriptor: TaskCapableToolDescriptor<TArgs>): void;
9
+ export declare function unregisterTaskCapableTool(name: string): void;
10
+ export declare function getTaskCapableTool(name: string): TaskCapableToolDescriptor | undefined;
11
+ export declare function hasTaskCapableTool(name: string): boolean;
12
+ //# sourceMappingURL=tool-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/tasks/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,WAAW,yBAAyB,CAAC,KAAK,GAAG,OAAO;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CAC3E;AAID,wBAAgB,uBAAuB,CAAC,KAAK,EAC3C,UAAU,EAAE,yBAAyB,CAAC,KAAK,CAAC,GAC3C,IAAI,CAKN;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GACX,yBAAyB,GAAG,SAAS,CAEvC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD"}
@@ -0,0 +1,14 @@
1
+ const taskCapableTools = new Map();
2
+ export function registerTaskCapableTool(descriptor) {
3
+ taskCapableTools.set(descriptor.name, descriptor);
4
+ }
5
+ export function unregisterTaskCapableTool(name) {
6
+ taskCapableTools.delete(name);
7
+ }
8
+ export function getTaskCapableTool(name) {
9
+ return taskCapableTools.get(name);
10
+ }
11
+ export function hasTaskCapableTool(name) {
12
+ return taskCapableTools.has(name);
13
+ }
14
+ //# sourceMappingURL=tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/tasks/tool-registry.ts"],"names":[],"mappings":"AAUA,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAqC,CAAC;AAEtE,MAAM,UAAU,uBAAuB,CACrC,UAA4C;IAE5C,gBAAgB,CAAC,GAAG,CAClB,UAAU,CAAC,IAAI,EACf,UAAuC,CACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAY;IAEZ,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { ContentBlock } from '@modelcontextprotocol/sdk/types.js';
3
+ import { type ToolHandlerExtra } from '../lib/tool-progress.js';
4
+ interface FetchUrlInput {
5
+ url: string;
6
+ skipNoiseRemoval?: boolean | undefined;
7
+ forceRefresh?: boolean | undefined;
8
+ maxInlineChars?: number | undefined;
9
+ }
10
+ type ToolContentBlockUnion = ContentBlock;
11
+ interface ToolResponseBase {
12
+ [key: string]: unknown;
13
+ content: ToolContentBlockUnion[];
14
+ structuredContent?: Record<string, unknown> | undefined;
15
+ isError?: boolean;
16
+ }
17
+ export declare const FETCH_URL_TOOL_NAME = "fetch-url";
18
+ export declare function fetchUrlToolHandler(input: FetchUrlInput, extra?: ToolHandlerExtra): Promise<ToolResponseBase>;
19
+ /**
20
+ * Stdio-path guard: ensures a request context (requestId, sessionId) is set
21
+ * in AsyncLocalStorage before invoking the handler. On the HTTP path the SDK
22
+ * populates `extra.requestId`/`extra.requestInfo`, so this is a no-op there.
23
+ * On the stdio path there is no SDK-provided context, so we derive one from
24
+ * the extra fields or generate a fresh UUID.
25
+ */
26
+ export declare function withRequestContextIfMissing<TParams, TResult, TExtra = unknown>(handler: (params: TParams, extra?: TExtra) => Promise<TResult>): (params: TParams, extra?: TExtra) => Promise<TResult>;
27
+ export declare function registerTools(server: McpServer): void;
28
+ export {};
29
+ //# sourceMappingURL=fetch-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-url.d.ts","sourceRoot":"","sources":["../../src/tools/fetch-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAEV,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,oCAAoC,CAAC;AAiC5C,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAUjC,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,KAAK,qBAAqB,GAAG,YAAY,CAAC;AAG1C,UAAU,gBAAgB;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAyX/C,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAK3B;AA6DD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,EAC5E,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAC7D,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAmBvD;AAwBD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwCrD"}
@@ -1,146 +1,35 @@
1
+ import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
1
2
  import { randomUUID } from 'node:crypto';
2
3
  import { z } from 'zod';
3
- import * as cache from './cache.js';
4
- import { config } from './config.js';
5
- import { generateSafeFilename } from './download.js';
6
- import { getRequestId, logDebug, logError, logWarn, runWithRequestContext, } from './observability.js';
7
- import { createToolErrorResponse, handleToolError } from './tool-errors.js';
8
- import { appendTruncationMarker, markdownTransform, parseCachedMarkdownResult, performSharedFetch, readNestedRecord, readString, serializeMarkdownResult, TRUNCATION_MARKER, withSignal, } from './tool-pipeline.js';
9
- import { createProgressReporter, } from './tool-progress.js';
10
- import { isObject } from './type-guards.js';
11
- // Re-export public API so existing consumers keep working.
12
- export { createToolErrorResponse, handleToolError } from './tool-errors.js';
13
- export { executeFetchPipeline, parseCachedMarkdownResult, performSharedFetch, } from './tool-pipeline.js';
14
- export { createProgressReporter, } from './tool-progress.js';
15
- export const fetchUrlInputSchema = z.strictObject({
16
- url: z
17
- .url({ protocol: /^https?$/i })
18
- .min(1)
19
- .max(config.constants.maxUrlLength)
20
- .describe(`The URL of the webpage to fetch and convert to Markdown. Max ${config.constants.maxUrlLength} characters.`),
21
- skipNoiseRemoval: z
22
- .boolean()
23
- .optional()
24
- .describe('When true, preserves navigation, footers, and other elements normally filtered as noise'),
25
- forceRefresh: z
26
- .boolean()
27
- .optional()
28
- .describe('When true, bypasses the cache and fetches fresh content from the URL'),
29
- maxInlineChars: z
30
- .number()
31
- .int()
32
- .min(0)
33
- .max(config.constants.maxHtmlSize)
34
- .optional()
35
- .describe(`Optional per-call inline markdown limit (0 to ${config.constants.maxHtmlSize}). 0 means unlimited. If a global inline limit is configured, the lower value is used.`),
36
- });
37
- export const fetchUrlOutputSchema = z.strictObject({
38
- url: z
39
- .string()
40
- .min(1)
41
- .max(config.constants.maxUrlLength)
42
- .describe('The fetched URL'),
43
- inputUrl: z
44
- .string()
45
- .max(config.constants.maxUrlLength)
46
- .optional()
47
- .describe('The original URL provided by the caller'),
48
- resolvedUrl: z
49
- .string()
50
- .max(config.constants.maxUrlLength)
51
- .optional()
52
- .describe('The normalized or transformed URL that was fetched'),
53
- finalUrl: z
54
- .string()
55
- .max(config.constants.maxUrlLength)
56
- .optional()
57
- .describe('The final response URL after redirects'),
58
- cacheResourceUri: z
59
- .string()
60
- .max(config.constants.maxUrlLength)
61
- .optional()
62
- .describe('Internal cache resource URI for retrieving full markdown via resources/read'),
63
- title: z.string().max(512).optional().describe('Page title'),
64
- metadata: z
65
- .strictObject({
66
- title: z.string().max(512).optional().describe('Detected page title'),
67
- description: z
68
- .string()
69
- .max(2048)
70
- .optional()
71
- .describe('Detected page description'),
72
- author: z.string().max(512).optional().describe('Detected page author'),
73
- image: z
74
- .string()
75
- .max(config.constants.maxUrlLength)
76
- .optional()
77
- .describe('Detected page preview image URL'),
78
- favicon: z
79
- .string()
80
- .max(config.constants.maxUrlLength)
81
- .optional()
82
- .describe('Detected page favicon URL'),
83
- publishedAt: z
84
- .string()
85
- .max(64)
86
- .optional()
87
- .describe('Detected publication date (if present)'),
88
- modifiedAt: z
89
- .string()
90
- .max(64)
91
- .optional()
92
- .describe('Detected last modified date (if present)'),
93
- })
94
- .optional()
95
- .describe('Detected metadata extracted from page markup'),
96
- markdown: (config.constants.maxInlineContentChars > 0
97
- ? z.string().max(config.constants.maxInlineContentChars)
98
- : z.string())
99
- .optional()
100
- .describe('The extracted content in Markdown format. May be truncated if exceeding inline limits; check "truncated" field'),
101
- fromCache: z
102
- .boolean()
103
- .optional()
104
- .describe('Whether this response was served from cache'),
105
- fetchedAt: z
106
- .string()
107
- .max(64)
108
- .optional()
109
- .describe('ISO timestamp of fetch/cache retrieval time'),
110
- contentSize: z
111
- .number()
112
- .int()
113
- .min(0)
114
- .max(config.constants.maxHtmlSize * 4)
115
- .optional()
116
- .describe('Full markdown size in characters before inline truncation'),
117
- truncated: z
118
- .boolean()
119
- .optional()
120
- .describe('Whether the returned markdown was truncated'),
121
- });
4
+ import * as cache from '../lib/cache.js';
5
+ import { config } from '../lib/config.js';
6
+ import { generateSafeFilename } from '../lib/download.js';
7
+ import { isAbortError, toError } from '../lib/errors.js';
8
+ import { getRequestId, logDebug, logError, logWarn, runWithRequestContext, } from '../lib/observability.js';
9
+ import { handleToolError } from '../lib/tool-errors.js';
10
+ import { appendTruncationMarker, markdownTransform, parseCachedMarkdownResult, performSharedFetch, readNestedRecord, readString, serializeMarkdownResult, TRUNCATION_MARKER, withSignal, } from '../lib/tool-pipeline.js';
11
+ import { createProgressReporter, } from '../lib/tool-progress.js';
12
+ import { isObject } from '../lib/type-guards.js';
13
+ import { fetchUrlInputSchema } from '../schemas/inputs.js';
14
+ import { fetchUrlOutputSchema } from '../schemas/outputs.js';
15
+ import { registerTaskCapableTool, unregisterTaskCapableTool, } from '../tasks/tool-registry.js';
122
16
  export const FETCH_URL_TOOL_NAME = 'fetch-url';
123
17
  const FETCH_URL_TOOL_DESCRIPTION = `
124
- Fetches a webpage and converts it to clean Markdown format optimized for LLM context.
125
-
126
- This tool is useful for:
127
- - Reading documentation, blog posts, or articles.
128
- - Extracting main content while removing navigation and ads (noise removal).
129
- - Caching content to speed up repeated queries.
130
-
131
- Key behaviors:
132
- - GitHub, GitLab, and Bitbucket URLs are auto-transformed to raw content endpoints; check resolvedUrl.
133
- - If truncated is true in the response, use cacheResourceUri with resources/read to retrieve the full content.
134
- - For long-running fetches or large pages, invoke with task: {} to get a taskId and poll tasks/get until complete.
135
-
136
- Limitations:
137
- - Does not execute client-side JavaScript; JS-rendered pages may be incomplete.
138
- - If the error code is queue_full, the worker pool is busy — retry the call using task mode (task: {}) instead.
18
+ <role>Web Content Extractor</role>
19
+ <task>Fetch public webpages and convert HTML to clean Markdown.</task>
20
+ <constraints>
21
+ - READ-ONLY. No JavaScript execution.
22
+ - GitHub/GitLab/Bitbucket URLs auto-transform to raw endpoints (check resolvedUrl).
23
+ - If truncated=true, use cacheResourceUri with resources/read for full content.
24
+ - For large pages/timeouts, use task mode (task: {}).
25
+ - If error queue_full, retry with task mode.
26
+ </constraints>
139
27
  `.trim();
140
28
  const TOOL_ICON = {
141
29
  src: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIvPjxwb2x5bGluZSBwb2ludHM9IjcgMTAgMTIgMTUgMTcgMTAiLz48bGluZSB4MT0iMTIiIHkxPSIxNSIgeDI9IjEyIiB5Mj0iMyIvPjwvc3ZnPg==',
142
30
  mimeType: 'image/svg+xml',
143
31
  };
32
+ const JSON_SCHEMA_DRAFT_2020_12_URI = 'https://json-schema.org/draft/2020-12/schema';
144
33
  /* -------------------------------------------------------------------------------------------------
145
34
  * Tool response builders
146
35
  * ------------------------------------------------------------------------------------------------- */
@@ -154,7 +43,7 @@ function buildEmbeddedResource(content, url, title) {
154
43
  if (!content)
155
44
  return null;
156
45
  const filename = generateSafeFilename(url, title, undefined, '.md');
157
- const uri = new URL(filename, 'file:///').href;
46
+ const uri = `internal://inline/${encodeURIComponent(filename)}`;
158
47
  const resource = {
159
48
  uri,
160
49
  mimeType: 'text/markdown',
@@ -211,19 +100,21 @@ function truncateStr(value, max) {
211
100
  return value;
212
101
  return value.slice(0, max);
213
102
  }
103
+ const METADATA_FIELD_LIMITS = {
104
+ title: 512,
105
+ description: 2048,
106
+ author: 512,
107
+ };
214
108
  function truncateMetadata(metadata) {
215
- return {
216
- ...metadata,
217
- ...(metadata.title !== undefined
218
- ? { title: truncateStr(metadata.title, 512) }
219
- : {}),
220
- ...(metadata.description !== undefined
221
- ? { description: truncateStr(metadata.description, 2048) }
222
- : {}),
223
- ...(metadata.author !== undefined
224
- ? { author: truncateStr(metadata.author, 512) }
225
- : {}),
226
- };
109
+ const result = { ...metadata };
110
+ for (const [key, limit] of Object.entries(METADATA_FIELD_LIMITS)) {
111
+ const field = key;
112
+ const value = result[field];
113
+ if (typeof value === 'string' && value.length > limit) {
114
+ result[field] = value.slice(0, limit);
115
+ }
116
+ }
117
+ return result;
227
118
  }
228
119
  function buildStructuredContent(pipeline, inlineResult, inputUrl) {
229
120
  const cacheResourceUri = resolveCacheResourceUri(pipeline.cacheKey);
@@ -284,6 +175,9 @@ function buildResponse(pipeline, inlineResult, inputUrl) {
284
175
  url: inputUrl,
285
176
  issues: validation.error.issues,
286
177
  });
178
+ // Omit structuredContent so the SDK does not receive data that fails its
179
+ // output schema validation. The client still gets the payload via content[0].text.
180
+ return { content };
287
181
  }
288
182
  return {
289
183
  content,
@@ -293,17 +187,40 @@ function buildResponse(pipeline, inlineResult, inputUrl) {
293
187
  /* -------------------------------------------------------------------------------------------------
294
188
  * fetch-url tool implementation
295
189
  * ------------------------------------------------------------------------------------------------- */
296
- export function getUrlContext(urlStr) {
190
+ function getUrlContext(urlStr) {
297
191
  try {
298
192
  const u = new URL(urlStr);
299
193
  const host = u.hostname.replace(/^www\./, '');
300
194
  const path = u.pathname;
301
195
  if (path === '/' || path === '')
302
196
  return host;
303
- let basename = path.split('/').filter(Boolean).pop();
197
+ const parts = path.split('/').filter(Boolean);
198
+ if (parts.length === 0)
199
+ return host;
200
+ // Special case for GitHub/GitLab/Bitbucket
201
+ if (host === 'github.com' ||
202
+ host === 'gitlab.com' ||
203
+ host === 'bitbucket.org') {
204
+ if (parts.length >= 2) {
205
+ const p0 = parts[0] ?? '';
206
+ const p1 = parts[1] ?? '';
207
+ return `${host}/${p0}/${p1}`;
208
+ }
209
+ }
210
+ // Special case for Wikipedia
211
+ if (host.endsWith('wikipedia.org') &&
212
+ parts[0] === 'wiki' &&
213
+ parts.length >= 2) {
214
+ const p1 = parts[1] ?? '';
215
+ return `wikipedia.org/${p1}`;
216
+ }
217
+ let basename = parts.pop() ?? '';
304
218
  if (basename && basename.length > 20) {
305
219
  basename = `${basename.substring(0, 17)}...`;
306
220
  }
221
+ if (parts.length === 0) {
222
+ return `${host}/${basename}`;
223
+ }
307
224
  return basename ? `${host}/…/${basename}` : host;
308
225
  }
309
226
  catch {
@@ -311,6 +228,11 @@ export function getUrlContext(urlStr) {
311
228
  }
312
229
  }
313
230
  async function fetchPipeline(url, signal, progress, skipNoiseRemoval, forceRefresh, maxInlineChars) {
231
+ const reportProgress = (step, message) => {
232
+ if (!progress)
233
+ return;
234
+ progress.report(step, message);
235
+ };
314
236
  return performSharedFetch({
315
237
  url,
316
238
  ...withSignal(signal),
@@ -318,10 +240,8 @@ async function fetchPipeline(url, signal, progress, skipNoiseRemoval, forceRefre
318
240
  ...(forceRefresh ? { forceRefresh: true } : {}),
319
241
  ...(maxInlineChars !== undefined ? { maxInlineChars } : {}),
320
242
  transform: async ({ buffer, encoding, truncated }, normalizedUrl) => {
321
- if (progress) {
322
- const contextStr = getUrlContext(url);
323
- void progress.report(2, `fetch-url: ${contextStr} [transforming]`);
324
- }
243
+ const contextStr = getUrlContext(url);
244
+ reportProgress(2, `fetch-url: ${contextStr} [converting to Markdown]`);
325
245
  return markdownTransform({ buffer, encoding, ...(truncated ? { truncated } : {}) }, normalizedUrl, signal, skipNoiseRemoval);
326
246
  },
327
247
  serialize: serializeMarkdownResult,
@@ -330,41 +250,47 @@ async function fetchPipeline(url, signal, progress, skipNoiseRemoval, forceRefre
330
250
  }
331
251
  async function executeFetch(input, extra) {
332
252
  const { url } = input;
333
- if (!url) {
334
- return createToolErrorResponse('URL is required', '');
335
- }
336
253
  const signal = buildToolAbortSignal(extra?.signal);
337
254
  const progress = createProgressReporter(extra);
338
255
  const contextStr = getUrlContext(url);
339
- void progress.report(0, `fetch-url: ${contextStr} [starting]`);
256
+ progress.report(0, `fetch-url: ${contextStr} [starting]`);
340
257
  logDebug('Fetching URL', { url });
341
258
  try {
342
- void progress.report(1, `fetch-url: ${contextStr} [fetching]`);
259
+ progress.report(1, `fetch-url: ${contextStr} [fetching HTML]`);
343
260
  const { pipeline, inlineResult } = await fetchPipeline(url, signal, progress, input.skipNoiseRemoval, input.forceRefresh, input.maxInlineChars);
344
261
  if (pipeline.fromCache) {
345
- void progress.report(3, `fetch-url: ${contextStr} [using cache]`);
262
+ progress.report(3, `fetch-url: ${contextStr} [loaded from cache]`);
346
263
  }
347
- void progress.report(4, `fetch-url: ${contextStr} • success`);
264
+ progress.report(4, `fetch-url: ${contextStr} • completed`);
348
265
  return buildResponse(pipeline, inlineResult, url);
349
266
  }
350
267
  catch (error) {
351
- const isAbort = error instanceof Error && error.name === 'AbortError';
352
- void progress.report(4, `fetch-url: ${contextStr} • ${isAbort ? 'cancelled' : 'failed'}`);
268
+ const isAbort = isAbortError(error);
269
+ progress.report(4, `fetch-url: ${contextStr} • ${isAbort ? 'cancelled' : 'failed'}`);
353
270
  throw error;
354
271
  }
355
272
  }
356
273
  export async function fetchUrlToolHandler(input, extra) {
357
274
  return executeFetch(input, extra).catch((error) => {
358
- logError('fetch-url tool error', error instanceof Error ? error : undefined);
275
+ logError('fetch-url tool error', toError(error));
359
276
  return handleToolError(error, input.url, 'Failed to fetch URL');
360
277
  });
361
278
  }
279
+ function withJsonSchema202012(schema) {
280
+ if (typeof schema['$schema'] === 'string')
281
+ return schema;
282
+ return {
283
+ $schema: JSON_SCHEMA_DRAFT_2020_12_URI,
284
+ ...schema,
285
+ };
286
+ }
362
287
  const TOOL_DEFINITION = {
363
288
  name: FETCH_URL_TOOL_NAME,
364
289
  title: 'Fetch URL',
365
290
  description: FETCH_URL_TOOL_DESCRIPTION,
366
291
  inputSchema: fetchUrlInputSchema,
367
- outputSchema: fetchUrlOutputSchema,
292
+ // Explicitly mark JSON Schema dialect for MCP clients and static reviews.
293
+ outputSchema: withJsonSchema202012(z.toJSONSchema(fetchUrlOutputSchema)),
368
294
  handler: fetchUrlToolHandler,
369
295
  execution: {
370
296
  taskSupport: 'optional',
@@ -376,6 +302,18 @@ const TOOL_DEFINITION = {
376
302
  openWorldHint: true,
377
303
  },
378
304
  };
305
+ function applyRegisteredToolExecutionMetadata(registeredTool, execution) {
306
+ // SDK workaround: RegisteredTool does not expose `execution` in its public type.
307
+ // Keep the mutation localized to one helper so future SDK upgrades touch one place.
308
+ registeredTool.execution = execution;
309
+ }
310
+ /**
311
+ * Stdio-path guard: ensures a request context (requestId, sessionId) is set
312
+ * in AsyncLocalStorage before invoking the handler. On the HTTP path the SDK
313
+ * populates `extra.requestId`/`extra.requestInfo`, so this is a no-op there.
314
+ * On the stdio path there is no SDK-provided context, so we derive one from
315
+ * the extra fields or generate a fresh UUID.
316
+ */
379
317
  export function withRequestContextIfMissing(handler) {
380
318
  return async (params, extra) => {
381
319
  const existingRequestId = getRequestId();
@@ -412,8 +350,21 @@ function resolveSessionIdFromExtra(extra) {
412
350
  return typeof headerValue === 'string' ? headerValue : undefined;
413
351
  }
414
352
  export function registerTools(server) {
415
- if (!config.tools.enabled.includes(FETCH_URL_TOOL_NAME))
353
+ if (!config.tools.enabled.includes(FETCH_URL_TOOL_NAME)) {
354
+ unregisterTaskCapableTool(FETCH_URL_TOOL_NAME);
416
355
  return;
356
+ }
357
+ registerTaskCapableTool({
358
+ name: FETCH_URL_TOOL_NAME,
359
+ parseArguments: (args) => {
360
+ const parsed = fetchUrlInputSchema.safeParse(args);
361
+ if (!parsed.success) {
362
+ throw new McpError(ErrorCode.InvalidParams, 'Invalid arguments for fetch-url');
363
+ }
364
+ return parsed.data;
365
+ },
366
+ execute: fetchUrlToolHandler,
367
+ });
417
368
  const registeredTool = server.registerTool(TOOL_DEFINITION.name, {
418
369
  title: TOOL_DEFINITION.title,
419
370
  description: TOOL_DEFINITION.description,
@@ -423,6 +374,8 @@ export function registerTools(server) {
423
374
  execution: TOOL_DEFINITION.execution,
424
375
  icons: [TOOL_ICON],
425
376
  }, withRequestContextIfMissing(TOOL_DEFINITION.handler));
426
- registeredTool.execution = TOOL_DEFINITION.execution;
377
+ // SDK typing gap workaround: preserve runtime `execution` metadata until the
378
+ // registered tool type includes this field.
379
+ applyRegisteredToolExecutionMetadata(registeredTool, TOOL_DEFINITION.execution);
427
380
  }
428
- //# sourceMappingURL=tools.js.map
381
+ //# sourceMappingURL=fetch-url.js.map