@mapbox/mcp-server 0.5.5 → 0.8.1-dev.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 (444) hide show
  1. package/README.md +173 -13
  2. package/dist/commonjs/config/toolConfig.d.ts +10 -0
  3. package/dist/commonjs/config/toolConfig.d.ts.map +1 -1
  4. package/dist/commonjs/config/toolConfig.js +36 -0
  5. package/dist/commonjs/config/toolConfig.js.map +1 -1
  6. package/dist/commonjs/index.d.ts +1 -1
  7. package/dist/commonjs/index.d.ts.map +1 -1
  8. package/dist/commonjs/index.js +201 -5
  9. package/dist/commonjs/index.js.map +1 -1
  10. package/dist/commonjs/prompts/BasePrompt.d.ts +40 -0
  11. package/dist/commonjs/prompts/BasePrompt.d.ts.map +1 -0
  12. package/dist/commonjs/prompts/BasePrompt.js +38 -0
  13. package/dist/commonjs/prompts/BasePrompt.js.map +1 -0
  14. package/dist/commonjs/prompts/FindPlacesNearbyPrompt.d.ts +22 -0
  15. package/dist/commonjs/prompts/FindPlacesNearbyPrompt.d.ts.map +1 -0
  16. package/dist/commonjs/prompts/FindPlacesNearbyPrompt.js +65 -0
  17. package/dist/commonjs/prompts/FindPlacesNearbyPrompt.js.map +1 -0
  18. package/dist/commonjs/prompts/GetDirectionsPrompt.d.ts +23 -0
  19. package/dist/commonjs/prompts/GetDirectionsPrompt.d.ts.map +1 -0
  20. package/dist/commonjs/prompts/GetDirectionsPrompt.js +67 -0
  21. package/dist/commonjs/prompts/GetDirectionsPrompt.js.map +1 -0
  22. package/dist/commonjs/prompts/ShowReachableAreasPrompt.d.ts +23 -0
  23. package/dist/commonjs/prompts/ShowReachableAreasPrompt.d.ts.map +1 -0
  24. package/dist/commonjs/prompts/ShowReachableAreasPrompt.js +70 -0
  25. package/dist/commonjs/prompts/ShowReachableAreasPrompt.js.map +1 -0
  26. package/dist/commonjs/prompts/promptRegistry.d.ts +29 -0
  27. package/dist/commonjs/prompts/promptRegistry.d.ts.map +1 -0
  28. package/dist/commonjs/prompts/promptRegistry.js +39 -0
  29. package/dist/commonjs/prompts/promptRegistry.js.map +1 -0
  30. package/dist/commonjs/resources/BaseResource.d.ts +28 -0
  31. package/dist/commonjs/resources/BaseResource.d.ts.map +1 -0
  32. package/dist/commonjs/resources/BaseResource.js +32 -0
  33. package/dist/commonjs/resources/BaseResource.js.map +1 -0
  34. package/dist/commonjs/resources/MapboxApiBasedResource.d.ts +35 -0
  35. package/dist/commonjs/resources/MapboxApiBasedResource.d.ts.map +1 -0
  36. package/dist/commonjs/resources/MapboxApiBasedResource.js +88 -0
  37. package/dist/commonjs/resources/MapboxApiBasedResource.js.map +1 -0
  38. package/dist/commonjs/resources/category-list/CategoryListResource.d.ts +27 -0
  39. package/dist/commonjs/resources/category-list/CategoryListResource.d.ts.map +1 -0
  40. package/dist/commonjs/resources/category-list/CategoryListResource.js +71 -0
  41. package/dist/commonjs/resources/category-list/CategoryListResource.js.map +1 -0
  42. package/dist/commonjs/resources/resourceRegistry.d.ts +6 -0
  43. package/dist/commonjs/resources/resourceRegistry.d.ts.map +1 -0
  44. package/dist/commonjs/resources/resourceRegistry.js +32 -0
  45. package/dist/commonjs/resources/resourceRegistry.js.map +1 -0
  46. package/dist/commonjs/schemas/geojson.d.ts +115 -0
  47. package/dist/commonjs/schemas/geojson.d.ts.map +1 -0
  48. package/dist/commonjs/schemas/geojson.js +5 -0
  49. package/dist/commonjs/schemas/geojson.js.map +1 -0
  50. package/dist/commonjs/tools/BaseTool.d.ts +12 -2
  51. package/dist/commonjs/tools/BaseTool.d.ts.map +1 -1
  52. package/dist/commonjs/tools/BaseTool.js +31 -2
  53. package/dist/commonjs/tools/BaseTool.js.map +1 -1
  54. package/dist/commonjs/tools/MapboxApiBasedTool.d.ts +12 -7
  55. package/dist/commonjs/tools/MapboxApiBasedTool.d.ts.map +1 -1
  56. package/dist/commonjs/tools/MapboxApiBasedTool.js +57 -29
  57. package/dist/commonjs/tools/MapboxApiBasedTool.js.map +1 -1
  58. package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts +10 -6
  59. package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
  60. package/dist/commonjs/tools/category-list-tool/{CategoryListTool.schema.d.ts → CategoryListTool.input.schema.d.ts} +1 -1
  61. package/dist/commonjs/tools/category-list-tool/CategoryListTool.input.schema.d.ts.map +1 -0
  62. package/dist/commonjs/tools/category-list-tool/{CategoryListTool.schema.js → CategoryListTool.input.schema.js} +1 -1
  63. package/dist/commonjs/tools/category-list-tool/CategoryListTool.input.schema.js.map +1 -0
  64. package/dist/commonjs/tools/category-list-tool/CategoryListTool.js +36 -13
  65. package/dist/commonjs/tools/category-list-tool/CategoryListTool.js.map +1 -1
  66. package/dist/commonjs/tools/category-list-tool/CategoryListTool.output.schema.d.ts +10 -0
  67. package/dist/commonjs/tools/category-list-tool/CategoryListTool.output.schema.d.ts.map +1 -0
  68. package/dist/commonjs/tools/category-list-tool/CategoryListTool.output.schema.js +12 -0
  69. package/dist/commonjs/tools/category-list-tool/CategoryListTool.output.schema.js.map +1 -0
  70. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts +9 -8
  71. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  72. package/dist/commonjs/tools/category-search-tool/{CategorySearchTool.schema.d.ts → CategorySearchTool.input.schema.d.ts} +5 -11
  73. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.d.ts.map +1 -0
  74. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.js +44 -0
  75. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.js.map +1 -0
  76. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +44 -20
  77. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  78. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +2184 -0
  79. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -0
  80. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js +149 -0
  81. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -0
  82. package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts +9 -5
  83. package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  84. package/dist/{esm/tools/directions-tool/DirectionsTool.schema.d.ts → commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts} +1 -1
  85. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -0
  86. package/dist/commonjs/tools/directions-tool/{DirectionsTool.schema.js → DirectionsTool.input.schema.js} +1 -1
  87. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -0
  88. package/dist/commonjs/tools/directions-tool/DirectionsTool.js +100 -19
  89. package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
  90. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +7880 -0
  91. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts.map +1 -0
  92. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js +346 -0
  93. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -0
  94. package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts +101 -2
  95. package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
  96. package/dist/commonjs/tools/directions-tool/cleanResponseData.js +90 -89
  97. package/dist/commonjs/tools/directions-tool/cleanResponseData.js.map +1 -1
  98. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts +10 -5
  99. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  100. package/dist/{esm/tools/isochrone-tool/IsochroneTool.schema.d.ts → commonjs/tools/isochrone-tool/IsochroneTool.input.schema.d.ts} +1 -1
  101. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.input.schema.d.ts.map +1 -0
  102. package/dist/commonjs/tools/isochrone-tool/{IsochroneTool.schema.js → IsochroneTool.input.schema.js} +1 -1
  103. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.input.schema.js.map +1 -0
  104. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js +80 -10
  105. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  106. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +314 -0
  107. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.d.ts.map +1 -0
  108. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.js +58 -0
  109. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.js.map +1 -0
  110. package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts +9 -5
  111. package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
  112. package/dist/commonjs/tools/matrix-tool/{MatrixTool.schema.d.ts → MatrixTool.input.schema.d.ts} +3 -3
  113. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.d.ts.map +1 -0
  114. package/dist/commonjs/tools/matrix-tool/{MatrixTool.schema.js → MatrixTool.input.schema.js} +1 -1
  115. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.js.map +1 -0
  116. package/dist/commonjs/tools/matrix-tool/MatrixTool.js +131 -26
  117. package/dist/commonjs/tools/matrix-tool/MatrixTool.js.map +1 -1
  118. package/dist/commonjs/tools/matrix-tool/MatrixTool.output.schema.d.ts +80 -0
  119. package/dist/commonjs/tools/matrix-tool/MatrixTool.output.schema.d.ts.map +1 -0
  120. package/dist/commonjs/tools/matrix-tool/MatrixTool.output.schema.js +22 -0
  121. package/dist/commonjs/tools/matrix-tool/MatrixTool.output.schema.js.map +1 -0
  122. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts +28 -0
  123. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -0
  124. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.input.schema.d.ts +10 -0
  125. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.input.schema.d.ts.map +1 -0
  126. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.input.schema.js +13 -0
  127. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.input.schema.js.map +1 -0
  128. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js +141 -0
  129. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -0
  130. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.output.schema.d.ts +19 -0
  131. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.output.schema.d.ts.map +1 -0
  132. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.output.schema.js +13 -0
  133. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.output.schema.js.map +1 -0
  134. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts +9 -8
  135. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
  136. package/dist/{esm/tools/reverse-geocode-tool/ReverseGeocodeTool.schema.d.ts → commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts} +4 -4
  137. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts.map +1 -0
  138. package/dist/commonjs/tools/reverse-geocode-tool/{ReverseGeocodeTool.schema.js → ReverseGeocodeTool.input.schema.js} +1 -1
  139. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.js.map +1 -0
  140. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js +56 -15
  141. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -1
  142. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +4085 -0
  143. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts.map +1 -0
  144. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.js +206 -0
  145. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.js.map +1 -0
  146. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +9 -8
  147. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
  148. package/dist/commonjs/tools/search-and-geocode-tool/{SearchAndGeocodeTool.schema.d.ts → SearchAndGeocodeTool.input.schema.d.ts} +20 -20
  149. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts.map +1 -0
  150. package/dist/commonjs/tools/search-and-geocode-tool/{SearchAndGeocodeTool.schema.js → SearchAndGeocodeTool.input.schema.js} +7 -31
  151. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.js.map +1 -0
  152. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +44 -23
  153. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  154. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +2387 -0
  155. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -0
  156. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +129 -0
  157. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -0
  158. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts +7 -4
  159. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  160. package/dist/commonjs/tools/static-map-image-tool/{StaticMapImageTool.schema.d.ts → StaticMapImageTool.input.schema.d.ts} +25 -25
  161. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts.map +1 -0
  162. package/dist/commonjs/tools/static-map-image-tool/{StaticMapImageTool.schema.js → StaticMapImageTool.input.schema.js} +1 -1
  163. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.input.schema.js.map +1 -0
  164. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js +43 -11
  165. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  166. package/dist/commonjs/tools/toolRegistry.d.ts +2 -1
  167. package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
  168. package/dist/commonjs/tools/toolRegistry.js +11 -8
  169. package/dist/commonjs/tools/toolRegistry.js.map +1 -1
  170. package/dist/commonjs/tools/version-tool/VersionTool.d.ts +5 -9
  171. package/dist/commonjs/tools/version-tool/VersionTool.d.ts.map +1 -1
  172. package/dist/commonjs/tools/version-tool/{VersionTool.schema.d.ts → VersionTool.input.schema.d.ts} +1 -1
  173. package/dist/commonjs/tools/version-tool/VersionTool.input.schema.d.ts.map +1 -0
  174. package/dist/commonjs/tools/version-tool/{VersionTool.schema.js → VersionTool.input.schema.js} +1 -1
  175. package/dist/commonjs/tools/version-tool/VersionTool.input.schema.js.map +1 -0
  176. package/dist/commonjs/tools/version-tool/VersionTool.js +45 -30
  177. package/dist/commonjs/tools/version-tool/VersionTool.js.map +1 -1
  178. package/dist/commonjs/tools/version-tool/VersionTool.output.schema.d.ts +22 -0
  179. package/dist/commonjs/tools/version-tool/VersionTool.output.schema.d.ts.map +1 -0
  180. package/dist/commonjs/tools/version-tool/VersionTool.output.schema.js +15 -0
  181. package/dist/commonjs/tools/version-tool/VersionTool.output.schema.js.map +1 -0
  182. package/dist/commonjs/utils/httpPipeline.d.ts +44 -0
  183. package/dist/commonjs/utils/httpPipeline.d.ts.map +1 -0
  184. package/dist/commonjs/utils/{fetchRequest.js → httpPipeline.js} +58 -13
  185. package/dist/commonjs/utils/httpPipeline.js.map +1 -0
  186. package/dist/commonjs/utils/tracing.d.ts +99 -0
  187. package/dist/commonjs/utils/tracing.d.ts.map +1 -0
  188. package/dist/commonjs/utils/tracing.js +300 -0
  189. package/dist/commonjs/utils/tracing.js.map +1 -0
  190. package/dist/commonjs/utils/types.d.ts +18 -0
  191. package/dist/commonjs/utils/types.d.ts.map +1 -0
  192. package/dist/commonjs/utils/types.js +5 -0
  193. package/dist/commonjs/utils/types.js.map +1 -0
  194. package/dist/commonjs/utils/versionUtils-cjs.cjs.map +1 -1
  195. package/dist/commonjs/utils/versionUtils.js +1 -1
  196. package/dist/commonjs/version.json +4 -4
  197. package/dist/esm/config/toolConfig.d.ts +10 -0
  198. package/dist/esm/config/toolConfig.d.ts.map +1 -1
  199. package/dist/esm/config/toolConfig.js +35 -0
  200. package/dist/esm/config/toolConfig.js.map +1 -1
  201. package/dist/esm/index.d.ts +1 -1
  202. package/dist/esm/index.d.ts.map +1 -1
  203. package/dist/esm/index.js +201 -5
  204. package/dist/esm/index.js.map +1 -1
  205. package/dist/esm/prompts/BasePrompt.d.ts +40 -0
  206. package/dist/esm/prompts/BasePrompt.d.ts.map +1 -0
  207. package/dist/esm/prompts/BasePrompt.js +34 -0
  208. package/dist/esm/prompts/BasePrompt.js.map +1 -0
  209. package/dist/esm/prompts/FindPlacesNearbyPrompt.d.ts +22 -0
  210. package/dist/esm/prompts/FindPlacesNearbyPrompt.d.ts.map +1 -0
  211. package/dist/esm/prompts/FindPlacesNearbyPrompt.js +61 -0
  212. package/dist/esm/prompts/FindPlacesNearbyPrompt.js.map +1 -0
  213. package/dist/esm/prompts/GetDirectionsPrompt.d.ts +23 -0
  214. package/dist/esm/prompts/GetDirectionsPrompt.d.ts.map +1 -0
  215. package/dist/esm/prompts/GetDirectionsPrompt.js +63 -0
  216. package/dist/esm/prompts/GetDirectionsPrompt.js.map +1 -0
  217. package/dist/esm/prompts/ShowReachableAreasPrompt.d.ts +23 -0
  218. package/dist/esm/prompts/ShowReachableAreasPrompt.d.ts.map +1 -0
  219. package/dist/esm/prompts/ShowReachableAreasPrompt.js +66 -0
  220. package/dist/esm/prompts/ShowReachableAreasPrompt.js.map +1 -0
  221. package/dist/esm/prompts/promptRegistry.d.ts +29 -0
  222. package/dist/esm/prompts/promptRegistry.d.ts.map +1 -0
  223. package/dist/esm/prompts/promptRegistry.js +35 -0
  224. package/dist/esm/prompts/promptRegistry.js.map +1 -0
  225. package/dist/esm/resources/BaseResource.d.ts +28 -0
  226. package/dist/esm/resources/BaseResource.d.ts.map +1 -0
  227. package/dist/esm/resources/BaseResource.js +28 -0
  228. package/dist/esm/resources/BaseResource.js.map +1 -0
  229. package/dist/esm/resources/MapboxApiBasedResource.d.ts +35 -0
  230. package/dist/esm/resources/MapboxApiBasedResource.d.ts.map +1 -0
  231. package/dist/esm/resources/MapboxApiBasedResource.js +84 -0
  232. package/dist/esm/resources/MapboxApiBasedResource.js.map +1 -0
  233. package/dist/esm/resources/category-list/CategoryListResource.d.ts +27 -0
  234. package/dist/esm/resources/category-list/CategoryListResource.d.ts.map +1 -0
  235. package/dist/esm/resources/category-list/CategoryListResource.js +67 -0
  236. package/dist/esm/resources/category-list/CategoryListResource.js.map +1 -0
  237. package/dist/esm/resources/resourceRegistry.d.ts +6 -0
  238. package/dist/esm/resources/resourceRegistry.d.ts.map +1 -0
  239. package/dist/esm/resources/resourceRegistry.js +27 -0
  240. package/dist/esm/resources/resourceRegistry.js.map +1 -0
  241. package/dist/esm/schemas/geojson.d.ts +115 -0
  242. package/dist/esm/schemas/geojson.d.ts.map +1 -0
  243. package/dist/esm/schemas/geojson.js +4 -0
  244. package/dist/esm/schemas/geojson.js.map +1 -0
  245. package/dist/esm/tools/BaseTool.d.ts +12 -2
  246. package/dist/esm/tools/BaseTool.d.ts.map +1 -1
  247. package/dist/esm/tools/BaseTool.js +31 -2
  248. package/dist/esm/tools/BaseTool.js.map +1 -1
  249. package/dist/esm/tools/MapboxApiBasedTool.d.ts +12 -7
  250. package/dist/esm/tools/MapboxApiBasedTool.d.ts.map +1 -1
  251. package/dist/esm/tools/MapboxApiBasedTool.js +57 -29
  252. package/dist/esm/tools/MapboxApiBasedTool.js.map +1 -1
  253. package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts +10 -6
  254. package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
  255. package/dist/esm/tools/category-list-tool/{CategoryListTool.schema.d.ts → CategoryListTool.input.schema.d.ts} +1 -1
  256. package/dist/esm/tools/category-list-tool/CategoryListTool.input.schema.d.ts.map +1 -0
  257. package/dist/esm/tools/category-list-tool/{CategoryListTool.schema.js → CategoryListTool.input.schema.js} +1 -1
  258. package/dist/esm/tools/category-list-tool/CategoryListTool.input.schema.js.map +1 -0
  259. package/dist/esm/tools/category-list-tool/CategoryListTool.js +36 -13
  260. package/dist/esm/tools/category-list-tool/CategoryListTool.js.map +1 -1
  261. package/dist/esm/tools/category-list-tool/CategoryListTool.output.schema.d.ts +10 -0
  262. package/dist/esm/tools/category-list-tool/CategoryListTool.output.schema.d.ts.map +1 -0
  263. package/dist/esm/tools/category-list-tool/CategoryListTool.output.schema.js +9 -0
  264. package/dist/esm/tools/category-list-tool/CategoryListTool.output.schema.js.map +1 -0
  265. package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts +9 -8
  266. package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  267. package/dist/esm/tools/category-search-tool/{CategorySearchTool.schema.d.ts → CategorySearchTool.input.schema.d.ts} +5 -11
  268. package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.d.ts.map +1 -0
  269. package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.js +41 -0
  270. package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.js.map +1 -0
  271. package/dist/esm/tools/category-search-tool/CategorySearchTool.js +44 -20
  272. package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  273. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +2184 -0
  274. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -0
  275. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js +146 -0
  276. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -0
  277. package/dist/esm/tools/directions-tool/DirectionsTool.d.ts +9 -5
  278. package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  279. package/dist/{commonjs/tools/directions-tool/DirectionsTool.schema.d.ts → esm/tools/directions-tool/DirectionsTool.input.schema.d.ts} +1 -1
  280. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -0
  281. package/dist/esm/tools/directions-tool/{DirectionsTool.schema.js → DirectionsTool.input.schema.js} +1 -1
  282. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -0
  283. package/dist/esm/tools/directions-tool/DirectionsTool.js +100 -19
  284. package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
  285. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +7880 -0
  286. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts.map +1 -0
  287. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js +343 -0
  288. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -0
  289. package/dist/esm/tools/directions-tool/cleanResponseData.d.ts +101 -2
  290. package/dist/esm/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
  291. package/dist/esm/tools/directions-tool/cleanResponseData.js +90 -89
  292. package/dist/esm/tools/directions-tool/cleanResponseData.js.map +1 -1
  293. package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts +10 -5
  294. package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  295. package/dist/{commonjs/tools/isochrone-tool/IsochroneTool.schema.d.ts → esm/tools/isochrone-tool/IsochroneTool.input.schema.d.ts} +1 -1
  296. package/dist/esm/tools/isochrone-tool/IsochroneTool.input.schema.d.ts.map +1 -0
  297. package/dist/esm/tools/isochrone-tool/{IsochroneTool.schema.js → IsochroneTool.input.schema.js} +1 -1
  298. package/dist/esm/tools/isochrone-tool/IsochroneTool.input.schema.js.map +1 -0
  299. package/dist/esm/tools/isochrone-tool/IsochroneTool.js +80 -10
  300. package/dist/esm/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  301. package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +314 -0
  302. package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts.map +1 -0
  303. package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.js +55 -0
  304. package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.js.map +1 -0
  305. package/dist/esm/tools/matrix-tool/MatrixTool.d.ts +9 -5
  306. package/dist/esm/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
  307. package/dist/esm/tools/matrix-tool/{MatrixTool.schema.d.ts → MatrixTool.input.schema.d.ts} +3 -3
  308. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts.map +1 -0
  309. package/dist/esm/tools/matrix-tool/{MatrixTool.schema.js → MatrixTool.input.schema.js} +1 -1
  310. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.js.map +1 -0
  311. package/dist/esm/tools/matrix-tool/MatrixTool.js +131 -26
  312. package/dist/esm/tools/matrix-tool/MatrixTool.js.map +1 -1
  313. package/dist/esm/tools/matrix-tool/MatrixTool.output.schema.d.ts +80 -0
  314. package/dist/esm/tools/matrix-tool/MatrixTool.output.schema.d.ts.map +1 -0
  315. package/dist/esm/tools/matrix-tool/MatrixTool.output.schema.js +19 -0
  316. package/dist/esm/tools/matrix-tool/MatrixTool.output.schema.js.map +1 -0
  317. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts +28 -0
  318. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -0
  319. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.input.schema.d.ts +10 -0
  320. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.input.schema.d.ts.map +1 -0
  321. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.input.schema.js +10 -0
  322. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.input.schema.js.map +1 -0
  323. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js +137 -0
  324. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -0
  325. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.output.schema.d.ts +19 -0
  326. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.output.schema.d.ts.map +1 -0
  327. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.output.schema.js +10 -0
  328. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.output.schema.js.map +1 -0
  329. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts +9 -8
  330. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
  331. package/dist/{commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.schema.d.ts → esm/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts} +4 -4
  332. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts.map +1 -0
  333. package/dist/esm/tools/reverse-geocode-tool/{ReverseGeocodeTool.schema.js → ReverseGeocodeTool.input.schema.js} +1 -1
  334. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.js.map +1 -0
  335. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js +56 -15
  336. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -1
  337. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +4085 -0
  338. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts.map +1 -0
  339. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.js +203 -0
  340. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.js.map +1 -0
  341. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +9 -8
  342. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
  343. package/dist/esm/tools/search-and-geocode-tool/{SearchAndGeocodeTool.schema.d.ts → SearchAndGeocodeTool.input.schema.d.ts} +20 -20
  344. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts.map +1 -0
  345. package/dist/esm/tools/search-and-geocode-tool/{SearchAndGeocodeTool.schema.js → SearchAndGeocodeTool.input.schema.js} +7 -31
  346. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.js.map +1 -0
  347. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +44 -23
  348. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  349. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +2387 -0
  350. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -0
  351. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +126 -0
  352. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -0
  353. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts +7 -4
  354. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  355. package/dist/esm/tools/static-map-image-tool/{StaticMapImageTool.schema.d.ts → StaticMapImageTool.input.schema.d.ts} +25 -25
  356. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts.map +1 -0
  357. package/dist/esm/tools/static-map-image-tool/{StaticMapImageTool.schema.js → StaticMapImageTool.input.schema.js} +1 -1
  358. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.input.schema.js.map +1 -0
  359. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js +43 -11
  360. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  361. package/dist/esm/tools/toolRegistry.d.ts +2 -1
  362. package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
  363. package/dist/esm/tools/toolRegistry.js +11 -8
  364. package/dist/esm/tools/toolRegistry.js.map +1 -1
  365. package/dist/esm/tools/version-tool/VersionTool.d.ts +5 -9
  366. package/dist/esm/tools/version-tool/VersionTool.d.ts.map +1 -1
  367. package/dist/esm/tools/version-tool/{VersionTool.schema.d.ts → VersionTool.input.schema.d.ts} +1 -1
  368. package/dist/esm/tools/version-tool/VersionTool.input.schema.d.ts.map +1 -0
  369. package/dist/esm/tools/version-tool/{VersionTool.schema.js → VersionTool.input.schema.js} +1 -1
  370. package/dist/esm/tools/version-tool/VersionTool.input.schema.js.map +1 -0
  371. package/dist/esm/tools/version-tool/VersionTool.js +43 -28
  372. package/dist/esm/tools/version-tool/VersionTool.js.map +1 -1
  373. package/dist/esm/tools/version-tool/VersionTool.output.schema.d.ts +22 -0
  374. package/dist/esm/tools/version-tool/VersionTool.output.schema.d.ts.map +1 -0
  375. package/dist/esm/tools/version-tool/VersionTool.output.schema.js +12 -0
  376. package/dist/esm/tools/version-tool/VersionTool.output.schema.js.map +1 -0
  377. package/dist/esm/utils/httpPipeline.d.ts +44 -0
  378. package/dist/esm/utils/httpPipeline.d.ts.map +1 -0
  379. package/dist/esm/utils/{fetchRequest.js → httpPipeline.js} +55 -11
  380. package/dist/esm/utils/httpPipeline.js.map +1 -0
  381. package/dist/esm/utils/tracing.d.ts +99 -0
  382. package/dist/esm/utils/tracing.d.ts.map +1 -0
  383. package/dist/esm/utils/tracing.js +286 -0
  384. package/dist/esm/utils/tracing.js.map +1 -0
  385. package/dist/esm/utils/types.d.ts +18 -0
  386. package/dist/esm/utils/types.d.ts.map +1 -0
  387. package/dist/esm/utils/types.js +4 -0
  388. package/dist/esm/utils/types.js.map +1 -0
  389. package/dist/esm/utils/versionUtils.js +1 -1
  390. package/dist/esm/utils/versionUtils.js.map +1 -1
  391. package/dist/esm/version.json +4 -4
  392. package/package.json +25 -9
  393. package/dist/commonjs/tools/MapboxApiBasedTool.schema.d.ts +0 -47
  394. package/dist/commonjs/tools/MapboxApiBasedTool.schema.d.ts.map +0 -1
  395. package/dist/commonjs/tools/MapboxApiBasedTool.schema.js +0 -21
  396. package/dist/commonjs/tools/MapboxApiBasedTool.schema.js.map +0 -1
  397. package/dist/commonjs/tools/category-list-tool/CategoryListTool.schema.d.ts.map +0 -1
  398. package/dist/commonjs/tools/category-list-tool/CategoryListTool.schema.js.map +0 -1
  399. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.schema.d.ts.map +0 -1
  400. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.schema.js +0 -83
  401. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.schema.js.map +0 -1
  402. package/dist/commonjs/tools/directions-tool/DirectionsTool.schema.d.ts.map +0 -1
  403. package/dist/commonjs/tools/directions-tool/DirectionsTool.schema.js.map +0 -1
  404. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.schema.d.ts.map +0 -1
  405. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.schema.js.map +0 -1
  406. package/dist/commonjs/tools/matrix-tool/MatrixTool.schema.d.ts.map +0 -1
  407. package/dist/commonjs/tools/matrix-tool/MatrixTool.schema.js.map +0 -1
  408. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.schema.d.ts.map +0 -1
  409. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.schema.js.map +0 -1
  410. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.schema.d.ts.map +0 -1
  411. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.schema.js.map +0 -1
  412. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.schema.d.ts.map +0 -1
  413. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.schema.js.map +0 -1
  414. package/dist/commonjs/tools/version-tool/VersionTool.schema.d.ts.map +0 -1
  415. package/dist/commonjs/tools/version-tool/VersionTool.schema.js.map +0 -1
  416. package/dist/commonjs/utils/fetchRequest.d.ts +0 -38
  417. package/dist/commonjs/utils/fetchRequest.d.ts.map +0 -1
  418. package/dist/commonjs/utils/fetchRequest.js.map +0 -1
  419. package/dist/esm/tools/MapboxApiBasedTool.schema.d.ts +0 -47
  420. package/dist/esm/tools/MapboxApiBasedTool.schema.d.ts.map +0 -1
  421. package/dist/esm/tools/MapboxApiBasedTool.schema.js +0 -18
  422. package/dist/esm/tools/MapboxApiBasedTool.schema.js.map +0 -1
  423. package/dist/esm/tools/category-list-tool/CategoryListTool.schema.d.ts.map +0 -1
  424. package/dist/esm/tools/category-list-tool/CategoryListTool.schema.js.map +0 -1
  425. package/dist/esm/tools/category-search-tool/CategorySearchTool.schema.d.ts.map +0 -1
  426. package/dist/esm/tools/category-search-tool/CategorySearchTool.schema.js +0 -80
  427. package/dist/esm/tools/category-search-tool/CategorySearchTool.schema.js.map +0 -1
  428. package/dist/esm/tools/directions-tool/DirectionsTool.schema.d.ts.map +0 -1
  429. package/dist/esm/tools/directions-tool/DirectionsTool.schema.js.map +0 -1
  430. package/dist/esm/tools/isochrone-tool/IsochroneTool.schema.d.ts.map +0 -1
  431. package/dist/esm/tools/isochrone-tool/IsochroneTool.schema.js.map +0 -1
  432. package/dist/esm/tools/matrix-tool/MatrixTool.schema.d.ts.map +0 -1
  433. package/dist/esm/tools/matrix-tool/MatrixTool.schema.js.map +0 -1
  434. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.schema.d.ts.map +0 -1
  435. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.schema.js.map +0 -1
  436. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.schema.d.ts.map +0 -1
  437. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.schema.js.map +0 -1
  438. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.schema.d.ts.map +0 -1
  439. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.schema.js.map +0 -1
  440. package/dist/esm/tools/version-tool/VersionTool.schema.d.ts.map +0 -1
  441. package/dist/esm/tools/version-tool/VersionTool.schema.js.map +0 -1
  442. package/dist/esm/utils/fetchRequest.d.ts +0 -38
  443. package/dist/esm/utils/fetchRequest.d.ts.map +0 -1
  444. package/dist/esm/utils/fetchRequest.js.map +0 -1
