@mapbox/mcp-server 0.8.1 → 0.8.3

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 (431) hide show
  1. package/README.md +191 -0
  2. package/dist/commonjs/index.js +94 -6
  3. package/dist/commonjs/index.js.map +1 -1
  4. package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts +26 -0
  5. package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts.map +1 -0
  6. package/dist/commonjs/prompts/SearchAlongRoutePrompt.js +164 -0
  7. package/dist/commonjs/prompts/SearchAlongRoutePrompt.js.map +1 -0
  8. package/dist/commonjs/prompts/promptRegistry.d.ts +2 -1
  9. package/dist/commonjs/prompts/promptRegistry.d.ts.map +1 -1
  10. package/dist/commonjs/prompts/promptRegistry.js +2 -0
  11. package/dist/commonjs/prompts/promptRegistry.js.map +1 -1
  12. package/dist/commonjs/schemas/shared.d.ts +5 -0
  13. package/dist/commonjs/schemas/shared.d.ts.map +1 -1
  14. package/dist/commonjs/schemas/shared.js +11 -1
  15. package/dist/commonjs/schemas/shared.js.map +1 -1
  16. package/dist/commonjs/tools/MapboxApiBasedTool.d.ts +8 -0
  17. package/dist/commonjs/tools/MapboxApiBasedTool.d.ts.map +1 -1
  18. package/dist/commonjs/tools/MapboxApiBasedTool.js +20 -0
  19. package/dist/commonjs/tools/MapboxApiBasedTool.js.map +1 -1
  20. package/dist/commonjs/tools/area-tool/AreaTool.d.ts +21 -0
  21. package/dist/commonjs/tools/area-tool/AreaTool.d.ts.map +1 -0
  22. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.d.ts +19 -0
  23. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.d.ts.map +1 -0
  24. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.js +34 -0
  25. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.js.map +1 -0
  26. package/dist/commonjs/tools/area-tool/AreaTool.js +104 -0
  27. package/dist/commonjs/tools/area-tool/AreaTool.js.map +1 -0
  28. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.d.ts +19 -0
  29. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.d.ts.map +1 -0
  30. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.js +14 -0
  31. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.js.map +1 -0
  32. package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts +22 -0
  33. package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts.map +1 -0
  34. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.d.ts +49 -0
  35. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.d.ts.map +1 -0
  36. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.js +27 -0
  37. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.js.map +1 -0
  38. package/dist/commonjs/tools/bearing-tool/BearingTool.js +84 -0
  39. package/dist/commonjs/tools/bearing-tool/BearingTool.js.map +1 -0
  40. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.d.ts +52 -0
  41. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.d.ts.map +1 -0
  42. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.js +21 -0
  43. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.js.map +1 -0
  44. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts +22 -0
  45. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -0
  46. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts +16 -0
  47. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts.map +1 -0
  48. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.js +31 -0
  49. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.js.map +1 -0
  50. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.js +107 -0
  51. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.js.map +1 -0
  52. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts +16 -0
  53. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts.map +1 -0
  54. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.js +15 -0
  55. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.js.map +1 -0
  56. package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts +22 -0
  57. package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts.map +1 -0
  58. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.d.ts +22 -0
  59. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.d.ts.map +1 -0
  60. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.js +35 -0
  61. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.js.map +1 -0
  62. package/dist/commonjs/tools/buffer-tool/BufferTool.js +103 -0
  63. package/dist/commonjs/tools/buffer-tool/BufferTool.js.map +1 -0
  64. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.d.ts +22 -0
  65. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.d.ts.map +1 -0
  66. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.js +17 -0
  67. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.js.map +1 -0
  68. package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
  69. package/dist/commonjs/tools/category-list-tool/CategoryListTool.js +2 -1
  70. package/dist/commonjs/tools/category-list-tool/CategoryListTool.js.map +1 -1
  71. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  72. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +10 -10
  73. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +2 -1
  74. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  75. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +44 -44
  76. package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts +21 -0
  77. package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts.map +1 -0
  78. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.d.ts +16 -0
  79. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.d.ts.map +1 -0
  80. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.js +29 -0
  81. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.js.map +1 -0
  82. package/dist/commonjs/tools/centroid-tool/CentroidTool.js +81 -0
  83. package/dist/commonjs/tools/centroid-tool/CentroidTool.js.map +1 -0
  84. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.d.ts +31 -0
  85. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.d.ts.map +1 -0
  86. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.js +16 -0
  87. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.js.map +1 -0
  88. package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  89. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts +3 -3
  90. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
  91. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js +6 -7
  92. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
  93. package/dist/commonjs/tools/directions-tool/DirectionsTool.js +9 -8
  94. package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
  95. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +266 -266
  96. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js +6 -6
  97. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
  98. package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts +2 -2
  99. package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
  100. package/dist/commonjs/tools/directions-tool/cleanResponseData.js.map +1 -1
  101. package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts +29 -0
  102. package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts.map +1 -0
  103. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.d.ts +52 -0
  104. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.d.ts.map +1 -0
  105. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.js +29 -0
  106. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.js.map +1 -0
  107. package/dist/commonjs/tools/distance-tool/DistanceTool.js +95 -0
  108. package/dist/commonjs/tools/distance-tool/DistanceTool.js.map +1 -0
  109. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.d.ts +55 -0
  110. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.d.ts.map +1 -0
  111. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.js +26 -0
  112. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.js.map +1 -0
  113. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  114. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.input.schema.d.ts +2 -2
  115. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js +2 -1
  116. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  117. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts +22 -0
  118. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -0
  119. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts +43 -0
  120. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts.map +1 -0
  121. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.js +60 -0
  122. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.js.map +1 -0
  123. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js +117 -0
  124. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js.map +1 -0
  125. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +170 -0
  126. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -0
  127. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js +49 -0
  128. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -0
  129. package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
  130. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.d.ts +3 -3
  131. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.d.ts.map +1 -1
  132. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.js +5 -7
  133. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.js.map +1 -1
  134. package/dist/commonjs/tools/matrix-tool/MatrixTool.js +5 -3
  135. package/dist/commonjs/tools/matrix-tool/MatrixTool.js.map +1 -1
  136. package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts +21 -0
  137. package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts.map +1 -0
  138. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.d.ts +49 -0
  139. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.d.ts.map +1 -0
  140. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.js +27 -0
  141. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.js.map +1 -0
  142. package/dist/commonjs/tools/midpoint-tool/MidpointTool.js +81 -0
  143. package/dist/commonjs/tools/midpoint-tool/MidpointTool.js.map +1 -0
  144. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.d.ts +67 -0
  145. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.d.ts.map +1 -0
  146. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.js +24 -0
  147. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.js.map +1 -0
  148. package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts +28 -0
  149. package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts.map +1 -0
  150. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts +58 -0
  151. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -0
  152. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js +76 -0
  153. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -0
  154. package/dist/commonjs/tools/optimization-tool/OptimizationTool.js +142 -0
  155. package/dist/commonjs/tools/optimization-tool/OptimizationTool.js.map +1 -0
  156. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts +621 -0
  157. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -0
  158. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js +87 -0
  159. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -0
  160. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts +10 -0
  161. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts.map +1 -0
  162. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +303 -0
  163. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +1 -0
  164. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js +186 -0
  165. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +1 -0
  166. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js +332 -0
  167. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js.map +1 -0
  168. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +356 -0
  169. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +1 -0
  170. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js +109 -0
  171. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +1 -0
  172. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.d.ts +24 -0
  173. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.d.ts.map +1 -0
  174. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts +34 -0
  175. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts.map +1 -0
  176. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js +32 -0
  177. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js.map +1 -0
  178. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.js +84 -0
  179. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.js.map +1 -0
  180. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts +34 -0
  181. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts.map +1 -0
  182. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js +19 -0
  183. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js.map +1 -0
  184. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
  185. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
  186. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
  187. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js +2 -1
  188. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -1
  189. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +24 -24
  190. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +10 -10
  191. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +3 -3
  192. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  193. package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts +22 -0
  194. package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts.map +1 -0
  195. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.d.ts +22 -0
  196. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.d.ts.map +1 -0
  197. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.js +38 -0
  198. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.js.map +1 -0
  199. package/dist/commonjs/tools/simplify-tool/SimplifyTool.js +108 -0
  200. package/dist/commonjs/tools/simplify-tool/SimplifyTool.js.map +1 -0
  201. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.d.ts +25 -0
  202. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.d.ts.map +1 -0
  203. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.js +23 -0
  204. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.js.map +1 -0
  205. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  206. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
  207. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js +20 -2
  208. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  209. package/dist/commonjs/tools/toolRegistry.d.ts +62 -1
  210. package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
  211. package/dist/commonjs/tools/toolRegistry.js +90 -5
  212. package/dist/commonjs/tools/toolRegistry.js.map +1 -1
  213. package/dist/commonjs/utils/tracing.d.ts.map +1 -1
  214. package/dist/commonjs/utils/tracing.js.map +1 -1
  215. package/dist/commonjs/version.json +3 -3
  216. package/dist/esm/index.js +95 -7
  217. package/dist/esm/index.js.map +1 -1
  218. package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts +26 -0
  219. package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts.map +1 -0
  220. package/dist/esm/prompts/SearchAlongRoutePrompt.js +160 -0
  221. package/dist/esm/prompts/SearchAlongRoutePrompt.js.map +1 -0
  222. package/dist/esm/prompts/promptRegistry.d.ts +2 -1
  223. package/dist/esm/prompts/promptRegistry.d.ts.map +1 -1
  224. package/dist/esm/prompts/promptRegistry.js +2 -0
  225. package/dist/esm/prompts/promptRegistry.js.map +1 -1
  226. package/dist/esm/schemas/shared.d.ts +5 -0
  227. package/dist/esm/schemas/shared.d.ts.map +1 -1
  228. package/dist/esm/schemas/shared.js +10 -0
  229. package/dist/esm/schemas/shared.js.map +1 -1
  230. package/dist/esm/tools/MapboxApiBasedTool.d.ts +8 -0
  231. package/dist/esm/tools/MapboxApiBasedTool.d.ts.map +1 -1
  232. package/dist/esm/tools/MapboxApiBasedTool.js +20 -0
  233. package/dist/esm/tools/MapboxApiBasedTool.js.map +1 -1
  234. package/dist/esm/tools/area-tool/AreaTool.d.ts +21 -0
  235. package/dist/esm/tools/area-tool/AreaTool.d.ts.map +1 -0
  236. package/dist/esm/tools/area-tool/AreaTool.input.schema.d.ts +19 -0
  237. package/dist/esm/tools/area-tool/AreaTool.input.schema.d.ts.map +1 -0
  238. package/dist/esm/tools/area-tool/AreaTool.input.schema.js +28 -0
  239. package/dist/esm/tools/area-tool/AreaTool.input.schema.js.map +1 -0
  240. package/dist/esm/tools/area-tool/AreaTool.js +100 -0
  241. package/dist/esm/tools/area-tool/AreaTool.js.map +1 -0
  242. package/dist/esm/tools/area-tool/AreaTool.output.schema.d.ts +19 -0
  243. package/dist/esm/tools/area-tool/AreaTool.output.schema.d.ts.map +1 -0
  244. package/dist/esm/tools/area-tool/AreaTool.output.schema.js +11 -0
  245. package/dist/esm/tools/area-tool/AreaTool.output.schema.js.map +1 -0
  246. package/dist/esm/tools/bearing-tool/BearingTool.d.ts +22 -0
  247. package/dist/esm/tools/bearing-tool/BearingTool.d.ts.map +1 -0
  248. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.d.ts +49 -0
  249. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.d.ts.map +1 -0
  250. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.js +21 -0
  251. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.js.map +1 -0
  252. package/dist/esm/tools/bearing-tool/BearingTool.js +80 -0
  253. package/dist/esm/tools/bearing-tool/BearingTool.js.map +1 -0
  254. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.d.ts +52 -0
  255. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.d.ts.map +1 -0
  256. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.js +18 -0
  257. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.js.map +1 -0
  258. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts +22 -0
  259. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -0
  260. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts +16 -0
  261. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts.map +1 -0
  262. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.js +25 -0
  263. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.js.map +1 -0
  264. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.js +103 -0
  265. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.js.map +1 -0
  266. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts +16 -0
  267. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts.map +1 -0
  268. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.js +12 -0
  269. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.js.map +1 -0
  270. package/dist/esm/tools/buffer-tool/BufferTool.d.ts +22 -0
  271. package/dist/esm/tools/buffer-tool/BufferTool.d.ts.map +1 -0
  272. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.d.ts +22 -0
  273. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.d.ts.map +1 -0
  274. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.js +29 -0
  275. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.js.map +1 -0
  276. package/dist/esm/tools/buffer-tool/BufferTool.js +99 -0
  277. package/dist/esm/tools/buffer-tool/BufferTool.js.map +1 -0
  278. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.d.ts +22 -0
  279. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.d.ts.map +1 -0
  280. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.js +14 -0
  281. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.js.map +1 -0
  282. package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
  283. package/dist/esm/tools/category-list-tool/CategoryListTool.js +2 -1
  284. package/dist/esm/tools/category-list-tool/CategoryListTool.js.map +1 -1
  285. package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  286. package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +10 -10
  287. package/dist/esm/tools/category-search-tool/CategorySearchTool.js +2 -1
  288. package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  289. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +44 -44
  290. package/dist/esm/tools/centroid-tool/CentroidTool.d.ts +21 -0
  291. package/dist/esm/tools/centroid-tool/CentroidTool.d.ts.map +1 -0
  292. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.d.ts +16 -0
  293. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.d.ts.map +1 -0
  294. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.js +23 -0
  295. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.js.map +1 -0
  296. package/dist/esm/tools/centroid-tool/CentroidTool.js +77 -0
  297. package/dist/esm/tools/centroid-tool/CentroidTool.js.map +1 -0
  298. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.d.ts +31 -0
  299. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.d.ts.map +1 -0
  300. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.js +13 -0
  301. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.js.map +1 -0
  302. package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  303. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts +3 -3
  304. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
  305. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js +7 -8
  306. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
  307. package/dist/esm/tools/directions-tool/DirectionsTool.js +9 -8
  308. package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
  309. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +266 -266
  310. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js +6 -6
  311. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
  312. package/dist/esm/tools/directions-tool/cleanResponseData.d.ts +2 -2
  313. package/dist/esm/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
  314. package/dist/esm/tools/directions-tool/cleanResponseData.js.map +1 -1
  315. package/dist/esm/tools/distance-tool/DistanceTool.d.ts +29 -0
  316. package/dist/esm/tools/distance-tool/DistanceTool.d.ts.map +1 -0
  317. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.d.ts +52 -0
  318. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.d.ts.map +1 -0
  319. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.js +23 -0
  320. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.js.map +1 -0
  321. package/dist/esm/tools/distance-tool/DistanceTool.js +91 -0
  322. package/dist/esm/tools/distance-tool/DistanceTool.js.map +1 -0
  323. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.d.ts +55 -0
  324. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.d.ts.map +1 -0
  325. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.js +23 -0
  326. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.js.map +1 -0
  327. package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  328. package/dist/esm/tools/isochrone-tool/IsochroneTool.input.schema.d.ts +2 -2
  329. package/dist/esm/tools/isochrone-tool/IsochroneTool.js +2 -1
  330. package/dist/esm/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  331. package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts +22 -0
  332. package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -0
  333. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts +43 -0
  334. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts.map +1 -0
  335. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.js +57 -0
  336. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.js.map +1 -0
  337. package/dist/esm/tools/map-matching-tool/MapMatchingTool.js +113 -0
  338. package/dist/esm/tools/map-matching-tool/MapMatchingTool.js.map +1 -0
  339. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +170 -0
  340. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -0
  341. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js +46 -0
  342. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -0
  343. package/dist/esm/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
  344. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts +3 -3
  345. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts.map +1 -1
  346. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.js +6 -8
  347. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.js.map +1 -1
  348. package/dist/esm/tools/matrix-tool/MatrixTool.js +5 -3
  349. package/dist/esm/tools/matrix-tool/MatrixTool.js.map +1 -1
  350. package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts +21 -0
  351. package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts.map +1 -0
  352. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.d.ts +49 -0
  353. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.d.ts.map +1 -0
  354. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.js +21 -0
  355. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.js.map +1 -0
  356. package/dist/esm/tools/midpoint-tool/MidpointTool.js +77 -0
  357. package/dist/esm/tools/midpoint-tool/MidpointTool.js.map +1 -0
  358. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.d.ts +67 -0
  359. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.d.ts.map +1 -0
  360. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.js +21 -0
  361. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.js.map +1 -0
  362. package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts +28 -0
  363. package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts.map +1 -0
  364. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts +58 -0
  365. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -0
  366. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js +70 -0
  367. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -0
  368. package/dist/esm/tools/optimization-tool/OptimizationTool.js +138 -0
  369. package/dist/esm/tools/optimization-tool/OptimizationTool.js.map +1 -0
  370. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts +621 -0
  371. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -0
  372. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js +84 -0
  373. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -0
  374. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts +10 -0
  375. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts.map +1 -0
  376. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +303 -0
  377. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +1 -0
  378. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js +180 -0
  379. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +1 -0
  380. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js +329 -0
  381. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js.map +1 -0
  382. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +356 -0
  383. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +1 -0
  384. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js +106 -0
  385. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +1 -0
  386. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.d.ts +24 -0
  387. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.d.ts.map +1 -0
  388. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts +34 -0
  389. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts.map +1 -0
  390. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js +26 -0
  391. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js.map +1 -0
  392. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.js +80 -0
  393. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.js.map +1 -0
  394. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts +34 -0
  395. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts.map +1 -0
  396. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js +16 -0
  397. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js.map +1 -0
  398. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
  399. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
  400. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
  401. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js +2 -1
  402. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -1
  403. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +24 -24
  404. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +10 -10
  405. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +3 -3
  406. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  407. package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts +22 -0
  408. package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts.map +1 -0
  409. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.d.ts +22 -0
  410. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.d.ts.map +1 -0
  411. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.js +32 -0
  412. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.js.map +1 -0
  413. package/dist/esm/tools/simplify-tool/SimplifyTool.js +104 -0
  414. package/dist/esm/tools/simplify-tool/SimplifyTool.js.map +1 -0
  415. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.d.ts +25 -0
  416. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.d.ts.map +1 -0
  417. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.js +20 -0
  418. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.js.map +1 -0
  419. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  420. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
  421. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js +20 -2
  422. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  423. package/dist/esm/tools/toolRegistry.d.ts +62 -1
  424. package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
  425. package/dist/esm/tools/toolRegistry.js +86 -4
  426. package/dist/esm/tools/toolRegistry.js.map +1 -1
  427. package/dist/esm/utils/tracing.d.ts.map +1 -1
  428. package/dist/esm/utils/tracing.js.map +1 -1
  429. package/dist/esm/version.json +3 -3
  430. package/package.json +3 -2
  431. /package/patches/{@modelcontextprotocol+sdk+1.25.1.patch → @modelcontextprotocol+sdk+1.25.3.patch} +0 -0
