@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
package/README.md CHANGED
@@ -44,6 +44,7 @@ For more information about Mapbox access tokens, see the [Mapbox documentation o
44
44
  For detailed setup instructions for different integrations, refer to the following guides:
45
45
 
46
46
  - [Claude Desktop Setup](./docs/claude-desktop-setup.md) - Instructions for configuring Claude Desktop to work with this MCP server
47
+ - [Goose Setup](./docs/goose-setup.md) - Setting up Goose AI agent framework with MCP-UI support
47
48
  - [VS Code Setup](./docs/vscode-setup.md) - Setting up a development environment in Visual Studio Code
48
49
  - [Cursor AI IDE Setup](./docs/cursor-setup.md) - Setting up a development environment in Cursor AI IDE
49
50
  - [Smolagents Integration](./docs/using-mcp-with-smolagents/README.md) - Example showing how to connect Smolagents AI agents to Mapbox's tools
@@ -83,11 +84,109 @@ Try these prompts with Claude Desktop or other MCP clients after setup:
83
84
  - Include time constraints when relevant ("during rush hour", "at 3 PM")
84
85
  - Ask for specific output formats when needed ("as a map image", "in JSON format")
85
86
 
87
+ ## Resources
88
+
89
+ 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.
90
+
91
+ ### Available Resources
92
+
93
+ #### Mapbox Categories Resource
94
+
95
+ **URI Pattern**: `mapbox://categories` or `mapbox://categories/{language}`
96
+
97
+ Access the complete list of available category IDs for use with the category search tool. Categories can be used to filter search results by type (e.g., "restaurant", "hotel", "gas_station").
98
+
99
+ **Examples**:
100
+
101
+ - `mapbox://categories` - Default (English) category list
102
+ - `mapbox://categories/ja` - Japanese category names
103
+ - `mapbox://categories/es` - Spanish category names
104
+
105
+ **Accessing Resources**:
106
+
107
+ - **Clients with native MCP resource support**: Use the `resources/read` MCP protocol method
108
+ - **Clients without resource support**: Use the `resource_reader_tool` with the resource URI
109
+
110
+ ## MCP-UI Support
111
+
112
+ This MCP server supports **MCP-UI**, an open specification that allows compatible clients to render interactive UI elements like embedded iframes. This provides a richer visual experience while maintaining full backwards compatibility with clients that don't support MCP-UI.
113
+
114
+ ### What is MCP-UI?
115
+
116
+ MCP-UI enables tools to return interactive UI resources alongside their standard output. Compatible clients can render these as embedded iframes, while clients without MCP-UI support simply ignore them and use the standard output.
117
+
118
+ ### Supported Tools
119
+
120
+ - **Static Map Image Tool**: Returns both image data and an embeddable iframe URL for inline map visualization
121
+
122
+ ### Benefits
123
+
124
+ - **Enhanced Experience**: Compatible clients (e.g., Goose) can display maps inline without leaving the chat
125
+ - **Backwards Compatible**: Non-supporting clients (e.g., Claude Desktop) continue working unchanged
126
+ - **No Configuration Required**: MCP-UI is enabled by default
127
+
128
+ ### Configuration
129
+
130
+ MCP-UI is **enabled by default**. To disable it:
131
+
132
+ **Via Environment Variable:**
133
+
134
+ ```bash
135
+ ENABLE_MCP_UI=false npm run build
136
+ ```
137
+
138
+ **Via Command-Line Flag:**
139
+
140
+ ```bash
141
+ node dist/esm/index.js --disable-mcp-ui
142
+ ```
143
+
144
+ **In Claude Desktop config:**
145
+
146
+ ```json
147
+ {
148
+ "mcpServers": {
149
+ "mapbox": {
150
+ "command": "npx",
151
+ "args": ["-y", "@mapbox/mcp-server", "--disable-mcp-ui"],
152
+ "env": {
153
+ "MAPBOX_ACCESS_TOKEN": "your_token_here"
154
+ }
155
+ }
156
+ }
157
+ }
158
+ ```
159
+
160
+ **For more detailed information**, including compatible clients, technical implementation details, and troubleshooting, see the [MCP-UI documentation](./docs/mcp-ui.md).
161
+
86
162
  ## Tools
87
163
 
88
- ### Mapbox API tools
164
+ ### Utility Tools
165
+
166
+ #### Resource Reader Tool
167
+
168
+ Provides access to MCP resources for clients that don't support the native MCP resource API. Use this tool to read resources like the category list.
169
+
170
+ **Parameters**:
89
171
 
90
- #### Matrix tool
172
+ - `uri`: The resource URI to read (e.g., `mapbox://categories`, `mapbox://categories/ja`)
173
+
174
+ **Example Usage**:
175
+
176
+ - Read default categories: `{"uri": "mapbox://categories"}`
177
+ - Read Japanese categories: `{"uri": "mapbox://categories/ja"}`
178
+
179
+ **Note**: If your MCP client supports native resources, prefer using the resource API directly for better performance.
180
+
181
+ ### Mapbox API Tools
182
+
183
+ #### Category List Tool (Deprecated)
184
+
185
+ **⚠️ Deprecated**: Use the `resource_reader_tool` with URI `mapbox://categories` instead, or access the `mapbox://categories` resource directly if your client supports MCP resources.
186
+
187
+ This tool is maintained for backward compatibility with clients that don't support MCP resources or the resource_reader_tool.
188
+
189
+ #### Matrix Tool
91
190
 
92
191
  Calculates travel times and distances between multiple points using [Mapbox Matrix API](https://www.mapbox.com/matrix-api). Features include:
93
192
 
@@ -168,11 +267,8 @@ This tool consolidates the functionality that was previously provided by the For
168
267
  ### Using Node.js
169
268
 
170
269
  ```sh
171
- # Build
172
- npm run build
173
-
174
- # Inspect
175
- npx @modelcontextprotocol/inspector node dist/esm/index.js
270
+ # Run the built image
271
+ npm run inspect:build
176
272
  ```
177
273
 
178
274
  ### Using Docker
@@ -192,23 +288,87 @@ npx plop create-tool
192
288
  # provide tool name without suffix (e.g. Search)
193
289
  ```
194
290
 
291
+ ## OpenTelemetry Tracing
292
+
293
+ This MCP server includes comprehensive OpenTelemetry tracing for production observability:
294
+
295
+ ### Quick Demo
296
+
297
+ ```sh
298
+ # 1. Copy the example configuration
299
+ cp .env.example .env
300
+
301
+ # 2. Edit .env to add your MAPBOX_ACCESS_TOKEN and configure tracing
302
+
303
+ # 3. Start Jaeger for local development
304
+ npm run tracing:jaeger:start
305
+
306
+ # 4. Run the server (it will automatically use .env configuration)
307
+ npm run inspect:build
308
+
309
+ # 5. View traces at http://localhost:16686
310
+
311
+ # 6. Stop Jaeger when done
312
+ npm run tracing:jaeger:stop
313
+ ```
314
+
315
+ **Note:** The server automatically loads configuration from your `.env` file at startup. The `.env.example` file includes configuration examples for multiple observability platforms.
316
+
317
+ ### Supported Observability Platforms
318
+
319
+ Configuration examples included in `.env.example` for:
320
+
321
+ **Cloud Providers:**
322
+
323
+ - ☁️ AWS X-Ray
324
+ - ☁️ Azure Monitor (Application Insights)
325
+ - ☁️ Google Cloud Trace
326
+
327
+ **SaaS Platforms:**
328
+
329
+ - 📊 Datadog
330
+ - 📊 New Relic
331
+ - 📊 Honeycomb
332
+ - 📊 Any OTLP-compatible backend
333
+
334
+ ### Production Configuration
335
+
336
+ See [docs/tracing.md](./docs/tracing.md) for complete setup instructions including:
337
+
338
+ - 🔧 Platform-specific configuration guides
339
+ - 📊 Authentication and endpoint setup
340
+ - 🎯 Custom trace attributes and context
341
+ - 🚀 Performance optimization (minimal overhead)
342
+ - 🔍 Troubleshooting and debugging
343
+
344
+ **Tracing Features:**
345
+
346
+ - ✅ Configuration loading tracing (.env file loading)
347
+ - ✅ Automatic tool execution tracing
348
+ - ✅ HTTP request instrumentation with CloudFront correlation IDs
349
+ - ✅ Configurable exporters (console, OTLP)
350
+ - ✅ Security-conscious (data protection, JWT validation)
351
+ - ✅ Production-ready (<1% CPU overhead)
352
+
195
353
  ## Contributing
196
354
 
197
355
  We welcome contributions to the Mapbox MCP Server! Please review our standards and guidelines before contributing:
198
356
 
199
- - **[Engineering Standards (CLAUDE.md)](./CLAUDE.md)** - Code quality, testing, documentation, and collaboration standards for all contributors
200
- - **[AI Agent Instructions (AGENTS.md)](./AGENTS.md)** - Comprehensive guide for AI agents working with this codebase
357
+ - **[Engineering Standards (docs/engineering_standards.md)](./docs/engineering_standards.md)** - Complete code quality, testing, documentation, and collaboration standards for all contributors
358
+ - **[Claude Code Guide (CLAUDE.md)](./CLAUDE.md)** - Standards and patterns for contributors using Claude Code
359
+ - **[AI Agent Instructions (AGENTS.md)](./AGENTS.md)** - Guide for general AI coding assistants (Cursor, Continue, Aider, etc.)
201
360
  - **[GitHub Copilot Guidelines](./.github/copilot-instructions.md)** - Best practices for using GitHub Copilot responsibly in this project
202
361
 
203
362
  ### Quick Start for Contributors
204
363
 
205
364
  1. Fork the repository and clone your fork
206
- 2. Follow the development setup in our [Engineering Standards](./CLAUDE.md#getting-started)
365
+ 2. Install dependencies: `npm install`
207
366
  3. Make your changes following our coding standards
208
- 4. Add tests for any new functionality
209
- 5. Submit a pull request with a clear description
367
+ 4. Run tests and linting: `npm test && npm run lint`
368
+ 5. Add tests for any new functionality
369
+ 6. Submit a pull request with a clear description
210
370
 
211
- All contributions must pass our CI checks and code review process. See [CLAUDE.md](./CLAUDE.md) for detailed requirements.
371
+ All contributions must pass our CI checks and code review process. See [docs/engineering_standards.md](./docs/engineering_standards.md) for detailed requirements.
212
372
 
213
373
  ## Data Usage & Privacy
214
374
 
@@ -2,7 +2,17 @@ import type { ToolInstance } from '../tools/toolRegistry.js';
2
2
  export interface ToolConfig {
3
3
  enabledTools?: string[];
4
4
  disabledTools?: string[];
5
+ enableMcpUi?: boolean;
5
6
  }
6
7
  export declare function parseToolConfigFromArgs(): ToolConfig;
7
8
  export declare function filterTools(tools: readonly ToolInstance[], config: ToolConfig): ToolInstance[];
9
+ /**
10
+ * Check if MCP-UI support is enabled.
11
+ * MCP-UI is enabled by default and can be explicitly disabled via:
12
+ * - Environment variable: ENABLE_MCP_UI=false
13
+ * - Command-line flag: --disable-mcp-ui
14
+ *
15
+ * @returns true if MCP-UI is enabled (default), false if explicitly disabled
16
+ */
17
+ export declare function isMcpUiEnabled(): boolean;
8
18
  //# sourceMappingURL=toolConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolConfig.d.ts","sourceRoot":"","sources":["../../../src/config/toolConfig.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,IAAI,UAAU,CAqBpD;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,MAAM,EAAE,UAAU,GACjB,YAAY,EAAE,CAqBhB"}
1
+ {"version":3,"file":"toolConfig.d.ts","sourceRoot":"","sources":["../../../src/config/toolConfig.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,uBAAuB,IAAI,UAAU,CAoCpD;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,MAAM,EAAE,UAAU,GACjB,YAAY,EAAE,CAqBhB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAcxC"}
@@ -4,9 +4,14 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.parseToolConfigFromArgs = parseToolConfigFromArgs;
6
6
  exports.filterTools = filterTools;
7
+ exports.isMcpUiEnabled = isMcpUiEnabled;
7
8
  function parseToolConfigFromArgs() {
8
9
  const args = process.argv.slice(2);
9
10
  const config = {};
11
+ // Check environment variable first (takes precedence)
12
+ if (process.env.ENABLE_MCP_UI !== undefined) {
13
+ config.enableMcpUi = process.env.ENABLE_MCP_UI === 'true';
14
+ }
10
15
  for (let i = 0; i < args.length; i++) {
11
16
  const arg = args[i];
12
17
  if (arg === '--enable-tools') {
@@ -21,6 +26,16 @@ function parseToolConfigFromArgs() {
21
26
  config.disabledTools = value.split(',').map((t) => t.trim());
22
27
  }
23
28
  }
29
+ else if (arg === '--disable-mcp-ui') {
30
+ // Command-line flag can disable it if env var not set
31
+ if (config.enableMcpUi === undefined) {
32
+ config.enableMcpUi = false;
33
+ }
34
+ }
35
+ }
36
+ // Default to true if not set (enabled by default)
37
+ if (config.enableMcpUi === undefined) {
38
+ config.enableMcpUi = true;
24
39
  }
25
40
  return config;
26
41
  }
@@ -39,4 +54,25 @@ function filterTools(tools, config) {
39
54
  }
40
55
  return filteredTools;
41
56
  }
57
+ /**
58
+ * Check if MCP-UI support is enabled.
59
+ * MCP-UI is enabled by default and can be explicitly disabled via:
60
+ * - Environment variable: ENABLE_MCP_UI=false
61
+ * - Command-line flag: --disable-mcp-ui
62
+ *
63
+ * @returns true if MCP-UI is enabled (default), false if explicitly disabled
64
+ */
65
+ function isMcpUiEnabled() {
66
+ // Check environment variable first (takes precedence)
67
+ if (process.env.ENABLE_MCP_UI === 'false') {
68
+ return false;
69
+ }
70
+ // Check command-line arguments
71
+ const args = process.argv.slice(2);
72
+ if (args.includes('--disable-mcp-ui')) {
73
+ return false;
74
+ }
75
+ // Default to enabled
76
+ return true;
77
+ }
42
78
  //# sourceMappingURL=toolConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolConfig.js","sourceRoot":"","sources":["../../../src/config/toolConfig.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;AASlC,0DAqBC;AAED,kCAwBC;AA/CD,SAAgB,uBAAuB;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAe,EAAE,CAAC;IAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,WAAW,CACzB,KAA8B,EAC9B,MAAkB;IAElB,IAAI,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAE/B,mEAAmE;IACnE,2CAA2C;IAC3C,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5C,MAAM,CAAC,YAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;QACF,mDAAmD;QACnD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,mEAAmE;IACnE,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,aAAa,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"toolConfig.js","sourceRoot":"","sources":["../../../src/config/toolConfig.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import 'dotenv/config';
1
+ export {};
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
@@ -3,38 +3,234 @@
3
3
  // Copyright (c) Mapbox, Inc.
4
4
  // Licensed under the MIT License.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ // Load environment variables from .env file if present
7
+ // Use Node.js built-in util.parseEnv() and manually apply to override existing vars
8
+ const node_util_1 = require("node:util");
9
+ const node_fs_1 = require("node:fs");
10
+ const node_path_1 = require("node:path");
11
+ const node_fs_2 = require("node:fs");
12
+ const api_1 = require("@opentelemetry/api");
6
13
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
7
14
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
15
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
8
16
  const toolConfig_js_1 = require("./config/toolConfig.js");
9
17
  const toolRegistry_js_1 = require("./tools/toolRegistry.js");
18
+ const resourceRegistry_js_1 = require("./resources/resourceRegistry.js");
19
+ const promptRegistry_js_1 = require("./prompts/promptRegistry.js");
10
20
  const versionUtils_js_1 = require("./utils/versionUtils.js");
11
- require("dotenv/config");
21
+ const tracing_js_1 = require("./utils/tracing.js");
22
+ // Load .env from current working directory (where npm run is executed)
23
+ // This happens before tracing is initialized, but we'll add a span when tracing is ready
24
+ const envPath = (0, node_path_1.join)(process.cwd(), '.env');
25
+ let envLoadError = null;
26
+ let envLoadedCount = 0;
27
+ if ((0, node_fs_2.existsSync)(envPath)) {
28
+ try {
29
+ // Read and parse .env file using Node.js built-in parseEnv
30
+ const envFile = (0, node_fs_1.readFileSync)(envPath, 'utf-8');
31
+ const parsed = (0, node_util_1.parseEnv)(envFile);
32
+ // Apply parsed values to process.env (with override)
33
+ // Note: process.loadEnvFile() doesn't override, so we use parseEnv + manual assignment
34
+ for (const [key, value] of Object.entries(parsed)) {
35
+ process.env[key] = value;
36
+ envLoadedCount++;
37
+ }
38
+ }
39
+ catch (error) {
40
+ envLoadError = error instanceof Error ? error : new Error(String(error));
41
+ }
42
+ }
12
43
  const versionInfo = (0, versionUtils_js_1.getVersionInfo)();
13
44
  // Parse configuration from command-line arguments
14
45
  const config = (0, toolConfig_js_1.parseToolConfigFromArgs)();
15
46
  // Get and filter tools based on configuration
16
47
  const allTools = (0, toolRegistry_js_1.getAllTools)();
17
48
  const enabledTools = (0, toolConfig_js_1.filterTools)(allTools, config);
49
+ // Get all resources
50
+ const allResources = (0, resourceRegistry_js_1.getAllResources)();
18
51
  // Create an MCP server
19
52
  const server = new mcp_js_1.McpServer({
20
53
  name: versionInfo.name,
21
54
  version: versionInfo.version
22
55
  }, {
23
56
  capabilities: {
24
- tools: {}
57
+ tools: {},
58
+ resources: {},
59
+ prompts: {}
25
60
  }
26
61
  });
27
62
  // Register enabled tools to the server
28
63
  enabledTools.forEach((tool) => {
29
64
  tool.installTo(server);
30
65
  });
66
+ // Register all resources to the server
67
+ allResources.forEach((resource) => {
68
+ resource.installTo(server);
69
+ });
70
+ // Register prompt handlers
71
+ server.server.setRequestHandler(types_js_1.ListPromptsRequestSchema, async () => {
72
+ const allPrompts = (0, promptRegistry_js_1.getAllPrompts)();
73
+ return {
74
+ prompts: allPrompts.map((prompt) => prompt.getMetadata())
75
+ };
76
+ });
77
+ server.server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request) => {
78
+ const { name, arguments: args } = request.params;
79
+ const prompt = (0, promptRegistry_js_1.getPromptByName)(name);
80
+ if (!prompt) {
81
+ throw new Error(`Prompt not found: ${name}`);
82
+ }
83
+ // Convert args to object for easier access
84
+ const argsObj = {};
85
+ if (args && typeof args === 'object') {
86
+ Object.assign(argsObj, args);
87
+ }
88
+ // Get the prompt messages with filled-in arguments
89
+ const messages = prompt.getMessages(argsObj);
90
+ return {
91
+ description: prompt.description,
92
+ messages
93
+ };
94
+ });
31
95
  async function main() {
96
+ // Initialize OpenTelemetry tracing if not in test mode
97
+ let tracingInitialized = false;
98
+ if (process.env.NODE_ENV !== 'test' && !process.env.VITEST) {
99
+ try {
100
+ await (0, tracing_js_1.initializeTracing)();
101
+ tracingInitialized = (0, tracing_js_1.isTracingInitialized)();
102
+ // Record .env loading as a span (retrospectively since it happened before tracing init)
103
+ if (tracingInitialized) {
104
+ const tracer = (0, tracing_js_1.getTracer)();
105
+ const span = tracer.startSpan('config.load_env', {
106
+ attributes: {
107
+ 'config.file.path': envPath,
108
+ 'config.file.exists': (0, node_fs_2.existsSync)(envPath),
109
+ 'config.vars.loaded': envLoadedCount,
110
+ 'operation.type': 'config_load'
111
+ }
112
+ });
113
+ if (envLoadError) {
114
+ span.recordException(envLoadError);
115
+ span.setStatus({
116
+ code: api_1.SpanStatusCode.ERROR,
117
+ message: envLoadError.message
118
+ });
119
+ span.setAttribute('error.type', envLoadError.name);
120
+ span.setAttribute('error.message', envLoadError.message);
121
+ }
122
+ else if (envLoadedCount > 0) {
123
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
124
+ span.setAttribute('config.load.success', true);
125
+ }
126
+ else {
127
+ // No error, but no variables loaded either (file might be empty or not exist)
128
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
129
+ span.setAttribute('config.load.success', true);
130
+ span.setAttribute('config.load.empty', true);
131
+ }
132
+ span.end();
133
+ }
134
+ }
135
+ catch (error) {
136
+ // Tracing initialization failed, log it but continue without tracing
137
+ server.server.sendLoggingMessage({
138
+ level: 'warning',
139
+ data: `Failed to initialize tracing: ${error instanceof Error ? error.message : String(error)}`
140
+ });
141
+ }
142
+ }
143
+ // Log tracing status and configuration
144
+ if (tracingInitialized) {
145
+ const tracingConfig = {
146
+ status: 'enabled',
147
+ endpoint: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'not set',
148
+ serviceName: process.env.OTEL_SERVICE_NAME || 'mapbox-mcp-server (default)'
149
+ };
150
+ server.server.sendLoggingMessage({
151
+ level: 'info',
152
+ data: `OpenTelemetry tracing enabled - Endpoint: ${tracingConfig.endpoint}, Service: ${tracingConfig.serviceName}`
153
+ });
154
+ }
155
+ else {
156
+ server.server.sendLoggingMessage({
157
+ level: 'info',
158
+ data: 'OpenTelemetry tracing: disabled'
159
+ });
160
+ }
161
+ // Send MCP logging message about environment variables
162
+ if (envLoadError) {
163
+ server.server.sendLoggingMessage({
164
+ level: 'warning',
165
+ data: `Warning loading .env file: ${envLoadError.message}`
166
+ });
167
+ }
168
+ else if (envLoadedCount > 0) {
169
+ server.server.sendLoggingMessage({
170
+ level: 'info',
171
+ data: `Loaded ${envLoadedCount} environment variables from ${envPath}`
172
+ });
173
+ }
174
+ const relevantEnvVars = Object.freeze({
175
+ MAPBOX_ACCESS_TOKEN: process.env.MAPBOX_ACCESS_TOKEN ? '***' : undefined,
176
+ MAPBOX_API_ENDPOINT: process.env.MAPBOX_API_ENDPOINT,
177
+ OTEL_SERVICE_NAME: process.env.OTEL_SERVICE_NAME,
178
+ OTEL_EXPORTER_OTLP_ENDPOINT: process.env.OTEL_EXPORTER_OTLP_ENDPOINT,
179
+ OTEL_TRACING_ENABLED: process.env.OTEL_TRACING_ENABLED,
180
+ NODE_ENV: process.env.NODE_ENV
181
+ });
182
+ server.server.sendLoggingMessage({
183
+ level: 'debug',
184
+ data: JSON.stringify(relevantEnvVars, null, 2)
185
+ });
32
186
  // Start receiving messages on stdin and sending messages on stdout
33
187
  const transport = new stdio_js_1.StdioServerTransport();
34
188
  await server.connect(transport);
35
189
  }
36
- main().catch((error) => {
37
- console.error('Fatal error starting MCP server:', error);
38
- process.exit(1);
190
+ // Ensure cleanup interval is cleared when the process exits
191
+ async function shutdown() {
192
+ // Shutdown tracing
193
+ try {
194
+ await (0, tracing_js_1.shutdownTracing)();
195
+ }
196
+ catch (error) {
197
+ // Tracing shutdown failed, log via MCP if server is available
198
+ try {
199
+ server.server.sendLoggingMessage({
200
+ level: 'error',
201
+ data: `Error shutting down tracing: ${error instanceof Error ? error.message : String(error)}`
202
+ });
203
+ }
204
+ catch {
205
+ // Server not available, ignore
206
+ }
207
+ }
208
+ process.exit(0);
209
+ }
210
+ function exitWithLog(message, error, code = 1) {
211
+ // Log error via MCP server if available
212
+ try {
213
+ server.server.sendLoggingMessage({
214
+ level: 'error',
215
+ data: `${message}: ${error instanceof Error ? error.message : String(error)}`
216
+ });
217
+ }
218
+ catch {
219
+ // Server not available, ignore
220
+ }
221
+ process.exit(code);
222
+ }
223
+ ['SIGINT', 'SIGTERM'].forEach((signal) => {
224
+ process.on(signal, async () => {
225
+ try {
226
+ await shutdown();
227
+ }
228
+ finally {
229
+ process.exit(0);
230
+ }
231
+ });
39
232
  });
233
+ process.on('uncaughtException', (err) => exitWithLog('Uncaught exception:', err));
234
+ process.on('unhandledRejection', (reason) => exitWithLog('Unhandled rejection:', reason));
235
+ main().catch((error) => exitWithLog('Fatal error starting MCP server:', error));
40
236
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;AAElC,oEAAoE;AACpE,wEAAiF;AACjF,0DAA8E;AAC9E,6DAAsD;AACtD,6DAAyD;AACzD,yBAAuB;AAEvB,MAAM,WAAW,GAAG,IAAA,gCAAc,GAAE,CAAC;AAErC,kDAAkD;AAClD,MAAM,MAAM,GAAG,IAAA,uCAAuB,GAAE,CAAC;AAEzC,8CAA8C;AAC9C,MAAM,QAAQ,GAAG,IAAA,6BAAW,GAAE,CAAC;AAC/B,MAAM,YAAY,GAAG,IAAA,2BAAW,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEnD,uBAAuB;AACvB,MAAM,MAAM,GAAG,IAAI,kBAAS,CAC1B;IACE,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,OAAO,EAAE,WAAW,CAAC,OAAO;CAC7B,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,uCAAuC;AACvC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,mEAAmE;IACnE,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;IACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { type Prompt, type PromptArgument, type PromptMessage } from '@modelcontextprotocol/sdk/types.js';
2
+ /**
3
+ * Base class for all MCP prompts.
4
+ *
5
+ * Prompts are pre-built, parameterized workflows that guide multi-step geospatial tasks.
6
+ * They capture domain expertise and best practices for common use cases.
7
+ */
8
+ export declare abstract class BasePrompt {
9
+ /**
10
+ * Unique identifier for this prompt (e.g., "find-places-nearby")
11
+ */
12
+ abstract readonly name: string;
13
+ /**
14
+ * Human-readable description of what this prompt does
15
+ */
16
+ abstract readonly description: string;
17
+ /**
18
+ * Arguments this prompt accepts
19
+ */
20
+ abstract readonly arguments: PromptArgument[];
21
+ /**
22
+ * Get the prompt metadata for listing
23
+ */
24
+ getMetadata(): Prompt;
25
+ /**
26
+ * Generate the prompt messages with filled-in arguments
27
+ *
28
+ * @param args - The argument values provided by the user/agent
29
+ * @returns Array of messages to send to the LLM
30
+ */
31
+ abstract getMessages(args: Record<string, string>): PromptMessage[];
32
+ /**
33
+ * Validate that all required arguments are provided
34
+ *
35
+ * @param args - The argument values to validate
36
+ * @throws Error if required arguments are missing
37
+ */
38
+ protected validateArguments(args: Record<string, string>): void;
39
+ }
40
+ //# sourceMappingURL=BasePrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BasePrompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/BasePrompt.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,oCAAoC,CAAC;AAE5C;;;;;GAKG;AACH,8BAAsB,UAAU;IAC9B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;IAE9C;;OAEG;IACH,WAAW,IAAI,MAAM;IAQrB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE;IAEnE;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;CAOhE"}