@@ -2,21 +2,31 @@
2
2
  // Licensed under the MIT License.
3
3
  export class BaseTool {
4
4
  inputSchema;
5
+ outputSchema;
5
6
  server = null;
6
7
  constructor(params) {
7
8
  this.inputSchema = params.inputSchema;
9
+ this.outputSchema = params.outputSchema;
8
10
  }
9
11
  /**
10
12
  * Installs the tool to the given MCP server.
11
13
  */
12
14
  installTo(server) {
13
15
  this.server = server;
14
- return server.registerTool(this.name, {
16
+ const config = {
15
17
  title: this.annotations.title,
16
18
  description: this.description,
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
20
  inputSchema: this.inputSchema.shape,
18
21
  annotations: this.annotations
19
- }, (args, extra) => this.run(args, extra));
22
+ };
23
+ // Add outputSchema if provided
24
+ if (this.outputSchema) {
25
+ config.outputSchema =
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ this.outputSchema.shape;
28
+ }
29
+ return server.registerTool(this.name, config, (args, extra) => this.run(args, extra));
20
30
  }
21
31
  /**
22
32
  * Helper method to send logging messages
@@ -26,5 +36,24 @@ export class BaseTool {
26
36
  void this.server.server.sendLoggingMessage({ level, data });
27
37
  }
28
38
  }
39
+ /**
40
+ * Validates output data against the output schema with graceful fallback.
41
+ * If validation fails, logs a warning and returns the raw data.
42
+ * @param rawData The raw data to validate
43
+ * @returns The validated data, or raw data if validation fails
44
+ */
45
+ validateOutput(rawData) {
46
+ if (!this.outputSchema) {
47
+ return rawData;
48
+ }
49
+ try {
50
+ return this.outputSchema.parse(rawData);
51
+ }
52
+ catch (validationError) {
53
+ this.log('warning', `${this.name}: Output schema validation failed: ${validationError instanceof Error ? validationError.message : 'Unknown validation error'}`);
54
+ // Graceful fallback to raw data
55
+ return rawData;
56
+ }
57
+ }
29
58
  }