package/README.md CHANGED
@@ -12,8 +12,11 @@ The Mapbox MCP Server transforms any AI agent or application into a geospatially
12
12
  - **Points of interest (POI) search** across millions of businesses, landmarks, and places worldwide
13
13
  - **Multi-modal routing** for driving, walking, and cycling with real-time traffic
14
14
  - **Travel time matrices** to analyze accessibility and optimize logistics
15
+ - **Route optimization** to find the optimal visiting order for multiple stops (traveling salesman problem)
16
+ - **Map matching** to snap GPS traces to the road network for clean route visualization
15
17
  - **Isochrone generation** to visualize areas reachable within specific time or distance constraints
16
18
  - **Static map images** to create visual representations of locations, routes, and geographic data
19
+ - **Offline geospatial calculations** for distance, area, bearing, buffers, and spatial analysis without requiring API calls
17
20
 
18
21
  Whether you're building an AI travel assistant, logistics optimizer, location-based recommender, or any application that needs to understand "where", the Mapbox MCP Server provides the spatial intelligence to make it possible. You can also enable it on popular clients like Claude Desktop and VS Code. See below for details
19
22
 
@@ -56,6 +59,7 @@ Try these prompts with Claude Desktop or other MCP clients after setup:
56
59
  ### Location Discovery