30
59
  //# sourceMappingURL=BaseTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTool.js","sourceRoot":"","sources":["../../../src/tools/BaseTool.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAalC,MAAM,OAAgB,QAAQ;IAKnB,WAAW,CAAc;IACxB,MAAM,GAAqB,IAAI,CAAC;IAE1C,YAAY,MAAoC;QAC9C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAiB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,MAAM,CAAC,YAAY,CACxB,IAAI,CAAC,IAAI,EACT;YACE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAG,IAAI,CAAC,WAA2C,CAAC,KAAK;YACpE,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,EACD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CACvC,CAAC;IACJ,CAAC;IAOD;;OAEG;IACO,GAAG,CACX,KAA6C,EAC7C,IAAa;QAEb,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"BaseTool.js","sourceRoot":"","sources":["../../../src/tools/BaseTool.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAclC,MAAM,OAAgB,QAAQ;IAQnB,WAAW,CAAc;IACzB,YAAY,CAAgB;IAC3B,MAAM,GAAqB,IAAI,CAAC;IAE1C,YAAY,MAGX;QACC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAiB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,MAAM,GAQR;YACF,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,8DAA8D;YAC9D,WAAW,EAAG,IAAI,CAAC,WAA2C,CAAC,KAAK;YACpE,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;QAEF,+BAA+B;QAC/B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,CAAC,YAAY;gBACjB,8DAA8D;gBAC7D,IAAI,CAAC,YAA4C,CAAC,KAAK,CAAC;QAC7D,CAAC;QAED,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC5D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CACtB,CAAC;IACJ,CAAC;IAWD;;OAEG;IACO,GAAG,CACX,KAA6C,EAC7C,IAAa;QAEb,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACO,cAAc,CAAI,OAAgB;QAC1C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,OAAY,CAAC;QACtB,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;QAC/C,CAAC;QAAC,OAAO,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CACN,SAAS,EACT,GAAG,IAAI,CAAC,IAAI,sCAAsC,eAAe,YAAY,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAC5I,CAAC;YACF,gCAAgC;YAChC,OAAO,OAAY,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