57
60
 
58
61
  - "Find coffee shops within walking distance of the Empire State Building"
62
+ - "I want to go from Seattle to Portland, is there a Starbucks along the way?"
59
63
  - "Show me gas stations along the route from Boston to New York"
60
64
  - "What restaurants are near Times Square?"
61
65
 
@@ -76,6 +80,25 @@ Try these prompts with Claude Desktop or other MCP clients after setup:
76
80
  - "Show me areas reachable within 30 minutes of downtown Portland by car"
77
81
  - "Calculate a travel time matrix between these 3 hotel locations (Marriott, Sheraton and Hilton) and the convention center in Denver"
78
82
  - "Find the optimal route visiting these 3 tourist attractions (Golden Gate, Musical Stairs and Fisherman's Wharf) in San Francisco"
83
+ - "Optimize a delivery route for these 8 addresses: [list of addresses]"
84
+
85
+ ### GPS & Route Matching
86
+
87
+ - "Clean up this GPS trace and show the actual route on roads: [list of coordinates with timestamps]"
88
+ - "Snap this recorded bicycle ride to the cycling network: [GPS coordinates]"
89
+ - "Match this driving route to the road network and show traffic congestion levels"
90
+
91
+ ### Offline Geospatial Calculations
92
+
93
+ - "What's the distance in miles between these two coordinates?"
94
+ - "Calculate the area of this polygon in square kilometers"
95
+ - "Is the point at 37.7749°N, 122.4194°W inside this service area polygon?"
96
+ - "What's the bearing from San Francisco to New York?"
97
+ - "Find the midpoint between London and Paris"
98
+ - "Create a 5-mile buffer zone around this location"
99
+ - "Calculate the centroid of this neighborhood boundary"
100
+ - "What's the bounding box for these route coordinates?"
101
+ - "Simplify this complex polygon to reduce the number of points"
79
102
 
80
103
  ### Tips for Better Results
81
104
 
@@ -84,6 +107,8 @@ Try these prompts with Claude Desktop or other MCP clients after setup:
84
107
  - Include time constraints when relevant ("during rush hour", "at 3 PM")
85
108
  - Ask for specific output formats when needed ("as a map image", "in JSON format")
86
109
 
110
+ > **Detailed examples:** See [examples/search-along-route.md](./examples/search-along-route.md) for comprehensive examples of the search-along-route prompt with different use cases and MCP Inspector testing instructions.
111
+
87
112
  ## Resources
88
113
 
89
114
  The MCP server exposes static reference data as **MCP resources**. Resources provide read-only access to data that clients can reference directly without making tool calls.
@@ -159,6 +184,29 @@ node dist/esm/index.js --disable-mcp-ui
159
184
 
160
185
  **For more detailed information**, including compatible clients, technical implementation details, and troubleshooting, see the [MCP-UI documentation](./docs/mcp-ui.md).
161
186
 
187
+ #### CLIENT_NEEDS_RESOURCE_FALLBACK
188
+
189
+ **Resource Fallback Tools (Opt-In for Non-Compliant Clients)**
190
+
191
+ Resources are a core MCP feature supported by most clients (Claude Desktop, VS Code, MCP Inspector, etc.). However, some clients (like smolagents) don't support resources at all. For these clients, the server can provide "resource fallback tools" that deliver the same content as resources but via tool calls.
192
+
193
+ **Fallback Tools:**
194
+
195
+ - `resource_reader_tool` - Generic fallback for reading any resource by URI
196
+ - `category_list_tool` - Provides access to category list (mapbox://categories)
197
+
198
+ **By default, these tools are NOT included** (assumes your client supports resources). If your client doesn't support resources, enable the fallback tools:
199
+
200
+ ```bash
201
+ export CLIENT_NEEDS_RESOURCE_FALLBACK=true
202
+ ```
203
+
204
+ **When to set this:**
205
+
206
+ - ✅ Set to `true` if using smolagents or other clients without resource support
207
+ - ❌ Leave unset (default) if using Claude Desktop, VS Code, MCP Inspector, or any resource-capable client
208
+ - ❌ Leave unset if unsure (most clients support resources)
209
+
162
210
  ## Tools
163
211
 
164
212
  ### Utility Tools
@@ -178,6 +226,119 @@ Provides access to MCP resources for clients that don't support the native MCP r
178
226
 
179
227
  **Note**: If your MCP client supports native resources, prefer using the resource API directly for better performance.
180
228
 
229
+ ### Offline Geospatial Tools
230
+
231
+ These tools perform geospatial calculations completely offline without requiring Mapbox API calls. They use [Turf.js](https://turfjs.org/) for accurate geographic computations and work anywhere, even without internet connectivity.
232
+
233
+ #### Distance Tool
234
+
235
+ Calculate the distance between two geographic coordinates using the Haversine formula.
236
+
237
+ **Features**:
238
+
239
+ - Supports multiple units: kilometers, miles, meters, feet, nautical miles
240
+ - Accurate great-circle distance calculation
241
+ - No API calls required
242
+
243
+ **Example Usage**: "What's the distance between San Francisco (37.7749°N, 122.4194°W) and New York (40.7128°N, 74.0060°W)?"
244
+
245
+ #### Point in Polygon Tool
246
+
247
+ Test whether a point is inside a polygon or multipolygon.
248
+
249
+ **Features**:
250
+
251
+ - Works with complex polygons including holes
252
+ - Supports multipolygons
253
+ - Useful for geofencing and service area checks
254
+
255
+ **Example Usage**: "Is this delivery address inside our service area?"
256
+
257
+ #### Bearing Tool
258
+
259
+ Calculate the compass direction (bearing) from one coordinate to another.
260
+
261
+ **Features**:
262
+
263
+ - Returns bearing in degrees (0-360°)
264
+ - Provides cardinal direction (N, NE, E, SE, S, SW, W, NW)
265
+ - Useful for navigation and directional queries
266
+
267
+ **Example Usage**: "What direction should I head to go from here to the airport?"
268
+
269
+ #### Midpoint Tool
270
+
271
+ Find the geographic midpoint between two coordinates along the great circle path.
272
+
273
+ **Features**:
274
+
275
+ - Calculates true midpoint on Earth's curved surface
276
+ - Useful for meeting point suggestions
277
+ - Handles long-distance calculations correctly
278
+
279
+ **Example Usage**: "What's halfway between San Francisco and New York?"
280
+
281
+ #### Centroid Tool
282
+
283
+ Calculate the geometric center (centroid) of a polygon or multipolygon.
284
+
285
+ **Features**:
286
+
287
+ - Works with complex shapes
288
+ - Returns arithmetic mean of all points
289
+ - Useful for placing labels or markers
290
+
291
+ **Example Usage**: "Where should I place a marker for this neighborhood boundary?"
292
+
293
+ #### Area Tool
294
+
295
+ Calculate the area of a polygon.
296
+
297
+ **Features**:
298
+
299
+ - Supports multiple units: square meters, square kilometers, acres, hectares, square miles, square feet
300
+ - Accurate area calculation on Earth's surface
301
+ - Works with polygons of any size
302
+
303
+ **Example Usage**: "What's the area of this park in acres?"
304
+
305
+ #### Bounding Box Tool
306
+
307
+ Calculate the minimum bounding box (bbox) that contains a geometry.
308
+
309
+ **Features**:
310
+
311
+ - Works with points, lines, polygons, and multipolygons
312
+ - Returns [minLongitude, minLatitude, maxLongitude, maxLatitude]
313
+ - Useful for viewport calculations and spatial indexing
314
+
315
+ **Example Usage**: "What's the bounding box for this route?"
316
+
317
+ #### Buffer Tool
318
+
319
+ Create a buffer zone (polygon) around a point, line, or polygon.
320
+
321
+ **Features**:
322
+
323
+ - Supports multiple distance units
324
+ - Creates circular buffers around points
325
+ - Useful for proximity analysis and creating zones of influence
326
+
327
+ **Example Usage**: "Show me a 5km buffer zone around this location"
328
+
329
+ #### Simplify Tool
330
+
331
+ Reduce the number of vertices in a line or polygon using the Douglas-Peucker algorithm.
332
+
333
+ **Features**:
334
+
335
+ - Configurable tolerance for detail level
336
+ - Preserves overall shape while reducing complexity
337
+ - Useful for reducing file sizes and improving rendering performance
338
+ - Option to maintain topology (prevent self-intersections)
339
+
340
+ **Example Usage**: "Simplify this complex boundary to reduce the number of points"
341
+
181
342
  ### Mapbox API Tools
182
343
 
183
344
  #### Category List Tool (Deprecated)
@@ -260,6 +421,36 @@ Computes areas that are reachable within a specified amount of times from a loca
260
421
  Uses the [Mapbox Search Box Text Search API](https://docs.mapbox.com/api/search/search-box/#search-request) endpoint to power searching for and geocoding POIs, addresses, places, and any other types supported by that API.
261
422
  This tool consolidates the functionality that was previously provided by the ForwardGeocodeTool and PoiSearchTool (from earlier versions of this MCP server) into a single tool.
262
423
 
424
+ #### Map matching tool
425
+
426
+ Snaps GPS traces to the road network using the [Mapbox Map Matching API](https://docs.mapbox.com/api/navigation/map-matching/). Features include:
427
+
428
+ - Convert noisy GPS traces to clean routes on the road network
429
+ - Support for different travel profiles (driving, driving-traffic, walking, cycling)
430
+ - Handle up to 100 coordinate pairs per request
431
+ - Optional timestamps for improved accuracy based on speed
432
+ - Configurable snap radiuses for different GPS quality levels
433
+ - Route annotations (speed limits, distance, duration, traffic congestion)
434
+ - Multiple geometry output formats (GeoJSON, polyline)
435
+
436
+ **Example Usage**: "Clean up this GPS trace and snap it to roads: [coordinates with timestamps]"
437
+
438
+ #### Optimization tool
439
+
440
+ Finds the optimal route through multiple locations using the [Mapbox Optimization API](https://docs.mapbox.com/api/navigation/optimization/). Features include:
441
+
442
+ - Solve traveling salesman problem (TSP) for 2-12 locations
443
+ - Support for different travel profiles (driving, driving-traffic, walking, cycling)
444
+ - Flexible start and end point configuration
445
+ - Roundtrip or one-way trip optimization
446
+ - Turn-by-turn navigation instructions (optional)
447
+ - Route annotations (distance, duration, speed)
448
+ - Multiple geometry output formats (GeoJSON, polyline)
449
+
450
+ **Example Usage**: "Find the optimal route to visit these 5 stops: [list of addresses or coordinates]"
451
+
452
+ **Note**: A V2 API with advanced features (time windows, capacity constraints, multiple vehicles) is available but requires beta access. The V2 implementation is included in the codebase but not registered by default.
453
+
263
454
  # Development
264
455
 
265
456
  ## Inspecting server
@@ -44,23 +44,45 @@ const versionInfo = (0, versionUtils_js_1.getVersionInfo)();
44
44
  // Parse configuration from command-line arguments
45
45
  const config = (0, toolConfig_js_1.parseToolConfigFromArgs)();
46
46
  // Get and filter tools based on configuration
47
- const allTools = (0, toolRegistry_js_1.getAllTools)();
48
- const enabledTools = (0, toolConfig_js_1.filterTools)(allTools, config);
47
+ // Split into categories for capability-aware registration
48
+ const coreTools = (0, toolRegistry_js_1.getCoreTools)();
49
+ const elicitationTools = (0, toolRegistry_js_1.getElicitationTools)();
50
+ const resourceFallbackTools = (0, toolRegistry_js_1.getResourceFallbackTools)();
51
+ const enabledCoreTools = (0, toolConfig_js_1.filterTools)(coreTools, config);
52
+ const enabledElicitationTools = (0, toolConfig_js_1.filterTools)(elicitationTools, config);
53
+ const enabledResourceFallbackTools = (0, toolConfig_js_1.filterTools)(resourceFallbackTools, config);
49
54
  // Get all resources
50
55
  const allResources = (0, resourceRegistry_js_1.getAllResources)();
51
56
  // Create an MCP server
52
57
  const server = new mcp_js_1.McpServer({
53
58
  name: versionInfo.name,
54
- version: versionInfo.version
59
+ version: versionInfo.version,
60
+ icons: [
61
+ {
62
+ src: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjAuMiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9Im5ldyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDgwMCAxODAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDgwMCAxODA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHRpdGxlPk1hcGJveF9Mb2dvXzA4PC90aXRsZT4KPGc+Cgk8Zz4KCQk8cGF0aCBkPSJNNTk0LjYsNDkuOGMtOS45LDAtMTkuNCw0LjEtMjYuMywxMS4zVjIzYzAtMS4yLTEtMi4yLTIuMi0yLjJsMCwwaC0xMy40Yy0xLjIsMC0yLjIsMS0yLjIsMi4ydjEwM2MwLDEuMiwxLDIuMiwyLjIsMi4yCgkJCWgxMy40YzEuMiwwLDIuMi0xLDIuMi0yLjJ2MHYtNy4xYzYuOSw3LjIsMTYuMywxMS4zLDI2LjMsMTEuM2MyMC45LDAsMzcuOC0xOCwzNy44LTQwLjJTNjE1LjUsNDkuOCw1OTQuNiw0OS44eiBNNTkxLjUsMTE0LjEKCQkJYy0xMi43LDAtMjMtMTAuNi0yMy4xLTIzLjh2LTAuNmMwLjItMTMuMiwxMC40LTIzLjgsMjMuMS0yMy44YzEyLjgsMCwyMy4xLDEwLjgsMjMuMSwyNC4xUzYwNC4yLDExNC4xLDU5MS41LDExNC4xTDU5MS41LDExNC4xeiIKCQkJLz4KCQk8cGF0aCBkPSJNNjgxLjcsNDkuOGMtMjIuNiwwLTQwLjksMTgtNDAuOSw0MC4yczE4LjMsNDAuMiw0MC45LDQwLjJjMjIuNiwwLDQwLjktMTgsNDAuOS00MC4yUzcwNC4zLDQ5LjgsNjgxLjcsNDkuOHoKCQkJIE02ODEuNiwxMTQuMWMtMTIuOCwwLTIzLjEtMTAuOC0yMy4xLTI0LjFzMTAuNC0yNC4xLDIzLjEtMjQuMXMyMy4xLDEwLjgsMjMuMSwyNC4xUzY5NC4zLDExNC4xLDY4MS42LDExNC4xTDY4MS42LDExNC4xeiIvPgoJCTxwYXRoIGQ9Ik00MzEuNiw1MS44aC0xMy40Yy0xLjIsMC0yLjIsMS0yLjIsMi4yYzAsMCwwLDAsMCwwdjcuMWMtNi45LTcuMi0xNi4zLTExLjMtMjYuMy0xMS4zYy0yMC45LDAtMzcuOCwxOC0zNy44LDQwLjIKCQkJczE2LjksNDAuMiwzNy44LDQwLjJjOS45LDAsMTkuNC00LjEsMjYuMy0xMS4zdjcuMWMwLDEuMiwxLDIuMiwyLjIsMi4ybDAsMGgxMy40YzEuMiwwLDIuMi0xLDIuMi0yLjJ2MFY1NAoJCQlDNDMzLjgsNTIuOCw0MzIuOCw1MS44LDQzMS42LDUxLjh6IE0zOTIuOCwxMTQuMWMtMTIuOCwwLTIzLjEtMTAuOC0yMy4xLTI0LjFzMTAuNC0yNC4xLDIzLjEtMjQuMWMxMi43LDAsMjMsMTAuNiwyMy4xLDIzLjh2MC42CgkJCUM0MTUuOCwxMDMuNSw0MDUuNSwxMTQuMSwzOTIuOCwxMTQuMUwzOTIuOCwxMTQuMXoiLz4KCQk8cGF0aCBkPSJNNDk4LjUsNDkuOGMtOS45LDAtMTkuNCw0LjEtMjYuMywxMS4zVjU0YzAtMS4yLTEtMi4yLTIuMi0yLjJsMCwwaC0xMy40Yy0xLjIsMC0yLjIsMS0yLjIsMi4yYzAsMCwwLDAsMCwwdjEwMwoJCQljMCwxLjIsMSwyLjIsMi4yLDIuMmwwLDBoMTMuNGMxLjIsMCwyLjItMSwyLjItMi4ydjB2LTM4LjFjNi45LDcuMiwxNi4zLDExLjMsMjYuMywxMS4zYzIwLjksMCwzNy44LTE4LDM3LjgtNDAuMgoJCQlTNTE5LjQsNDkuOCw0OTguNSw0OS44eiBNNDk1LjQsMTE0LjFjLTEyLjcsMC0yMy0xMC42LTIzLjEtMjMuOHYtMC42YzAuMi0xMy4yLDEwLjQtMjMuOCwyMy4xLTIzLjhjMTIuOCwwLDIzLjEsMTAuOCwyMy4xLDI0LjEKCQkJUzUwOC4yLDExNC4xLDQ5NS40LDExNC4xTDQ5NS40LDExNC4xeiIvPgoJCTxwYXRoIGQ9Ik0zMTEuOCw0OS44Yy0xMCwwLjEtMTkuMSw1LjktMjMuNCwxNWMtNC45LTkuMy0xNC43LTE1LjEtMjUuMi0xNWMtOC4yLDAtMTUuOSw0LTIwLjcsMTAuNlY1NGMwLTEuMi0xLTIuMi0yLjItMi4ybDAsMAoJCQloLTEzLjRjLTEuMiwwLTIuMiwxLTIuMiwyLjJjMCwwLDAsMCwwLDB2NzJjMCwxLjIsMSwyLjIsMi4yLDIuMmgwaDEzLjRjMS4yLDAsMi4yLTEsMi4yLTIuMnYwVjgyLjljMC41LTkuNiw3LjItMTcuMywxNS40LTE3LjMKCQkJYzguNSwwLDE1LjYsNy4xLDE1LjYsMTYuNHY0NGMwLDEuMiwxLDIuMiwyLjIsMi4ybDEzLjUsMGMxLjIsMCwyLjItMSwyLjItMi4yYzAsMCwwLDAsMCwwbC0wLjEtNDQuOGMxLjItOC44LDcuNS0xNS42LDE1LjItMTUuNgoJCQljOC41LDAsMTUuNiw3LjEsMTUuNiwxNi40djQ0YzAsMS4yLDEsMi4yLDIuMiwyLjJsMTMuNSwwYzEuMiwwLDIuMi0xLDIuMi0yLjJjMCwwLDAsMCwwLDBsLTAuMS00OS41CgkJCUMzMzkuOSw2MS43LDMyNy4zLDQ5LjgsMzExLjgsNDkuOHoiLz4KCQk8cGF0aCBkPSJNNzk0LjcsMTI1LjFsLTIzLjItMzUuM2wyMy0zNWMwLjYtMC45LDAuMy0yLjItMC42LTIuOGMtMC4zLTAuMi0wLjctMC4zLTEuMS0wLjNoLTE1LjVjLTEuMiwwLTIuMywwLjYtMi45LDEuNkw3NjAuOSw3NgoJCQlsLTEzLjUtMjIuNmMtMC42LTEtMS43LTEuNi0yLjktMS42aC0xNS41Yy0xLjEsMC0yLDAuOS0yLDJjMCwwLjQsMC4xLDAuOCwwLjMsMS4xbDIzLDM1bC0yMy4yLDM1LjNjLTAuNiwwLjktMC4zLDIuMiwwLjYsMi44CgkJCWMwLjMsMC4yLDAuNywwLjMsMS4xLDAuM2gxNS41YzEuMiwwLDIuMy0wLjYsMi45LTEuNmwxMy44LTIzbDEzLjgsMjNjMC42LDEsMS43LDEuNiwyLjksMS42SDc5M2MxLjEsMCwyLTAuOSwyLTIKCQkJQzc5NSwxMjUuOSw3OTQuOSwxMjUuNSw3OTQuNywxMjUuMXoiLz4KCTwvZz4KCTxnPgoJCTxwYXRoIGQ9Ik05My45LDEuMUM0NC44LDEuMSw1LDQwLjksNSw5MHMzOS44LDg4LjksODguOSw4OC45czg4LjktMzkuOCw4OC45LTg4LjlDMTgyLjgsNDAuOSwxNDMsMS4xLDkzLjksMS4xeiBNMTM2LjEsMTExLjgKCQkJYy0zMC40LDMwLjQtODQuNywyMC43LTg0LjcsMjAuN3MtOS44LTU0LjIsMjAuNy04NC43Qzg5LDMwLjksMTE3LDMxLjYsMTM0LjcsNDkuMlMxNTMsOTQuOSwxMzYuMSwxMTEuOEwxMzYuMSwxMTEuOHoiLz4KCQk8cG9seWdvbiBwb2ludHM9IjEwNC4xLDUzLjIgOTUuNCw3MS4xIDc3LjUsNzkuOCA5NS40LDg4LjUgMTA0LjEsMTA2LjQgMTEyLjgsODguNSAxMzAuNyw3OS44IDExMi44LDcxLjEgCQkiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K',
63
+ mimeType: 'image/svg+xml',
64
+ sizes: ['800x180'],
65
+ theme: 'light'
66
+ },
67
+ {
68
+ src: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjAuMiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9Im5ldyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDgwMCAxODAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDgwMCAxODA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KPHRpdGxlPk1hcGJveF9Mb2dvXzA4PC90aXRsZT4KPGc+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTk0LjYsNDkuOGMtOS45LDAtMTkuNCw0LjEtMjYuMywxMS4zVjIzYzAtMS4yLTEtMi4yLTIuMi0yLjJsMCwwaC0xMy40Yy0xLjIsMC0yLjIsMS0yLjIsMi4ydjEwMwoJCQljMCwxLjIsMSwyLjIsMi4yLDIuMmgxMy40YzEuMiwwLDIuMi0xLDIuMi0yLjJ2MHYtNy4xYzYuOSw3LjIsMTYuMywxMS4zLDI2LjMsMTEuM2MyMC45LDAsMzcuOC0xOCwzNy44LTQwLjIKCQkJUzYxNS41LDQ5LjgsNTk0LjYsNDkuOHogTTU5MS41LDExNC4xYy0xMi43LDAtMjMtMTAuNi0yMy4xLTIzLjh2LTAuNmMwLjItMTMuMiwxMC40LTIzLjgsMjMuMS0yMy44YzEyLjgsMCwyMy4xLDEwLjgsMjMuMSwyNC4xCgkJCVM2MDQuMiwxMTQuMSw1OTEuNSwxMTQuMUw1OTEuNSwxMTQuMXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNjgxLjcsNDkuOGMtMjIuNiwwLTQwLjksMTgtNDAuOSw0MC4yczE4LjMsNDAuMiw0MC45LDQwLjJjMjIuNiwwLDQwLjktMTgsNDAuOS00MC4yUzcwNC4zLDQ5LjgsNjgxLjcsNDkuOHoKCQkJIE02ODEuNiwxMTQuMWMtMTIuOCwwLTIzLjEtMTAuOC0yMy4xLTI0LjFzMTAuNC0yNC4xLDIzLjEtMjQuMXMyMy4xLDEwLjgsMjMuMSwyNC4xUzY5NC4zLDExNC4xLDY4MS42LDExNC4xTDY4MS42LDExNC4xeiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MzEuNiw1MS44aC0xMy40Yy0xLjIsMC0yLjIsMS0yLjIsMi4yYzAsMCwwLDAsMCwwdjcuMWMtNi45LTcuMi0xNi4zLTExLjMtMjYuMy0xMS4zCgkJCWMtMjAuOSwwLTM3LjgsMTgtMzcuOCw0MC4yczE2LjksNDAuMiwzNy44LDQwLjJjOS45LDAsMTkuNC00LjEsMjYuMy0xMS4zdjcuMWMwLDEuMiwxLDIuMiwyLjIsMi4ybDAsMGgxMy40YzEuMiwwLDIuMi0xLDIuMi0yLjIKCQkJdjBWNTRDNDMzLjgsNTIuOCw0MzIuOCw1MS44LDQzMS42LDUxLjh6IE0zOTIuOCwxMTQuMWMtMTIuOCwwLTIzLjEtMTAuOC0yMy4xLTI0LjFzMTAuNC0yNC4xLDIzLjEtMjQuMWMxMi43LDAsMjMsMTAuNiwyMy4xLDIzLjgKCQkJdjAuNkM0MTUuOCwxMDMuNSw0MDUuNSwxMTQuMSwzOTIuOCwxMTQuMUwzOTIuOCwxMTQuMXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDk4LjUsNDkuOGMtOS45LDAtMTkuNCw0LjEtMjYuMywxMS4zVjU0YzAtMS4yLTEtMi4yLTIuMi0yLjJsMCwwaC0xMy40Yy0xLjIsMC0yLjIsMS0yLjIsMi4yYzAsMCwwLDAsMCwwCgkJCXYxMDNjMCwxLjIsMSwyLjIsMi4yLDIuMmwwLDBoMTMuNGMxLjIsMCwyLjItMSwyLjItMi4ydjB2LTM4LjFjNi45LDcuMiwxNi4zLDExLjMsMjYuMywxMS4zYzIwLjksMCwzNy44LTE4LDM3LjgtNDAuMgoJCQlTNTE5LjQsNDkuOCw0OTguNSw0OS44eiBNNDk1LjQsMTE0LjFjLTEyLjcsMC0yMy0xMC42LTIzLjEtMjMuOHYtMC42YzAuMi0xMy4yLDEwLjQtMjMuOCwyMy4xLTIzLjhjMTIuOCwwLDIzLjEsMTAuOCwyMy4xLDI0LjEKCQkJUzUwOC4yLDExNC4xLDQ5NS40LDExNC4xTDQ5NS40LDExNC4xeiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zMTEuOCw0OS44Yy0xMCwwLjEtMTkuMSw1LjktMjMuNCwxNWMtNC45LTkuMy0xNC43LTE1LjEtMjUuMi0xNWMtOC4yLDAtMTUuOSw0LTIwLjcsMTAuNlY1NAoJCQljMC0xLjItMS0yLjItMi4yLTIuMmwwLDBoLTEzLjRjLTEuMiwwLTIuMiwxLTIuMiwyLjJjMCwwLDAsMCwwLDB2NzJjMCwxLjIsMSwyLjIsMi4yLDIuMmgwaDEzLjRjMS4yLDAsMi4yLTEsMi4yLTIuMnYwVjgyLjkKCQkJYzAuNS05LjYsNy4yLTE3LjMsMTUuNC0xNy4zYzguNSwwLDE1LjYsNy4xLDE1LjYsMTYuNHY0NGMwLDEuMiwxLDIuMiwyLjIsMi4ybDEzLjUsMGMxLjIsMCwyLjItMSwyLjItMi4yYzAsMCwwLDAsMCwwbC0wLjEtNDQuOAoJCQljMS4yLTguOCw3LjUtMTUuNiwxNS4yLTE1LjZjOC41LDAsMTUuNiw3LjEsMTUuNiwxNi40djQ0YzAsMS4yLDEsMi4yLDIuMiwyLjJsMTMuNSwwYzEuMiwwLDIuMi0xLDIuMi0yLjJjMCwwLDAsMCwwLDBsLTAuMS00OS41CgkJCUMzMzkuOSw2MS43LDMyNy4zLDQ5LjgsMzExLjgsNDkuOHoiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzk0LjcsMTI1LjFsLTIzLjItMzUuM2wyMy0zNWMwLjYtMC45LDAuMy0yLjItMC42LTIuOGMtMC4zLTAuMi0wLjctMC4zLTEuMS0wLjNoLTE1LjUKCQkJYy0xLjIsMC0yLjMsMC42LTIuOSwxLjZMNzYwLjksNzZsLTEzLjUtMjIuNmMtMC42LTEtMS43LTEuNi0yLjktMS42aC0xNS41Yy0xLjEsMC0yLDAuOS0yLDJjMCwwLjQsMC4xLDAuOCwwLjMsMS4xbDIzLDM1CgkJCWwtMjMuMiwzNS4zYy0wLjYsMC45LTAuMywyLjIsMC42LDIuOGMwLjMsMC4yLDAuNywwLjMsMS4xLDAuM2gxNS41YzEuMiwwLDIuMy0wLjYsMi45LTEuNmwxMy44LTIzbDEzLjgsMjNjMC42LDEsMS43LDEuNiwyLjksMS42CgkJCUg3OTNjMS4xLDAsMi0wLjksMi0yQzc5NSwxMjUuOSw3OTQuOSwxMjUuNSw3OTQuNywxMjUuMXoiLz4KCTwvZz4KCTxnPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik05My45LDEuMUM0NC44LDEuMSw1LDQwLjksNSw5MHMzOS44LDg4LjksODguOSw4OC45czg4LjktMzkuOCw4OC45LTg4LjlDMTgyLjgsNDAuOSwxNDMsMS4xLDkzLjksMS4xegoJCQkgTTEzNi4xLDExMS44Yy0zMC40LDMwLjQtODQuNywyMC43LTg0LjcsMjAuN3MtOS44LTU0LjIsMjAuNy04NC43Qzg5LDMwLjksMTE3LDMxLjYsMTM0LjcsNDkuMlMxNTMsOTQuOSwxMzYuMSwxMTEuOEwxMzYuMSwxMTEuOAoJCQl6Ii8+CgkJPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIxMDQuMSw1My4yIDk1LjQsNzEuMSA3Ny41LDc5LjggOTUuNCw4OC41IDEwNC4xLDEwNi40IDExMi44LDg4LjUgMTMwLjcsNzkuOCAxMTIuOCw3MS4xIAkJIi8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==',
69
+ mimeType: 'image/svg+xml',
70
+ sizes: ['800x180'],
71
+ theme: 'dark'
72
+ }
73
+ ]
55
74
  }, {
56
75
  capabilities: {
57
- tools: {},
76
+ tools: {
77
+ listChanged: true // Advertise support for dynamic tool registration (ready for future capability-dependent tools)
78
+ },
58
79
  resources: {},
59
80
  prompts: {}
60
81
  }
61
82
  });
62
- // Register enabled tools to the server
63
- enabledTools.forEach((tool) => {
83
+ // Register only core tools before connection
84
+ // Capability-dependent tools will be registered dynamically after connection
85
+ enabledCoreTools.forEach((tool) => {
64
86
  tool.installTo(server);
65
87
  });
66
88
  // Register all resources to the server
@@ -190,6 +212,72 @@ async function main() {
190
212
  // Start receiving messages on stdin and sending messages on stdout
191
213
  const transport = new stdio_js_1.StdioServerTransport();
192
214
  await server.connect(transport);
215
+ // After connection, dynamically register capability-dependent tools
216
+ const clientCapabilities = server.server.getClientCapabilities();
217
+ // Debug: Log what capabilities we detected
218
+ server.server.sendLoggingMessage({
219
+ level: 'info',
220
+ data: `Client capabilities detected: ${JSON.stringify(clientCapabilities, null, 2)}`
221
+ });
222
+ let toolsAdded = false;
223
+ // Register elicitation tools if client supports elicitation
224
+ if (clientCapabilities?.elicitation && enabledElicitationTools.length > 0) {
225
+ server.server.sendLoggingMessage({
226
+ level: 'info',
227
+ data: `Client supports elicitation. Registering ${enabledElicitationTools.length} elicitation-dependent tools`
228
+ });
229
+ enabledElicitationTools.forEach((tool) => {
230
+ tool.installTo(server);
231
+ });
232
+ toolsAdded = true;
233
+ }
234
+ else if (enabledElicitationTools.length > 0) {
235
+ server.server.sendLoggingMessage({
236
+ level: 'debug',
237
+ data: `Client does not support elicitation. Skipping ${enabledElicitationTools.length} elicitation-dependent tools`
238
+ });
239
+ }
240
+ // Register resource fallback tools for clients that don't support resources
241
+ // Note: Resources are a core MCP feature supported by most clients.
242
+ // However, some clients (like smolagents) don't support resources at all.
243
+ // These fallback tools provide the same content as resources but via tool calls instead.
244
+ //
245
+ // Configuration via CLIENT_NEEDS_RESOURCE_FALLBACK environment variable:
246
+ // - unset (default) = Skip fallback tools (assume client supports resources)
247
+ // - "true" = Provide fallback tools (client does NOT support resources)
248
+ const clientNeedsResourceFallback = process.env.CLIENT_NEEDS_RESOURCE_FALLBACK?.toLowerCase() === 'true';
249
+ if (clientNeedsResourceFallback && enabledResourceFallbackTools.length > 0) {
250
+ server.server.sendLoggingMessage({
251
+ level: 'info',
252
+ data: `CLIENT_NEEDS_RESOURCE_FALLBACK=true. Registering ${enabledResourceFallbackTools.length} resource fallback tools`
253
+ });
254
+ enabledResourceFallbackTools.forEach((tool) => {
255
+ tool.installTo(server);
256
+ });
257
+ toolsAdded = true;
258
+ }
259
+ else if (enabledResourceFallbackTools.length > 0) {
260
+ server.server.sendLoggingMessage({
261
+ level: 'debug',
262
+ data: `CLIENT_NEEDS_RESOURCE_FALLBACK not set or false. Skipping ${enabledResourceFallbackTools.length} resource fallback tools (client supports resources)`
263
+ });
264
+ }
265
+ // Notify client about tool list changes if any tools were added
266
+ if (toolsAdded) {
267
+ try {
268
+ server.sendToolListChanged();
269
+ server.server.sendLoggingMessage({
270
+ level: 'debug',
271
+ data: 'Sent notifications/tools/list_changed to client'
272
+ });
273
+ }
274
+ catch (error) {
275
+ server.server.sendLoggingMessage({
276
+ level: 'warning',
277
+ data: `Failed to send tool list change notification: ${error instanceof Error ? error.message : String(error)}`
278
+ });
279
+ }
280
+ }
193
281
  }
194
282
  // Ensure cleanup interval is cleared when the process exits
195
283
  async function shutdown() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { BasePrompt } from './BasePrompt.js';
2
+ import type { PromptArgument, PromptMessage } from '@modelcontextprotocol/sdk/types.js';
3
+ /**
4
+ * Prompt for finding places along a route between two locations.
5
+ *
6
+ * This prompt guides the agent through:
7
+ * 1. Geocoding start and end locations (if needed)
8
+ * 2. Getting the route geometry
9
+ * 3. Creating a buffer corridor around the route
10
+ * 4. Searching for places within that corridor
11
+ * 5. Filtering and ordering results by distance from route
12
+ * 6. Visualizing on a map
13
+ *
14
+ * Example queries:
15
+ * - "I want to go from Seattle to Portland, is there a Starbucks along the way?"
16
+ * - "Find gas stations along my route from LA to San Francisco"
17
+ * - "Show me rest stops between Denver and Salt Lake City"
18
+ * - "What restaurants are along the drive from Boston to NYC?"
19
+ */
20
+ export declare class SearchAlongRoutePrompt extends BasePrompt {
21
+ readonly name = "search-along-route";
22
+ readonly description = "Finds specific types of places along a route between two locations, using buffer analysis and POI search";
23
+ readonly arguments: PromptArgument[];
24
+ getMessages(args: Record<string, string>): PromptMessage[];
25
+ }
26
+ //# sourceMappingURL=SearchAlongRoutePrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchAlongRoutePrompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/SearchAlongRoutePrompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;IACpD,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,WAAW,8GACyF;IAE7G,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CA6BlC;IAEF,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE;CAkH3D"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ // Copyright (c) Mapbox, Inc.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.SearchAlongRoutePrompt = void 0;
6
+ const BasePrompt_js_1 = require("./BasePrompt.js");
7
+ /**
8
+ * Prompt for finding places along a route between two locations.
9
+ *
10
+ * This prompt guides the agent through:
11
+ * 1. Geocoding start and end locations (if needed)
12
+ * 2. Getting the route geometry
13
+ * 3. Creating a buffer corridor around the route
14
+ * 4. Searching for places within that corridor
15
+ * 5. Filtering and ordering results by distance from route
16
+ * 6. Visualizing on a map
17
+ *
18
+ * Example queries:
19
+ * - "I want to go from Seattle to Portland, is there a Starbucks along the way?"
20
+ * - "Find gas stations along my route from LA to San Francisco"
21
+ * - "Show me rest stops between Denver and Salt Lake City"
22
+ * - "What restaurants are along the drive from Boston to NYC?"
23
+ */
24
+ class SearchAlongRoutePrompt extends BasePrompt_js_1.BasePrompt {
25
+ name = 'search-along-route';
26
+ description = 'Finds specific types of places along a route between two locations, using buffer analysis and POI search';
27
+ arguments = [
28
+ {
29
+ name: 'from',
30
+ description: 'Starting location (address, place name, or coordinates)',
31
+ required: true
32
+ },
33
+ {
34
+ name: 'to',
35
+ description: 'Destination location (address, place name, or coordinates)',
36
+ required: true
37
+ },
38
+ {
39
+ name: 'search_for',
40
+ description: 'Type of place to search for (e.g., "Starbucks", "gas stations", "rest stops", "restaurants")',
41
+ required: true
42
+ },
43
+ {
44
+ name: 'mode',
45
+ description: 'Travel mode: driving, walking, or cycling (default: driving)',
46
+ required: false
47
+ },
48
+ {
49
+ name: 'buffer_meters',
50
+ description: 'Search corridor width on each side of route in meters (default: 1000)',
51
+ required: false
52
+ }
53
+ ];
54
+ getMessages(args) {
55
+ this.validateArguments(args);
56
+ const { from, to, search_for, mode = 'driving'
57
+ // buffer_meters parameter is kept for API compatibility but not used
58
+ // in the simplified proximity-sampling approach
59
+ } = args;
60
+ return [
61
+ {
62
+ role: 'user',
63
+ content: {
64
+ type: 'text',
65
+ text: `Find ${search_for} along the ${mode} route from ${from} to ${to}.
66
+
67
+ Please follow these steps:
68
+
69
+ 1. **Geocode locations** (if needed):
70
+ - Use search_and_geocode_tool to convert ${from} and ${to} to coordinates if they're not already in coordinate format
71
+
72
+ 2. **Get the route**:
73
+ - Use directions_tool with profile=${mode} to get the route geometry between the two points
74
+ - Extract the route LineString coordinates from the response (it will be an array of [lon, lat] pairs)
75
+ - Note the total route distance
76
+
77
+ 3. **Search along the route using point sampling** (works for all route lengths):
78
+
79
+ **Determine sample strategy based on route length:**
80
+ - SHORT routes (< 50km): Sample every 5-10 points along the route (more samples for better coverage)
81
+ - MEDIUM routes (50-150km): Sample every 15-20 points along the route
82
+ - VERY LONG routes (> 150km): Sample 5-7 evenly spaced points (start, end, and middle points)
83
+
84
+ **For each sample point:**
85
+ - Extract the coordinate [lon, lat] from the route
86
+ - Choose the appropriate search tool:
87
+ * If "${search_for}" is a specific place/brand (e.g., "Starbucks", "McDonald's", "Whole Foods"):
88
+ Use search_and_geocode_tool with proximity="lon,lat" and q="${search_for}"
89
+ * If "${search_for}" is a category (e.g., "coffee shops", "gas stations", "restaurants"):
90
+ Use category_search_tool with types="${search_for}" and proximity="lon,lat"
91
+ - Limit results per point (10-20 for short routes, 5-10 for long routes)
92
+
93
+ **IMPORTANT - Execute searches in parallel:**
94
+ - All sample point searches are INDEPENDENT and can run concurrently
95
+ - Make ALL search tool calls in a single message (parallel execution)
96
+ - Example: If you have 5 sample points, make 5 search_and_geocode_tool calls in one turn
97
+ - This dramatically speeds up the workflow vs sequential searches
98
+
99
+ **Combine and deduplicate:**
100
+ - Collect all results from sample points
101
+ - Remove duplicates (same place found from multiple sample points)
102
+ - Calculate distances from start point using distance_tool:
103
+ * These calculations are INDEPENDENT and can run in parallel
104
+ * Make ALL distance_tool calls in a single message for all results
105
+ * Example: If you have 10 unique results, make 10 distance_tool calls in one turn
106
+ - Order results by distance from start (approximate route progress)
107
+
108
+ **Why this approach works:**
109
+ - Simple and reliable - just directions + proximity searches
110
+ - No buffer/bbox/polygon complexity
111
+ - Works consistently for all route lengths
112
+ - Fast execution, no token issues
113
+ - Covers the route corridor naturally through proximity searches
114
+
115
+ 4. **Present results**:
116
+ - Results are already ordered by distance from start
117
+ - Limit to top 15 results if many were found
118
+ - Note: Results are biased to the route corridor through proximity searches at sample points
119
+
120
+ 5. **Present results**:
121
+
122
+ **Skip map generation by default** (static_map_image_tool encoding is slow):
123
+ - Note to user: "Map visualization can be generated separately if needed"
124
+ - The client (Claude Desktop, etc.) may have its own map display capabilities
125
+ - Focus on providing excellent text results instead
126
+
127
+ **Results list (always provide):**
128
+ - Summary: "Found X results along the route from ${from} to ${to}"
129
+ - Route details: Total distance and estimated travel time
130
+ - For each result:
131
+ * Name and address
132
+ * Approximate distance from start (e.g., "45 miles into your trip")
133
+ * Coordinates (so user could map them separately if desired)
134
+ - Total results found
135
+ - Note which sampling strategy was used
136
+
137
+ **If user explicitly asks for a map:**
138
+ - Only then use static_map_image_tool with route and top 8-10 results
139
+ - Warn that encoding may take time for longer routes
140
+
141
+ 6. **Additional context**:
142
+ - Mention the total route distance and estimated travel time
143
+ - Note which sampling strategy was used:
144
+ * Short route: "Searched every 5-10 points along the route for comprehensive coverage"
145
+ * Medium route: "Sampled key points along the route"
146
+ * Very long route: "Sampled major points along the route"
147
+ - If no results were found, suggest trying a different search term or checking a specific segment
148
+ - If many results (>15), show top 15 and mention there are more
149
+
150
+ **Important notes:**
151
+ - This approach uses simple proximity searches at sampled route points
152
+ - No buffer/bbox/polygon operations needed - much more reliable
153
+ - Works consistently for all route lengths
154
+ - Fast and avoids token/timeout issues
155
+ - Results naturally cover the route corridor through proximity biasing
156
+
157
+ Make the output clear, actionable, and well-formatted.`
158
+ }
159
+ }
160
+ ];
161
+ }
162
+ }
163
+ exports.SearchAlongRoutePrompt = SearchAlongRoutePrompt;
164
+ //# sourceMappingURL=SearchAlongRoutePrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchAlongRoutePrompt.js","sourceRoot":"","sources":["../../../src/prompts/SearchAlongRoutePrompt.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,mDAA6C;AAM7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,sBAAuB,SAAQ,0BAAU;IAC3C,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAClB,0GAA0G,CAAC;IAEpG,SAAS,GAAqB;QACrC;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EACT,8FAA8F;YAChG,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EACT,uEAAuE;YACzE,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;IAEF,WAAW,CAAC,IAA4B;QACtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,EACJ,IAAI,EACJ,EAAE,EACF,UAAU,EACV,IAAI,GAAG,SAAS;QAChB,qEAAqE;QACrE,gDAAgD;UACjD,GAAG,IAAI,CAAC;QAET,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ,UAAU,cAAc,IAAI,eAAe,IAAI,OAAO,EAAE;;;;;8CAKlC,IAAI,QAAQ,EAAE;;;wCAGpB,IAAI;;;;;;;;;;;;;;aAc/B,UAAU;qEAC8C,UAAU;aAClE,UAAU;8CACuB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAsCF,IAAI,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDA6BZ;iBAC9C;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAtJD,wDAsJC"}
@@ -1,5 +1,6 @@
1
1
  import { FindPlacesNearbyPrompt } from './FindPlacesNearbyPrompt.js';
2
2
  import { GetDirectionsPrompt } from './GetDirectionsPrompt.js';
3
+ import { SearchAlongRoutePrompt } from './SearchAlongRoutePrompt.js';
3
4
  import { ShowReachableAreasPrompt } from './ShowReachableAreasPrompt.js';
4
5
  /**
5
6
  * Central registry of all available prompts.
@@ -7,7 +8,7 @@ import { ShowReachableAreasPrompt } from './ShowReachableAreasPrompt.js';
7
8
  * This module maintains a readonly collection of prompt instances and provides
8
9
  * type-safe access methods.
9
10
  */
10
- declare const ALL_PROMPTS: readonly [FindPlacesNearbyPrompt, GetDirectionsPrompt, ShowReachableAreasPrompt];
11
+ declare const ALL_PROMPTS: readonly [FindPlacesNearbyPrompt, GetDirectionsPrompt, SearchAlongRoutePrompt, ShowReachableAreasPrompt];
11
12
  /**
12
13
  * Type representing any prompt instance
13
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"promptRegistry.d.ts","sourceRoot":"","sources":["../../../src/prompts/promptRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;;;;GAKG;AAGH,QAAA,MAAM,WAAW,kFAIP,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,SAAS,cAAc,EAAE,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAExE"}
1
+ {"version":3,"file":"promptRegistry.d.ts","sourceRoot":"","sources":["../../../src/prompts/promptRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;;;;GAKG;AAGH,QAAA,MAAM,WAAW,0GAKP,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,SAAS,cAAc,EAAE,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAExE"}