@@ -1,15 +1,20 @@
1
1
  import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
2
- import type { ZodTypeAny, z } from 'zod';
2
+ import type { ZodTypeAny } from 'zod';
3
3
  import { BaseTool } from './BaseTool.js';
4
- import type { OutputSchema } from './MapboxApiBasedTool.schema.js';
5
- export declare abstract class MapboxApiBasedTool<InputSchema extends ZodTypeAny> extends BaseTool<InputSchema> {
4
+ import type { CallToolResult, ToolAnnotations } from '@modelcontextprotocol/sdk/types.js';
5
+ import type { HttpRequest } from '../utils/types.js';
6
+ import type { ToolExecutionContext } from '../utils/tracing.js';
7
+ export declare abstract class MapboxApiBasedTool<InputSchema extends ZodTypeAny, OutputSchema extends ZodTypeAny = ZodTypeAny> extends BaseTool<InputSchema, OutputSchema> {
6
8
  abstract readonly name: string;
7
9
  abstract readonly description: string;
8
- abstract readonly annotations: import('@modelcontextprotocol/sdk/types.js').ToolAnnotations;
10
+ abstract readonly annotations: ToolAnnotations;
9
11
  static get mapboxAccessToken(): string | undefined;
10
12
  static get mapboxApiEndpoint(): string;
13
+ protected httpRequest: HttpRequest;
11
14
  constructor(params: {
12
15
  inputSchema: InputSchema;
16
+ outputSchema?: OutputSchema;
17
+ httpRequest: HttpRequest;
13
18
  });
14
19
  /**
15
20
  * Validates if a string has the format of a JWT token (header.payload.signature)
@@ -21,10 +26,10 @@ export declare abstract class MapboxApiBasedTool<InputSchema extends ZodTypeAny>
21
26
  /**
22
27
  * Validates and runs the tool logic.
23
28
  */
24
- run(rawInput: unknown, extra?: RequestHandlerExtra<any, any>): Promise<z.infer<typeof OutputSchema>>;
29
+ run(rawInput: unknown, extra?: RequestHandlerExtra<any, any>): Promise<CallToolResult>;
25
30
  /**
26
- * Tool logic to be implemented by subclasses.
31
+ * Tool-specific logic to be implemented by subclasses.
27
32
  */
28
- protected abstract execute(_input: z.infer<InputSchema>, accessToken: string): Promise<any>;
33
+ protected abstract execute(input: any, accessToken: string, context: ToolExecutionContext): Promise<CallToolResult>;
29
34
  }
30
35
  //# sourceMappingURL=MapboxApiBasedTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapboxApiBasedTool.d.ts","sourceRoot":"","sources":["../../../src/tools/MapboxApiBasedTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,8BAAsB,kBAAkB,CACtC,WAAW,SAAS,UAAU,CAC9B,SAAQ,QAAQ,CAAC,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,oCAAoC,EAAE,eAAe,CAAC;IAE5F,MAAM,KAAK,iBAAiB,uBAE3B;IAED,MAAM,KAAK,iBAAiB,WAE3B;gBAEW,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;IAIhD;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACG,GAAG,CACP,QAAQ,EAAE,OAAO,EACjB,KAAK,CAAC,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,GACpC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IA4DxC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,CACxB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC;CAChB"}
1
+ {"version":3,"file":"MapboxApiBasedTool.d.ts","sourceRoot":"","sources":["../../../src/tools/MapboxApiBasedTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,8BAAsB,kBAAkB,CACtC,WAAW,SAAS,UAAU,EAC9B,YAAY,SAAS,UAAU,GAAG,UAAU,CAC5C,SAAQ,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IAE/C,MAAM,KAAK,iBAAiB,uBAE3B;IAED,MAAM,KAAK,iBAAiB,WAE3B;IAED,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEvB,MAAM,EAAE;QAClB,WAAW,EAAE,WAAW,CAAC;QACzB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,WAAW,EAAE,WAAW,CAAC;KAC1B;IAKD;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACG,GAAG,CACP,QAAQ,EAAE,OAAO,EAEjB,KAAK,CAAC,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,GACpC,OAAO,CAAC,cAAc,CAAC;IAyF1B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,CAExB,KAAK,EAAE,GAAG,EACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC;CAC3B"}
@@ -1,6 +1,8 @@
1
1
  // Copyright (c) Mapbox, Inc.
2
2
  // Licensed under the MIT License.
3
3
  import { BaseTool } from './BaseTool.js';
4
+ import { context, trace, SpanStatusCode } from '@opentelemetry/api';
5
+ import { createToolExecutionContext } from '../utils/tracing.js';
4
6
  export class MapboxApiBasedTool extends BaseTool {
5
7
  static get mapboxAccessToken() {
6
8
  return process.env.MAPBOX_ACCESS_TOKEN;
@@ -8,8 +10,10 @@ export class MapboxApiBasedTool extends BaseTool {
8
10
  static get mapboxApiEndpoint() {
9
11
  return process.env.MAPBOX_API_ENDPOINT || 'https://api.mapbox.com/';
10
12
  }
13
+ httpRequest;
11
14
  constructor(params) {
12
15
  super(params);
16
+ this.httpRequest = params.httpRequest;
13
17
  }
14
18
  /**
15
19
  * Validates if a string has the format of a JWT token (header.payload.signature)
@@ -28,46 +32,70 @@ export class MapboxApiBasedTool extends BaseTool {
28
32
  /**
29
33
  * Validates and runs the tool logic.
30
34
  */
31
- async run(rawInput, extra) {
35
+ async run(rawInput,
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ extra) {
38
+ // First check if token is provided via authentication context
39
+ // Check both standard token field and accessToken in extra for compatibility
40
+ // In the streamableHttp, the authInfo is injected into extra from `req.auth`
41
+ // https://github.com/modelcontextprotocol/typescript-sdk/blob/main/src/server/streamableHttp.ts#L405
42
+ const authToken = extra?.authInfo?.token;
43
+ const accessToken = authToken || MapboxApiBasedTool.mapboxAccessToken;
44
+ if (!accessToken) {
45
+ const errorMessage = 'No access token available. Please provide via Bearer auth or MAPBOX_ACCESS_TOKEN env var';
46
+ this.log('error', `${this.name}: ${errorMessage}`);
47
+ return {
48
+ content: [{ type: 'text', text: errorMessage }],
49
+ isError: true
50
+ };
51
+ }
52
+ // Validate that the token has the correct JWT format
53
+ if (!this.isValidJwtFormat(accessToken)) {
54
+ const errorMessage = 'Access token is not in valid JWT format';
55
+ this.log('error', `${this.name}: ${errorMessage}`);
56
+ return {
57
+ content: [{ type: 'text', text: errorMessage }],
58
+ isError: true
59
+ };
60
+ }
61
+ let toolContext;
32
62
  try {
33
- // First check if token is provided via authentication context
34
- // Check both standard token field and accessToken in extra for compatibility
35
- // In the streamableHttp, the authInfo is injected into extra from `req.auth`
36
- // https://github.com/modelcontextprotocol/typescript-sdk/blob/main/src/server/streamableHttp.ts#L405
37
- const authToken = extra?.authInfo?.token;
38
- const accessToken = authToken || MapboxApiBasedTool.mapboxAccessToken;
39
- if (!accessToken) {
40
- throw new Error('No access token available. Please provide via Bearer auth or MAPBOX_ACCESS_TOKEN env var');
41
- }
42
- // Validate that the token has the correct JWT format
43
- if (!this.isValidJwtFormat(accessToken)) {
44
- throw new Error('Access token is not in valid JWT format');
45
- }
46
63
  const input = this.inputSchema.parse(rawInput);
47
- const result = await this.execute(input, accessToken);
48
- // Check if result is already a content object (image or text)
49
- if (result &&
50
- typeof result === 'object' &&
51
- (result.type === 'image' || result.type === 'text')) {
52
- return {
53
- content: [result],
54
- isError: false
55
- };
56
- }
57
- // Otherwise return as text
58
- return {
59
- content: [{ type: 'text', text: JSON.stringify(result) }],
60
- isError: false
64
+ // Create tool execution context - tracing is handled by the HTTP client
65
+ toolContext = {
66
+ ...createToolExecutionContext(this.name, 0, // Input size not needed since tracing is in HTTP client
67
+ this.httpRequest, extra),
68
+ httpRequest: this.httpRequest
61
69
  };
70
+ // Execute tool within the tool span context to connect all child spans
71
+ const result = await context.with(trace.setSpan(context.active(), toolContext.span), async () => {
72
+ return await this.execute(input, accessToken, toolContext);
73
+ });
74
+ // Mark span as successful and end it
75
+ toolContext.span.setStatus({ code: SpanStatusCode.OK });
76
+ toolContext.span.end();
77
+ return result;
62
78
  }
63
79
  catch (error) {
64
80
  const errorMessage = error instanceof Error ? error.message : String(error);
65
81
  this.log('error', `${this.name}: Error during execution: ${errorMessage}`);
82
+ // Mark span as failed and end it
83
+ if (toolContext?.span) {
84
+ toolContext.span.setStatus({
85
+ code: SpanStatusCode.ERROR,
86
+ message: errorMessage
87
+ });
88
+ toolContext.span.end();
89
+ }
90
+ const errorResponse = {
91
+ message: errorMessage,
92
+ tool: this.name
93
+ };
66
94
  return {
67
95
  content: [
68
96
  {
69
97
  type: 'text',
70
- text: errorMessage
98
+ text: JSON.stringify(errorResponse)
71
99
  }
72
100
  ],
73
101
  isError: true
@@ -1 +1 @@
1
- {"version":3,"file":"MapboxApiBasedTool.js","sourceRoot":"","sources":["../../../src/tools/MapboxApiBasedTool.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAIlC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,OAAgB,kBAEpB,SAAQ,QAAqB;IAK7B,MAAM,KAAK,iBAAiB;QAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACzC,CAAC;IAED,MAAM,KAAK,iBAAiB;QAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,yBAAyB,CAAC;IACtE,CAAC;IAED,YAAY,MAAoC;QAC9C,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,KAAa;QACpC,0EAA0E;QAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAErC,qCAAqC;QACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,QAAiB,EACjB,KAAqC;QAErC,IAAI,CAAC;YACH,8DAA8D;YAC9D,6EAA6E;YAC7E,6EAA6E;YAC7E,qGAAqG;YACrG,MAAM,SAAS,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;YACzC,MAAM,WAAW,GAAG,SAAS,IAAI,kBAAkB,CAAC,iBAAiB,CAAC;YACtE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;YACJ,CAAC;YAED,qDAAqD;YACrD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAEtD,8DAA8D;YAC9D,IACE,MAAM;gBACN,OAAO,MAAM,KAAK,QAAQ;gBAC1B,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,EACnD,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE,CAAC,MAAM,CAAC;oBACjB,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAED,2BAA2B;YAC3B,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzD,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEzD,IAAI,CAAC,GAAG,CACN,OAAO,EACP,GAAG,IAAI,CAAC,IAAI,6BAA6B,YAAY,EAAE,CACxD,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,YAAY;qBACnB;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CASF"}
1
+ {"version":3,"file":"MapboxApiBasedTool.js","sourceRoot":"","sources":["../../../src/tools/MapboxApiBasedTool.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
2
- import type { CategoryListInput } from './CategoryListTool.schema.js';
3
- import { CategoryListInputSchema } from './CategoryListTool.schema.js';
2
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
3
+ import type { HttpRequest } from '../../utils/types.js';
4
+ import type { CategoryListInput } from './CategoryListTool.input.schema.js';
5
+ import { CategoryListInputSchema } from './CategoryListTool.input.schema.js';
6
+ import { CategoryListResponseSchema } from './CategoryListTool.output.schema.js';
4
7
  /**
5
8
  * Tool for retrieving the list of supported categories from Mapbox Search API
6
9
  */
7
- export declare class CategoryListTool extends MapboxApiBasedTool<typeof CategoryListInputSchema> {
8
- private fetchImpl;
10
+ export declare class CategoryListTool extends MapboxApiBasedTool<typeof CategoryListInputSchema, typeof CategoryListResponseSchema> {
9
11
  name: string;
10
12
  description: string;
11
13
  annotations: {
@@ -15,7 +17,9 @@ export declare class CategoryListTool extends MapboxApiBasedTool<typeof Category
15
17
  idempotentHint: boolean;
16
18
  openWorldHint: boolean;
17
19
  };
18
- constructor(fetchImpl?: typeof fetch);
19
- protected execute(input: CategoryListInput, accessToken: string): Promise<unknown>;
20
+ constructor(params: {
21
+ httpRequest: HttpRequest;
22
+ });
23
+ protected execute(input: CategoryListInput, accessToken: string): Promise<CallToolResult>;
20
24
  }
21
25
  //# sourceMappingURL=CategoryListTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryListTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/category-list-tool/CategoryListTool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAavE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB,CACtD,OAAO,uBAAuB,CAC/B;IAYa,OAAO,CAAC,SAAS;IAX7B,IAAI,SAAwB;IAC5B,WAAW,SAC+X;IAC1Y,WAAW;;;;;;MAMT;gBAEkB,SAAS,GAAE,OAAO,KAAmB;cAIzC,OAAO,CACrB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;CA2CpB"}
1
+ {"version":3,"file":"CategoryListTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/category-list-tool/CategoryListTool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAiBjF;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB,CACtD,OAAO,uBAAuB,EAC9B,OAAO,0BAA0B,CAClC;IACC,IAAI,SAAwB;IAC5B,WAAW,SAC0iB;IACrjB,WAAW;;;;;;MAMT;gBAEU,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;cAQhC,OAAO,CACrB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC;CAkE3B"}
@@ -13,4 +13,4 @@ export declare const CategoryListInputSchema: z.ZodObject<{
13
13
  offset?: number | undefined;
14
14
  }>;
15
15
  export type CategoryListInput = z.infer<typeof CategoryListInputSchema>;
16
- //# sourceMappingURL=CategoryListTool.schema.d.ts.map
16
+ //# sourceMappingURL=CategoryListTool.input.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoryListTool.input.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/category-list-tool/CategoryListTool.input.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAgBlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -17,4 +17,4 @@ export const CategoryListInputSchema = z.object({
17
17
  .default(0)
18
18
  .describe('Number of categories to skip for pagination. Default is 0.')
19
19
  });
20
- //# sourceMappingURL=CategoryListTool.schema.js.map
20
+ //# sourceMappingURL=CategoryListTool.input.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoryListTool.input.schema.js","sourceRoot":"","sources":["../../../../src/tools/category-list-tool/CategoryListTool.input.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,wQAAwQ,CACzQ;IACH,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,4DAA4D,CAAC;CAC1E,CAAC,CAAC"}
@@ -1,25 +1,28 @@
1
1
  // Copyright (c) Mapbox, Inc.
2
2
  // Licensed under the MIT License.
3
3
  import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
4
- import { fetchClient } from '../../utils/fetchRequest.js';
5
- import { CategoryListInputSchema } from './CategoryListTool.schema.js';
4
+ import { CategoryListInputSchema } from './CategoryListTool.input.schema.js';
5
+ import { CategoryListResponseSchema } from './CategoryListTool.output.schema.js';
6
+ // API Documentation: https://docs.mapbox.com/api/search/search-box/#list-categories
6
7
  /**
7
8
  * Tool for retrieving the list of supported categories from Mapbox Search API
8
9
  */
9
10
  export class CategoryListTool extends MapboxApiBasedTool {
10
- fetchImpl;
11
11
  name = 'category_list_tool';
12
- description = 'Tool for retrieving the list of supported categories from Mapbox Search API. Use this when another function requires a list of categories. Returns all available category IDs by default. Only use pagination (limit/offset) if token usage optimization is required. If using pagination, make multiple calls to retrieve ALL categories before proceeding with other tasks to ensure complete data.';
12
+ description = '[DEPRECATED: Use resource_reader_tool with "mapbox://categories" URI instead] Tool for retrieving the list of supported categories from Mapbox Search API. This tool is kept for backward compatibility with clients that do not support MCP resources. Use this when another function requires a list of categories. Returns all available category IDs by default. Only use pagination (limit/offset) if token usage optimization is required. If using pagination, make multiple calls to retrieve ALL categories before proceeding with other tasks to ensure complete data.';
13
13
  annotations = {
14
- title: 'Category List Tool',
14
+ title: 'Category List Tool (Deprecated)',
15
15
  readOnlyHint: true,
16
16
  destructiveHint: false,
17
17
  idempotentHint: true,
18
18
  openWorldHint: true
19
19
  };
20
- constructor(fetchImpl = fetchClient) {
21
- super({ inputSchema: CategoryListInputSchema });
22
- this.fetchImpl = fetchImpl;
20
+ constructor(params) {
21
+ super({
22
+ inputSchema: CategoryListInputSchema,
23
+ outputSchema: CategoryListResponseSchema,
24
+ httpRequest: params.httpRequest
25
+ });
23
26
  }
24
27
  async execute(input, accessToken) {
25
28
  const url = new URL('https://api.mapbox.com/search/searchbox/v1/list/category');
@@ -27,28 +30,48 @@ export class CategoryListTool extends MapboxApiBasedTool {
27
30
  if (input.language) {
28
31
  url.searchParams.set('language', input.language);
29
32
  }
30
- const response = await this.fetchImpl(url.toString(), {
33
+ const response = await this.httpRequest(url.toString(), {
31
34
  method: 'GET',
32
35
  headers: {
33
36
  'User-Agent': `@mapbox/mcp-server/${process.env.npm_package_version || 'dev'}`
34
37
  }
35
38
  });
36
39
  if (!response.ok) {
37
- throw new Error(`Mapbox API request failed: ${response.status} ${response.statusText}`);
40
+ return {
41
+ content: [
42
+ {
43
+ type: 'text',
44
+ text: `Mapbox API request failed: ${response.status} ${response.statusText}`
45
+ }
46
+ ],
47
+ isError: true
48
+ };
38
49
  }
39
- const data = (await response.json());
50
+ const rawData = await response.json();
51
+ // Parse the API response (which has the full structure)
52
+ const data = rawData;
40
53
  // Apply pagination - if no limit specified, return all
41
54
  const startIndex = input.offset || 0;
42
55
  let endIndex = data.listItems.length;
43
56
  if (input.limit) {
44
57
  endIndex = Math.min(startIndex + input.limit, data.listItems.length);
45
58
  }
46
- // Return simple object with listItems array
59
+ // Extract just the category IDs for our simplified response
47
60
  const categoryIds = data.listItems
48
61
  .slice(startIndex, endIndex)
49
62
  .map((item) => item.canonical_id);
63
+ const result = { listItems: categoryIds };
64
+ // Validate our simplified output against the schema
65
+ try {
66
+ CategoryListResponseSchema.parse(result);
67
+ }
68
+ catch (validationError) {
69
+ this.log('warning', `Output schema validation failed: ${validationError instanceof Error ? validationError.message : 'Unknown validation error'}`);
70
+ }
50
71
  return {
51
- listItems: categoryIds
72
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
73
+ structuredContent: result,
74
+ isError: false
52
75
  };
53
76
  }
54
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryListTool.js","sourceRoot":"","sources":["../../../../src/tools/category-list-tool/CategoryListTool.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAavE;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,kBAErC;IAYqB;IAXpB,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GACT,uYAAuY,CAAC;IAC1Y,WAAW,GAAG;QACZ,KAAK,EAAE,oBAAoB;QAC3B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;KACpB,CAAC;IAEF,YAAoB,YAA0B,WAAW;QACvD,KAAK,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAD9B,cAAS,GAAT,SAAS,CAA4B;IAEzD,CAAC;IAES,KAAK,CAAC,OAAO,CACrB,KAAwB,EACxB,WAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,0DAA0D,CAC3D,CAAC;QAEF,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAElD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACpD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,YAAY,EAAE,sBAAsB,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAK,EAAE;aAC/E;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACvE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;QAE7D,uDAAuD;QACvD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAErC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC;QAED,4CAA4C;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;aAC/B,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;aAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEpC,OAAO;YACL,SAAS,EAAE,WAAW;SACvB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"CategoryListTool.js","sourceRoot":"","sources":["../../../../src/tools/category-list-tool/CategoryListTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export declare const CategoryListResponseSchema: z.ZodObject<{
3
+ listItems: z.ZodArray<z.ZodString, "many">;
4
+ }, "strip", z.ZodTypeAny, {
5
+ listItems: string[];
6
+ }, {
7
+ listItems: string[];
8
+ }>;
9
+ export type CategoryListResponse = z.infer<typeof CategoryListResponseSchema>;
10
+ //# sourceMappingURL=CategoryListTool.output.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoryListTool.output.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/category-list-tool/CategoryListTool.output.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,0BAA0B;;;;;;EAErC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ // Copyright (c) Mapbox, Inc.
2
+ // Licensed under the MIT License.
3
+ import { z } from 'zod';
4
+ // Schema for the simplified output that the tool actually returns
5
+ // Just an array of category ID strings
6
+ export const CategoryListResponseSchema = z.object({
7
+ listItems: z.array(z.string())
8
+ });
9
+ //# sourceMappingURL=CategoryListTool.output.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoryListTool.output.schema.js","sourceRoot":"","sources":["../../../../src/tools/category-list-tool/CategoryListTool.output.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,kEAAkE;AAClE,uCAAuC;AACvC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC/B,CAAC,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import type { z } from 'zod';
2
2
  import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
3
- import { CategorySearchInputSchema } from './CategorySearchTool.schema.js';
4
- export declare class CategorySearchTool extends MapboxApiBasedTool<typeof CategorySearchInputSchema> {
5
- private fetch;
3
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
4
+ import type { HttpRequest } from '../../utils/types.js';
5
+ import { CategorySearchInputSchema } from './CategorySearchTool.input.schema.js';
6
+ import { CategorySearchResponseSchema } from './CategorySearchTool.output.schema.js';
7
+ export declare class CategorySearchTool extends MapboxApiBasedTool<typeof CategorySearchInputSchema, typeof CategorySearchResponseSchema> {
6
8
  name: string;
7
9
  description: string;
8
10
  annotations: {
@@ -12,11 +14,10 @@ export declare class CategorySearchTool extends MapboxApiBasedTool<typeof Catego
12
14
  idempotentHint: boolean;
13
15
  openWorldHint: boolean;
14
16
  };
15
- constructor(fetch?: typeof globalThis.fetch);
17
+ constructor(params: {
18
+ httpRequest: HttpRequest;
19
+ });
16
20
  private formatGeoJsonToText;
17
- protected execute(input: z.infer<typeof CategorySearchInputSchema>, accessToken: string): Promise<{
18
- type: 'text';
19
- text: string;
20
- }>;
21
+ protected execute(input: z.infer<typeof CategorySearchInputSchema>, accessToken: string): Promise<CallToolResult>;
21
22
  }
22
23
  //# sourceMappingURL=CategorySearchTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CategorySearchTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/category-search-tool/CategorySearchTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,qBAAa,kBAAmB,SAAQ,kBAAkB,CACxD,OAAO,yBAAyB,CACjC;IAYa,OAAO,CAAC,KAAK;IAXzB,IAAI,SAA0B;IAC9B,WAAW,SACoX;IAC/X,WAAW;;;;;;MAMT;gBAEkB,KAAK,GAAE,OAAO,UAAU,CAAC,KAAmB;IAIhE,OAAO,CAAC,mBAAmB;cAsDX,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EAChD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAmE3C"}
1
+ {"version":3,"file":"CategorySearchTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/category-search-tool/CategorySearchTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAQrF,qBAAa,kBAAmB,SAAQ,kBAAkB,CACxD,OAAO,yBAAyB,EAChC,OAAO,4BAA4B,CACpC;IACC,IAAI,SAA0B;IAC9B,WAAW,SACoX;IAC/X,WAAW;;;;;;MAMT;gBAEU,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;IAQhD,OAAO,CAAC,mBAAmB;cAwDX,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EAChD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC;CA6F3B"}
@@ -3,7 +3,7 @@ export declare const CategorySearchInputSchema: z.ZodObject<{
3
3
  category: z.ZodString;
4
4
  language: z.ZodOptional<z.ZodString>;
5
5
  limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
- proximity: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
6
+ proximity: z.ZodOptional<z.ZodObject<{
7
7
  longitude: z.ZodNumber;
8
8
  latitude: z.ZodNumber;
9
9
  }, "strip", z.ZodTypeAny, {
@@ -12,10 +12,7 @@ export declare const CategorySearchInputSchema: z.ZodObject<{
12
12
  }, {
13
13
  longitude: number;
14
14
  latitude: number;
15
- }>, z.ZodEffects<z.ZodString, "ip" | {
16
- longitude: any;
17
- latitude: any;
18
- }, string>]>>;
15
+ }>>;
19
16
  bbox: z.ZodOptional<z.ZodObject<{
20
17
  minLongitude: z.ZodNumber;
21
18
  minLatitude: z.ZodNumber;
@@ -36,16 +33,13 @@ export declare const CategorySearchInputSchema: z.ZodObject<{
36
33
  poi_category_exclusions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
37
34
  format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["json_string", "formatted_text"]>>>;
38
35
  }, "strip", z.ZodTypeAny, {
39
- limit: number;
40
36
  category: string;
37
+ limit: number;
41
38
  format: "json_string" | "formatted_text";
42
39
  language?: string | undefined;
43
40
  proximity?: {
44
41
  longitude: number;
45
42
  latitude: number;
46
- } | "ip" | {
47
- longitude: any;
48
- latitude: any;
49
43
  } | undefined;
50
44
  bbox?: {
51
45
  minLongitude: number;
@@ -59,7 +53,7 @@ export declare const CategorySearchInputSchema: z.ZodObject<{
59
53
  category: string;
60
54
  language?: string | undefined;
61
55
  limit?: number | undefined;
62
- proximity?: string | {
56
+ proximity?: {
63
57
  longitude: number;
64
58
  latitude: number;
65
59
  } | undefined;
@@ -73,4 +67,4 @@ export declare const CategorySearchInputSchema: z.ZodObject<{
73
67
  poi_category_exclusions?: string[] | undefined;
74
68
  format?: "json_string" | "formatted_text" | undefined;
75
69
  }>;
76
- //# sourceMappingURL=CategorySearchTool.schema.d.ts.map
70
+ //# sourceMappingURL=CategorySearchTool.input.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategorySearchTool.input.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/category-search-tool/CategorySearchTool.input.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCpC,CAAC"}
@@ -0,0 +1,41 @@
1
+ // Copyright (c) Mapbox, Inc.
2
+ // Licensed under the MIT License.
3
+ import { z } from 'zod';
4
+ import { languageSchema, bboxSchema } from '../../schemas/shared.js';
5
+ export const CategorySearchInputSchema = z.object({
6
+ category: z
7
+ .string()
8
+ .describe('The canonical place category name to search for (e.g., "restaurant", "hotel", "cafe"). To get the full list of supported categories, use the category_list_tool.'),
9
+ language: languageSchema.optional(),
10
+ limit: z
11
+ .number()
12
+ .min(1)
13
+ .max(25)
14
+ .optional()
15
+ .default(10)
16
+ .describe('Maximum number of results to return (1-25)'),
17
+ proximity: z
18
+ .object({
19
+ longitude: z.number().min(-180).max(180),
20
+ latitude: z.number().min(-90).max(90)
21
+ })
22
+ .optional()
23
+ .describe('Location to bias results towards as {longitude, latitude}. If not provided, defaults to IP-based location.'),
24
+ bbox: bboxSchema
25
+ .describe('Bounding box to limit results within specified bounds')
26
+ .optional(),
27
+ country: z
28
+ .array(z.string().length(2))
29
+ .optional()
30
+ .describe('Array of ISO 3166 alpha 2 country codes to limit results'),
31
+ poi_category_exclusions: z
32
+ .array(z.string())
33
+ .optional()
34
+ .describe('Array of POI categories to exclude from results'),
35
+ format: z
36
+ .enum(['json_string', 'formatted_text'])
37
+ .optional()
38
+ .default('formatted_text')
39
+ .describe('Output format: "json_string" returns raw GeoJSON data as a JSON string that can be parsed; "formatted_text" returns human-readable text with place names, addresses, and coordinates. Both return as text content but json_string contains parseable JSON data while formatted_text is for display.')
40
+ });
41
+ //# sourceMappingURL=CategorySearchTool.input.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategorySearchTool.input.schema.js","sourceRoot":"","sources":["../../../../src/tools/category-search-tool/CategorySearchTool.input.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CACP,kKAAkK,CACnK;IACH,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,4CAA4C,CAAC;IACzD,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KACtC,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,4GAA4G,CAC7G;IACH,IAAI,EAAE,UAAU;SACb,QAAQ,CAAC,uDAAuD,CAAC;SACjE,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC3B,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,uBAAuB,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,OAAO,CAAC,gBAAgB,CAAC;SACzB,QAAQ,CACP,qSAAqS,CACtS;CACJ,CAAC,CAAC"}