@mapbox/mcp-server 0.17.0-dev.1 → 0.17.0-dev.2

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 (127) hide show
  1. package/dist/commonjs/resources/BaseResource.d.ts +7 -0
  2. package/dist/commonjs/resources/BaseResource.d.ts.map +1 -1
  3. package/dist/commonjs/resources/BaseResource.js +13 -2
  4. package/dist/commonjs/resources/BaseResource.js.map +1 -1
  5. package/dist/commonjs/resources/category-list/CategoryListResource.d.ts +7 -2
  6. package/dist/commonjs/resources/category-list/CategoryListResource.d.ts.map +1 -1
  7. package/dist/commonjs/resources/category-list/CategoryListResource.js +14 -4
  8. package/dist/commonjs/resources/category-list/CategoryListResource.js.map +1 -1
  9. package/dist/commonjs/resources/place-photo/PlacePhotoResource.d.ts +1 -1
  10. package/dist/commonjs/resources/place-photo/PlacePhotoResource.js +2 -2
  11. package/dist/commonjs/resources/place-photo/PlacePhotoResource.js.map +1 -1
  12. package/dist/commonjs/resources/resourceRegistry.d.ts +2 -1
  13. package/dist/commonjs/resources/resourceRegistry.d.ts.map +1 -1
  14. package/dist/commonjs/resources/resourceRegistry.js +10 -5
  15. package/dist/commonjs/resources/resourceRegistry.js.map +1 -1
  16. package/dist/commonjs/resources/tool-response/ToolResponseResource.d.ts +6 -5
  17. package/dist/commonjs/resources/tool-response/ToolResponseResource.d.ts.map +1 -1
  18. package/dist/commonjs/resources/tool-response/ToolResponseResource.js +29 -5
  19. package/dist/commonjs/resources/tool-response/ToolResponseResource.js.map +1 -1
  20. package/dist/commonjs/resources/ui-apps/StaticMapViewerUIResource.d.ts +28 -0
  21. package/dist/commonjs/resources/ui-apps/StaticMapViewerUIResource.d.ts.map +1 -0
  22. package/dist/commonjs/resources/ui-apps/StaticMapViewerUIResource.js +64 -0
  23. package/dist/commonjs/resources/ui-apps/StaticMapViewerUIResource.js.map +1 -0
  24. package/dist/commonjs/resources/ui-apps/mapAppHtml.d.ts.map +1 -1
  25. package/dist/commonjs/resources/ui-apps/mapAppHtml.js +936 -223
  26. package/dist/commonjs/resources/ui-apps/mapAppHtml.js.map +1 -1
  27. package/dist/commonjs/resources/ui-apps/staticMapViewerHtml.d.ts +17 -0
  28. package/dist/commonjs/resources/ui-apps/staticMapViewerHtml.d.ts.map +1 -0
  29. package/dist/commonjs/resources/ui-apps/staticMapViewerHtml.js +180 -0
  30. package/dist/commonjs/resources/ui-apps/staticMapViewerHtml.js.map +1 -0
  31. package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts.map +1 -1
  32. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.d.ts +1 -0
  33. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.d.ts.map +1 -1
  34. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.js +10 -6
  35. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.js.map +1 -1
  36. package/dist/commonjs/tools/render-map-tool/RenderMapTool.js +26 -12
  37. package/dist/commonjs/tools/render-map-tool/RenderMapTool.js.map +1 -1
  38. package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.d.ts +1 -0
  39. package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.d.ts.map +1 -1
  40. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
  41. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js +43 -9
  42. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
  43. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts +8 -1
  44. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  45. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js +113 -90
  46. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  47. package/dist/commonjs/tools/static-map-image-tool/buildStaticMapRequestUrl.d.ts +23 -0
  48. package/dist/commonjs/tools/static-map-image-tool/buildStaticMapRequestUrl.d.ts.map +1 -0
  49. package/dist/commonjs/tools/static-map-image-tool/buildStaticMapRequestUrl.js +84 -0
  50. package/dist/commonjs/tools/static-map-image-tool/buildStaticMapRequestUrl.js.map +1 -0
  51. package/dist/commonjs/utils/mapAppPayload.d.ts +15 -6
  52. package/dist/commonjs/utils/mapAppPayload.d.ts.map +1 -1
  53. package/dist/commonjs/utils/mapAppPayload.js +2 -1
  54. package/dist/commonjs/utils/mapAppPayload.js.map +1 -1
  55. package/dist/commonjs/utils/mapboxPublicToken.d.ts +5 -1
  56. package/dist/commonjs/utils/mapboxPublicToken.d.ts.map +1 -1
  57. package/dist/commonjs/utils/mapboxPublicToken.js +6 -1
  58. package/dist/commonjs/utils/mapboxPublicToken.js.map +1 -1
  59. package/dist/commonjs/utils/responseRef.d.ts +1 -1
  60. package/dist/commonjs/utils/responseRef.d.ts.map +1 -1
  61. package/dist/commonjs/utils/responseRef.js +1 -1
  62. package/dist/commonjs/utils/responseRef.js.map +1 -1
  63. package/dist/commonjs/version.json +3 -3
  64. package/dist/esm/resources/BaseResource.d.ts +7 -0
  65. package/dist/esm/resources/BaseResource.d.ts.map +1 -1
  66. package/dist/esm/resources/BaseResource.js +13 -2
  67. package/dist/esm/resources/BaseResource.js.map +1 -1
  68. package/dist/esm/resources/category-list/CategoryListResource.d.ts +7 -2
  69. package/dist/esm/resources/category-list/CategoryListResource.d.ts.map +1 -1
  70. package/dist/esm/resources/category-list/CategoryListResource.js +14 -4
  71. package/dist/esm/resources/category-list/CategoryListResource.js.map +1 -1
  72. package/dist/esm/resources/place-photo/PlacePhotoResource.d.ts +1 -1
  73. package/dist/esm/resources/place-photo/PlacePhotoResource.js +2 -2
  74. package/dist/esm/resources/place-photo/PlacePhotoResource.js.map +1 -1
  75. package/dist/esm/resources/resourceRegistry.d.ts +2 -1
  76. package/dist/esm/resources/resourceRegistry.d.ts.map +1 -1
  77. package/dist/esm/resources/resourceRegistry.js +10 -5
  78. package/dist/esm/resources/resourceRegistry.js.map +1 -1
  79. package/dist/esm/resources/tool-response/ToolResponseResource.d.ts +6 -5
  80. package/dist/esm/resources/tool-response/ToolResponseResource.d.ts.map +1 -1
  81. package/dist/esm/resources/tool-response/ToolResponseResource.js +29 -5
  82. package/dist/esm/resources/tool-response/ToolResponseResource.js.map +1 -1
  83. package/dist/esm/resources/ui-apps/StaticMapViewerUIResource.d.ts +28 -0
  84. package/dist/esm/resources/ui-apps/StaticMapViewerUIResource.d.ts.map +1 -0
  85. package/dist/esm/resources/ui-apps/StaticMapViewerUIResource.js +59 -0
  86. package/dist/esm/resources/ui-apps/StaticMapViewerUIResource.js.map +1 -0
  87. package/dist/esm/resources/ui-apps/mapAppHtml.d.ts.map +1 -1
  88. package/dist/esm/resources/ui-apps/mapAppHtml.js +936 -223
  89. package/dist/esm/resources/ui-apps/mapAppHtml.js.map +1 -1
  90. package/dist/esm/resources/ui-apps/staticMapViewerHtml.d.ts +17 -0
  91. package/dist/esm/resources/ui-apps/staticMapViewerHtml.d.ts.map +1 -0
  92. package/dist/esm/resources/ui-apps/staticMapViewerHtml.js +177 -0
  93. package/dist/esm/resources/ui-apps/staticMapViewerHtml.js.map +1 -0
  94. package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts.map +1 -1
  95. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.d.ts +1 -0
  96. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.d.ts.map +1 -1
  97. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.js +10 -6
  98. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.js.map +1 -1
  99. package/dist/esm/tools/render-map-tool/RenderMapTool.js +26 -12
  100. package/dist/esm/tools/render-map-tool/RenderMapTool.js.map +1 -1
  101. package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.d.ts +1 -0
  102. package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.d.ts.map +1 -1
  103. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
  104. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js +43 -9
  105. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
  106. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts +8 -1
  107. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  108. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js +114 -91
  109. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  110. package/dist/esm/tools/static-map-image-tool/buildStaticMapRequestUrl.d.ts +23 -0
  111. package/dist/esm/tools/static-map-image-tool/buildStaticMapRequestUrl.d.ts.map +1 -0
  112. package/dist/esm/tools/static-map-image-tool/buildStaticMapRequestUrl.js +78 -0
  113. package/dist/esm/tools/static-map-image-tool/buildStaticMapRequestUrl.js.map +1 -0
  114. package/dist/esm/utils/mapAppPayload.d.ts +15 -6
  115. package/dist/esm/utils/mapAppPayload.d.ts.map +1 -1
  116. package/dist/esm/utils/mapAppPayload.js +2 -1
  117. package/dist/esm/utils/mapAppPayload.js.map +1 -1
  118. package/dist/esm/utils/mapboxPublicToken.d.ts +5 -1
  119. package/dist/esm/utils/mapboxPublicToken.d.ts.map +1 -1
  120. package/dist/esm/utils/mapboxPublicToken.js +6 -1
  121. package/dist/esm/utils/mapboxPublicToken.js.map +1 -1
  122. package/dist/esm/utils/responseRef.d.ts +1 -1
  123. package/dist/esm/utils/responseRef.d.ts.map +1 -1
  124. package/dist/esm/utils/responseRef.js +1 -1
  125. package/dist/esm/utils/responseRef.js.map +1 -1
  126. package/dist/esm/version.json +3 -3
  127. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"responseRef.js","sourceRoot":"","sources":["../../../src/utils/responseRef.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;AA6BlC,4CASC;AAED,sCAEC;AAOD,gDAgCC;AA/ED,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEjD,yEAAyE;AACzE,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,WAAW,CAAU,CAAC;AAW5D;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,IAAqB;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACtB,IAAI,CAAC,SAAS,CAAC;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;KAC5C,CAAC,EACF,MAAM,CACP,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAAC,IAAI,SAAS,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,IAAI,IAAY,CAAC;IACjB,IAAI,OAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAoB,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5E,IAAI,OAA0D,CAAC;IAC/D,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,IAAoB;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAgC;QAC/C,kBAAkB,EAChB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC;YAC/C,CAAC,CAAE,KAAgB;YACnB,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"responseRef.js","sourceRoot":"","sources":["../../../src/utils/responseRef.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;AA6BlC,4CASC;AAED,sCAEC;AAOD,gDAgCC;AA/ED,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEjD,yEAAyE;AACzE,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAU,CAAC;AAW1E;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,IAAqB;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACtB,IAAI,CAAC,SAAS,CAAC;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;KAC5C,CAAC,EACF,MAAM,CACP,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAAC,IAAI,SAAS,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,IAAI,IAAY,CAAC;IACjB,IAAI,OAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAoB,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5E,IAAI,OAA0D,CAAC;IAC/D,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,IAAoB;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAgC;QAC/C,kBAAkB,EAChB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC;YAC/C,CAAC,CAAE,KAAgB;YACnB,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
- "sha": "1e9e4a8c49b65b3a4badb014a1cbbac82ed8bf06",
3
- "tag": "v0.16.1-dev-10-g1e9e4a8",
2
+ "sha": "4ba67f600abc6b7947d50bef5c1c0b5970f40308",
3
+ "tag": "v0.17.0-dev.1-10-g4ba67f6",
4
4
  "branch": "HEAD",
5
- "version": "0.17.0-dev.1"
5
+ "version": "0.17.0-dev.2"
6
6
  }
@@ -7,6 +7,12 @@ export declare abstract class BaseResource {
7
7
  abstract readonly name: string;
8
8
  abstract readonly description?: string;
9
9
  abstract readonly mimeType?: string;
10
+ /**
11
+ * A URI template this resource also answers, next to its fixed `uri`
12
+ * (e.g. mapbox://categories/{language}). resources/read matches a fixed
13
+ * URI exactly, so variants of it need a template to be readable.
14
+ */
15
+ readonly uriTemplate?: string;
10
16
  /**
11
17
  * The most recently installed server. Used as a fallback when `read()` is
12
18
  * called directly rather than through a handler registered by `installTo()`.
@@ -30,6 +36,7 @@ export declare abstract class BaseResource {
30
36
  * Installs the resource to the given MCP server.
31
37
  */
32
38
  installTo(server: McpServer): void;
39
+ private registerTemplate;
33
40
  /**
34
41
  * Resource read logic to be implemented by subclasses.
35
42
  * @param uri The resource URI as a string
@@ -1 +1 @@
1
- {"version":3,"file":"BaseResource.d.ts","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,aAAa,EACd,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,8BAAsB,YAAY;IAChC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEpC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAE1C;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IAEvE;;;;OAIG;IACH,SAAS,KAAK,YAAY,IAAI,SAAS,GAAG,IAAI,CAE7C;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAuClC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CACX,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,aAAa,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,GAAG,CACX,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,EAC7C,IAAI,EAAE,OAAO,GACZ,IAAI;CAMR"}
1
+ {"version":3,"file":"BaseResource.d.ts","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,aAAa,EACd,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,8BAAsB,YAAY;IAChC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAE1C;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IAEvE;;;;OAIG;IACH,SAAS,KAAK,YAAY,IAAI,SAAS,GAAG,IAAI,CAE7C;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAkClC,OAAO,CAAC,gBAAgB;IAmBxB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CACX,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,aAAa,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,GAAG,CACX,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,EAC7C,IAAI,EAAE,OAAO,GACZ,IAAI;CAMR"}
@@ -6,6 +6,12 @@ import { ResourceTemplate } from '@modelcontextprotocol/server';
6
6
  * Base class for all MCP resources
7
7
  */
8
8
  export class BaseResource {
9
+ /**
10
+ * A URI template this resource also answers, next to its fixed `uri`
11
+ * (e.g. mapbox://categories/{language}). resources/read matches a fixed
12
+ * URI exactly, so variants of it need a template to be readable.
13
+ */
14
+ uriTemplate;
9
15
  /**
10
16
  * The most recently installed server. Used as a fallback when `read()` is
11
17
  * called directly rather than through a handler registered by `installTo()`.
@@ -40,12 +46,17 @@ export class BaseResource {
40
46
  if (this.uri.includes('{')) {
41
47
  // URI contains template variables — register as a ResourceTemplate so the
42
48
  // SDK performs proper URI template matching (e.g. mapbox://temp/{id}).
43
- const template = new ResourceTemplate(this.uri, { list: undefined });
44
- server.registerResource(this.name, template, metadata, (uri, _variables, ctx) => this.invocationServer.run(server, () => this.read(uri.toString(), ctx)));
49
+ this.registerTemplate(server, this.name, this.uri, metadata);
45
50
  }
46
51
  else {
47
52
  server.registerResource(this.name, this.uri, metadata, (uri, ctx) => this.invocationServer.run(server, () => this.read(uri.toString(), ctx)));
48
53
  }
54
+ if (this.uriTemplate) {
55
+ this.registerTemplate(server, `${this.name} (${this.uriTemplate})`, this.uriTemplate, metadata);
56
+ }
57
+ }
58
+ registerTemplate(server, name, uriTemplate, metadata) {
59
+ server.registerResource(name, new ResourceTemplate(uriTemplate, { list: undefined }), metadata, (uri, _variables, ctx) => this.invocationServer.run(server, () => this.read(uri.toString(), ctx)));
49
60
  }
50
61
  /**
51
62
  * Helper method to send logging messages
@@ -1 +1 @@
1
- {"version":3,"file":"BaseResource.js","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAOhE;;GAEG;AACH,MAAM,OAAgB,YAAY;IAMhC;;;;;OAKG;IACO,MAAM,GAAqB,IAAI,CAAC;IAE1C;;;;OAIG;IACc,gBAAgB,GAAG,IAAI,iBAAiB,EAAa,CAAC;IAEvE;;;;OAIG;IACH,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAiB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,QAAQ,GAAG;YACf,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QAEF,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,0EAA0E;YAC1E,uEAAuE;YACvE,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACrE,MAAM,CAAC,gBAAgB,CACrB,IAAI,CAAC,IAAI,EACT,QAAQ,EACR,QAAQ,EACR,CACE,GAAQ,EACR,UAA6C,EAC7C,GAAkB,EAClB,EAAE,CACF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAC/B,CACJ,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gBAAgB,CACrB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,EACR,QAAQ,EACR,CAAC,GAAQ,EAAE,GAAkB,EAAE,EAAE,CAC/B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAC/B,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAYD;;OAEG;IACO,GAAG,CACX,KAA6C,EAC7C,IAAa;QAEb,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QACjC,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"BaseResource.js","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAOhE;;GAEG;AACH,MAAM,OAAgB,YAAY;IAKhC;;;;OAIG;IACM,WAAW,CAAU;IAE9B;;;;;OAKG;IACO,MAAM,GAAqB,IAAI,CAAC;IAE1C;;;;OAIG;IACc,gBAAgB,GAAG,IAAI,iBAAiB,EAAa,CAAC;IAEvE;;;;OAIG;IACH,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAiB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,QAAQ,GAAG;YACf,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QAEF,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,0EAA0E;YAC1E,uEAAuE;YACvE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gBAAgB,CACrB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,EACR,QAAQ,EACR,CAAC,GAAQ,EAAE,GAAkB,EAAE,EAAE,CAC/B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAC/B,CACJ,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,CACnB,MAAM,EACN,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,GAAG,EACpC,IAAI,CAAC,WAAW,EAChB,QAAQ,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,gBAAgB,CACtB,MAAiB,EACjB,IAAY,EACZ,WAAmB,EACnB,QAAoE;QAEpE,MAAM,CAAC,gBAAgB,CACrB,IAAI,EACJ,IAAI,gBAAgB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EACtD,QAAQ,EACR,CACE,GAAQ,EACR,UAA6C,EAC7C,GAAkB,EAClB,EAAE,CACF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,CAC1E,CAAC;IACJ,CAAC;IAYD;;OAEG;IACO,GAAG,CACX,KAA6C,EAC7C,IAAa;QAEb,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QACjC,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
@@ -10,8 +10,9 @@ import type { ReadResourceResult } from '@modelcontextprotocol/server';
10
10
  */
11
11
  export declare class CategoryListResource extends MapboxApiBasedResource {
12
12
  readonly uri = "mapbox://categories";
13
+ readonly uriTemplate = "mapbox://categories/{language}";
13
14
  readonly name = "Mapbox Categories";
14
- readonly description = "List of all available Mapbox Search API categories. Categories can be used for filtering search results. Supports localization via language parameter in URI (e.g., mapbox://categories/ja for Japanese).";
15
+ readonly description = "List of all available Mapbox Search API categories. Categories can be used for filtering search results. Supports localization via language parameter in URI (e.g., mapbox://categories/ja for Japanese). A language code the API does not support gets the default (English) list.";
15
16
  readonly mimeType = "application/json";
16
17
  constructor(params: {
17
18
  httpRequest: HttpRequest;
@@ -20,7 +21,11 @@ export declare class CategoryListResource extends MapboxApiBasedResource {
20
21
  /**
21
22
  * Extract language code from URI
22
23
  * @param uri Resource URI (e.g., mapbox://categories/ja)
23
- * @returns Language code or undefined if not present
24
+ * @returns Language code, or undefined for the default list
25
+ * @throws for anything after `mapbox://categories/` that isn't a language
26
+ * code (e.g. `%20ja` or `ja?x=1`), rather than quietly returning English.
27
+ * A well-formed code the API doesn't support (e.g. `xx`) still goes
28
+ * through: the API answers with its English list.
24
29
  */
25
30
  private extractLanguageFromUri;
26
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryListResource.d.ts","sourceRoot":"","sources":["../../../../src/resources/category-list/CategoryListResource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAiBvE;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC9D,QAAQ,CAAC,GAAG,yBAAyB;IACrC,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,WAAW,+MAC0L;IAC9M,QAAQ,CAAC,QAAQ,sBAAsB;gBAE3B,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;cAIhC,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAmD9B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAI/B"}
1
+ {"version":3,"file":"CategoryListResource.d.ts","sourceRoot":"","sources":["../../../../src/resources/category-list/CategoryListResource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAiBvE;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC9D,QAAQ,CAAC,GAAG,yBAAyB;IACrC,QAAQ,CAAC,WAAW,oCAAoC;IACxD,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,WAAW,yRACoQ;IACxR,QAAQ,CAAC,QAAQ,sBAAsB;gBAE3B,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;cAIhC,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAmD9B;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;CAY/B"}
@@ -11,8 +11,9 @@ import { MapboxApiBasedResource } from '../MapboxApiBasedResource.js';
11
11
  */
12
12
  export class CategoryListResource extends MapboxApiBasedResource {
13
13
  uri = 'mapbox://categories';
14
+ uriTemplate = 'mapbox://categories/{language}';
14
15
  name = 'Mapbox Categories';
15
- description = 'List of all available Mapbox Search API categories. Categories can be used for filtering search results. Supports localization via language parameter in URI (e.g., mapbox://categories/ja for Japanese).';
16
+ description = 'List of all available Mapbox Search API categories. Categories can be used for filtering search results. Supports localization via language parameter in URI (e.g., mapbox://categories/ja for Japanese). A language code the API does not support gets the default (English) list.';
16
17
  mimeType = 'application/json';
17
18
  constructor(params) {
18
19
  super(params);
@@ -57,11 +58,20 @@ export class CategoryListResource extends MapboxApiBasedResource {
57
58
  /**
58
59
  * Extract language code from URI
59
60
  * @param uri Resource URI (e.g., mapbox://categories/ja)
60
- * @returns Language code or undefined if not present
61
+ * @returns Language code, or undefined for the default list
62
+ * @throws for anything after `mapbox://categories/` that isn't a language
63
+ * code (e.g. `%20ja` or `ja?x=1`), rather than quietly returning English.
64
+ * A well-formed code the API doesn't support (e.g. `xx`) still goes
65
+ * through: the API answers with its English list.
61
66
  */
62
67
  extractLanguageFromUri(uri) {
63
- const match = uri.match(/^mapbox:\/\/categories\/([a-z]{2})$/i);
64
- return match?.[1];
68
+ if (uri === this.uri)
69
+ return undefined;
70
+ const match = uri.match(/^mapbox:\/\/categories\/([a-z]{2}(?:-[a-z]{2,4})?)$/i);
71
+ if (!match) {
72
+ throw new Error(`Resource not found: ${uri}. Use mapbox://categories for the default list, or mapbox://categories/{language} with a language code such as "ja".`);
73
+ }
74
+ return match[1];
65
75
  }
66
76
  }
67
77
  //# sourceMappingURL=CategoryListResource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryListResource.js","sourceRoot":"","sources":["../../../../src/resources/category-list/CategoryListResource.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAiBtE,oFAAoF;AAEpF;;;;;;GAMG;AACH,MAAM,OAAO,oBAAqB,SAAQ,sBAAsB;IACrD,GAAG,GAAG,qBAAqB,CAAC;IAC5B,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAClB,2MAA2M,CAAC;IACrM,QAAQ,GAAG,kBAAkB,CAAC;IAEvC,YAAY,MAAoC;QAC9C,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,OAAO,CACrB,GAAW,EACX,WAAmB;QAEnB,qCAAqC;QACrC,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,0DAA0D,CAC3D,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAErD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE;YACzD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,YAAY,EAAE,sBAAsB,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAK,EAAE;aAC/E;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACvE,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,OAA4B,CAAC;QAE1C,0DAA0D;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG;oBACH,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,sBAAsB,CAAC,GAAW;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAChE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"CategoryListResource.js","sourceRoot":"","sources":["../../../../src/resources/category-list/CategoryListResource.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAiBtE,oFAAoF;AAEpF;;;;;;GAMG;AACH,MAAM,OAAO,oBAAqB,SAAQ,sBAAsB;IACrD,GAAG,GAAG,qBAAqB,CAAC;IAC5B,WAAW,GAAG,gCAAgC,CAAC;IAC/C,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAClB,qRAAqR,CAAC;IAC/Q,QAAQ,GAAG,kBAAkB,CAAC;IAEvC,YAAY,MAAoC;QAC9C,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,OAAO,CACrB,GAAW,EACX,WAAmB;QAEnB,qCAAqC;QACrC,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,0DAA0D,CAC3D,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAErD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE;YACzD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,YAAY,EAAE,sBAAsB,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAK,EAAE;aAC/E;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACvE,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,OAA4B,CAAC;QAE1C,0DAA0D;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG;oBACH,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,sBAAsB,CAAC,GAAW;QACxC,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG,sHAAsH,CACjJ,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF"}
@@ -16,7 +16,7 @@ export declare const MAX_PLACE_PHOTO_CACHE_BYTES: number;
16
16
  export type LookupHost = (hostname: string) => Promise<string[]>;
17
17
  /**
18
18
  * A POI's first Place Details photo, proxied through the server for the map
19
- * app's results panel.
19
+ * app's results carousel.
20
20
  *
21
21
  * Place Details photos are hosted wherever the business's own site hosts
22
22
  * them (Yext, Webflow and so on), so the map app's CSP can't list their
@@ -29,7 +29,7 @@ const ALLOWED_TYPES = new Set([
29
29
  const lookupAll = async (hostname) => (await lookup(hostname, { all: true })).map((a) => a.address);
30
30
  /**
31
31
  * A POI's first Place Details photo, proxied through the server for the map
32
- * app's results panel.
32
+ * app's results carousel.
33
33
  *
34
34
  * Place Details photos are hosted wherever the business's own site hosts
35
35
  * them (Yext, Webflow and so on), so the map app's CSP can't list their
@@ -44,7 +44,7 @@ const lookupAll = async (hostname) => (await lookup(hostname, { all: true })).ma
44
44
  export class PlacePhotoResource extends MapboxApiBasedResource {
45
45
  uri = `${URI_PREFIX}{id}`;
46
46
  name = 'Mapbox Place Photo';
47
- description = "The first photo of a POI from Place Details, as an image, for the map app's results panel. " +
47
+ description = "The first photo of a POI from Place Details, as an image, for the map app's results carousel. " +
48
48
  'Read with mapbox://place-photo/{mapbox_id}.';
49
49
  mimeType = 'image/jpeg';
50
50
  cache = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"PlacePhotoResource.js","sourceRoot":"","sources":["../../../../src/resources/place-photo/PlacePhotoResource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlacePhotoResource.js","sourceRoot":"","sources":["../../../../src/resources/place-photo/PlacePhotoResource.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,10 @@ import { ComputeResource } from './compute/ComputeResource.js';
4
4
  import { InlinePayloadResource } from './inline-payload/InlinePayloadResource.js';
5
5
  import { ToolResponseResource } from './tool-response/ToolResponseResource.js';
6
6
  import { MapAppUIResource } from './ui-apps/MapAppUIResource.js';
7
+ import { StaticMapViewerUIResource } from './ui-apps/StaticMapViewerUIResource.js';
7
8
  import { VersionResource } from './version/VersionResource.js';
8
9
  import { PlacePhotoResource } from './place-photo/PlacePhotoResource.js';
9
- export declare const ALL_RESOURCES: readonly [CategoryListResource, TemporaryDataResource, ComputeResource, InlinePayloadResource, ToolResponseResource, MapAppUIResource, PlacePhotoResource, VersionResource];
10
+ export declare const ALL_RESOURCES: readonly [CategoryListResource, TemporaryDataResource, ComputeResource, InlinePayloadResource, ToolResponseResource, MapAppUIResource, StaticMapViewerUIResource, PlacePhotoResource, VersionResource];
10
11
  export type ResourceInstance = (typeof ALL_RESOURCES)[number];
11
12
  export declare function getAllResources(): readonly ResourceInstance[];
12
13
  export declare function getResourceByUri(uri: string): ResourceInstance | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"resourceRegistry.d.ts","sourceRoot":"","sources":["../../../src/resources/resourceRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAIzE,eAAO,MAAM,aAAa,6KAYhB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,wBAAgB,eAAe,IAAI,SAAS,gBAAgB,EAAE,CAE7D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAkB1E"}
1
+ {"version":3,"file":"resourceRegistry.d.ts","sourceRoot":"","sources":["../../../src/resources/resourceRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAIzE,eAAO,MAAM,aAAa,wMAchB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,wBAAgB,eAAe,IAAI,SAAS,gBAAgB,EAAE,CAE7D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAoB1E"}
@@ -7,6 +7,7 @@ import { ComputeResource } from './compute/ComputeResource.js';
7
7
  import { InlinePayloadResource } from './inline-payload/InlinePayloadResource.js';
8
8
  import { ToolResponseResource } from './tool-response/ToolResponseResource.js';
9
9
  import { MapAppUIResource } from './ui-apps/MapAppUIResource.js';
10
+ import { StaticMapViewerUIResource } from './ui-apps/StaticMapViewerUIResource.js';
10
11
  import { VersionResource } from './version/VersionResource.js';
11
12
  import { PlacePhotoResource } from './place-photo/PlacePhotoResource.js';
12
13
  import { httpRequest } from '../utils/httpPipeline.js';
@@ -20,7 +21,9 @@ export const ALL_RESOURCES = [
20
21
  new ToolResponseResource({ httpRequest }),
21
22
  // Single shared map renderer, targeted exclusively by render_map_tool.
22
23
  new MapAppUIResource({ httpRequest }),
23
- // Photos for the map app's results panel, which its CSP can't load directly.
24
+ // Full-width viewer for static_map_image_tool's image.
25
+ new StaticMapViewerUIResource(),
26
+ // Photos for the map app's results carousel, which its CSP can't load directly.
24
27
  new PlacePhotoResource({ httpRequest }),
25
28
  new VersionResource()
26
29
  ];
@@ -32,16 +35,18 @@ export function getResourceByUri(uri) {
32
35
  const exactMatch = ALL_RESOURCES.find((resource) => resource.uri === uri);
33
36
  if (exactMatch)
34
37
  return exactMatch;
35
- // Find pattern match (e.g., mapbox://categories/ja matches mapbox://categories)
38
+ // Find pattern match (e.g., mapbox://categories/ja matches mapbox://categories,
39
+ // mapbox://temp/abc matches the template mapbox://temp/{id}). The prefix is
40
+ // everything before the first `{` or `*`.
36
41
  // Plain string prefix check — avoids building a RegExp from data at runtime,
37
42
  // which would let an unbounded, user-supplied `uri` be tested against a
38
43
  // dynamically constructed pattern (untrusted-input-into-RegExp is a ReDoS
39
44
  // smell even though today's static resource URIs are innocuous).
40
45
  return ALL_RESOURCES.find((resource) => {
41
- const wildcardIndex = resource.uri.indexOf('*');
42
- const basePrefix = wildcardIndex === -1
46
+ const variableIndex = resource.uri.search(/[{*]/);
47
+ const basePrefix = variableIndex === -1
43
48
  ? resource.uri
44
- : resource.uri.slice(0, wildcardIndex);
49
+ : resource.uri.slice(0, variableIndex);
45
50
  return uri.startsWith(basePrefix);
46
51
  });
47
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resourceRegistry.js","sourceRoot":"","sources":["../../../src/resources/resourceRegistry.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,kCAAkC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oCAAoC;IACpC,IAAI,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;IACzC,IAAI,qBAAqB,EAAE;IAC3B,IAAI,eAAe,EAAE;IACrB,IAAI,qBAAqB,EAAE;IAC3B,IAAI,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;IACzC,uEAAuE;IACvE,IAAI,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC;IACrC,6EAA6E;IAC7E,IAAI,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC;IACvC,IAAI,eAAe,EAAE;CACb,CAAC;AAIX,MAAM,UAAU,eAAe;IAC7B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,yBAAyB;IACzB,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAC1E,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAElC,gFAAgF;IAChF,6EAA6E;IAC7E,wEAAwE;IACxE,0EAA0E;IAC1E,iEAAiE;IACjE,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,UAAU,GACd,aAAa,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,QAAQ,CAAC,GAAG;YACd,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QAC3C,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"resourceRegistry.js","sourceRoot":"","sources":["../../../src/resources/resourceRegistry.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,kCAAkC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oCAAoC;IACpC,IAAI,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;IACzC,IAAI,qBAAqB,EAAE;IAC3B,IAAI,eAAe,EAAE;IACrB,IAAI,qBAAqB,EAAE;IAC3B,IAAI,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;IACzC,uEAAuE;IACvE,IAAI,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC;IACrC,uDAAuD;IACvD,IAAI,yBAAyB,EAAE;IAC/B,gFAAgF;IAChF,IAAI,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC;IACvC,IAAI,eAAe,EAAE;CACb,CAAC;AAIX,MAAM,UAAU,eAAe;IAC7B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,yBAAyB;IACzB,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAC1E,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAElC,gFAAgF;IAChF,4EAA4E;IAC5E,0CAA0C;IAC1C,6EAA6E;IAC7E,wEAAwE;IACxE,0EAA0E;IAC1E,iEAAiE;IACjE,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,UAAU,GACd,aAAa,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,QAAQ,CAAC,GAAG;YACd,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QAC3C,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -2,15 +2,16 @@ import type { ReadResourceResult } from '@modelcontextprotocol/server';
2
2
  import { MapboxApiBasedResource } from '../MapboxApiBasedResource.js';
3
3
  import type { HttpRequest } from '../../utils/types.js';
4
4
  /**
5
- * Full `directions_tool` / `isochrone_tool` responses that were too large
6
- * to return inline. The `mapbox://response/{tool}?data=...` ref carries the
7
- * call's inputs (see responseRef.ts), and reading it runs the same request
8
- * again with the reader's token, so any server process can answer it.
5
+ * Full `directions_tool` / `isochrone_tool` responses and
6
+ * `static_map_image_tool` images that were too large to return inline. The
7
+ * `mapbox://response/{tool}?data=...` ref carries the call's inputs (see
8
+ * responseRef.ts), and reading it runs the same request again with the
9
+ * reader's token, so any server process can answer it.
9
10
  */
10
11
  export declare class ToolResponseResource extends MapboxApiBasedResource {
11
12
  readonly name = "Full Tool Response";
12
13
  readonly uri = "mapbox://response/{spec}";
13
- readonly description = "The full response of a directions_tool or isochrone_tool call that was too large to return inline, fetched again from its ref.";
14
+ readonly description = "The full response of a directions_tool or isochrone_tool call, or a static_map_image_tool image, that was too large to return inline, fetched again from its ref.";
14
15
  readonly mimeType = "application/json";
15
16
  constructor(params: {
16
17
  httpRequest: HttpRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolResponseResource.d.ts","sourceRoot":"","sources":["../../../../src/resources/tool-response/ToolResponseResource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASxD;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC9D,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,GAAG,8BAA8B;IAC1C,QAAQ,CAAC,WAAW,oIAC+G;IACnI,QAAQ,CAAC,QAAQ,sBAAsB;gBAE3B,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;cAIhC,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC;CAgE/B"}
1
+ {"version":3,"file":"ToolResponseResource.d.ts","sourceRoot":"","sources":["../../../../src/resources/tool-response/ToolResponseResource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAcxD;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC9D,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,GAAG,8BAA8B;IAC1C,QAAQ,CAAC,WAAW,uKACkJ;IACtK,QAAQ,CAAC,QAAQ,sBAAsB;gBAE3B,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;cAIhC,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC;CAyF/B"}
@@ -7,16 +7,19 @@ import { buildDirectionsRequestUrl } from '../../tools/directions-tool/buildDire
7
7
  import { cleanResponseData } from '../../tools/directions-tool/cleanResponseData.js';
8
8
  import { IsochroneInputSchema } from '../../tools/isochrone-tool/IsochroneTool.input.schema.js';
9
9
  import { buildIsochroneRequestUrl } from '../../tools/isochrone-tool/buildIsochroneRequestUrl.js';
10
+ import { StaticMapImageInputSchema } from '../../tools/static-map-image-tool/StaticMapImageTool.input.schema.js';
11
+ import { buildStaticMapRequestUrl, getStaticMapMimeType } from '../../tools/static-map-image-tool/buildStaticMapRequestUrl.js';
10
12
  /**
11
- * Full `directions_tool` / `isochrone_tool` responses that were too large
12
- * to return inline. The `mapbox://response/{tool}?data=...` ref carries the
13
- * call's inputs (see responseRef.ts), and reading it runs the same request
14
- * again with the reader's token, so any server process can answer it.
13
+ * Full `directions_tool` / `isochrone_tool` responses and
14
+ * `static_map_image_tool` images that were too large to return inline. The
15
+ * `mapbox://response/{tool}?data=...` ref carries the call's inputs (see
16
+ * responseRef.ts), and reading it runs the same request again with the
17
+ * reader's token, so any server process can answer it.
15
18
  */
16
19
  export class ToolResponseResource extends MapboxApiBasedResource {
17
20
  name = 'Full Tool Response';
18
21
  uri = 'mapbox://response/{spec}';
19
- description = 'The full response of a directions_tool or isochrone_tool call that was too large to return inline, fetched again from its ref.';
22
+ description = 'The full response of a directions_tool or isochrone_tool call, or a static_map_image_tool image, that was too large to return inline, fetched again from its ref.';
20
23
  mimeType = 'application/json';
21
24
  constructor(params) {
22
25
  super(params);
@@ -24,6 +27,27 @@ export class ToolResponseResource extends MapboxApiBasedResource {
24
27
  async execute(uri, accessToken) {
25
28
  const spec = resolveResponseRef(uri);
26
29
  const apiEndpoint = MapboxApiBasedResource.mapboxApiEndpoint;
30
+ if (spec?.tool === 'static-map') {
31
+ const parsed = StaticMapImageInputSchema.safeParse(spec.input);
32
+ if (!parsed.success) {
33
+ return text(uri, 'Response ref was malformed or unsupported.');
34
+ }
35
+ const { url } = buildStaticMapRequestUrl({
36
+ input: parsed.data,
37
+ accessToken,
38
+ apiEndpoint
39
+ });
40
+ const response = await this.httpRequest(url);
41
+ if (!response.ok) {
42
+ return text(uri, `Fetching the image failed: ${response.status} ${response.statusText}`);
43
+ }
44
+ const blob = Buffer.from(await response.arrayBuffer()).toString('base64');
45
+ return {
46
+ contents: [
47
+ { uri, mimeType: getStaticMapMimeType(parsed.data.style), blob }
48
+ ]
49
+ };
50
+ }
27
51
  let url = null;
28
52
  let directionsInput = null;
29
53
  if (spec?.tool === 'directions') {
@@ -1 +1 @@
1
- {"version":3,"file":"ToolResponseResource.js","sourceRoot":"","sources":["../../../../src/resources/tool-response/ToolResponseResource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolResponseResource.js","sourceRoot":"","sources":["../../../../src/resources/tool-response/ToolResponseResource.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAGlC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AACnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAErF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAClG,OAAO,EAAE,yBAAyB,EAAE,MAAM,sEAAsE,CAAC;AACjH,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,+DAA+D,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,OAAO,oBAAqB,SAAQ,sBAAsB;IACrD,IAAI,GAAG,oBAAoB,CAAC;IAC5B,GAAG,GAAG,0BAA0B,CAAC;IACjC,WAAW,GAClB,mKAAmK,CAAC;IAC7J,QAAQ,GAAG,kBAAkB,CAAC;IAEvC,YAAY,MAAoC;QAC9C,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,OAAO,CACrB,GAAW,EACX,WAAmB;QAEnB,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,sBAAsB,CAAC,iBAAiB,CAAC;QAE7D,IAAI,IAAI,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC,GAAG,EAAE,4CAA4C,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,GAAG,wBAAwB,CAAC;gBACvC,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,WAAW;gBACX,WAAW;aACZ,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,IAAI,CACT,GAAG,EACH,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACvE,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1E,OAAO;gBACL,QAAQ,EAAE;oBACR,EAAE,GAAG,EAAE,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE;iBACjE;aACF,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,IAAI,eAAe,GACjB,IAAI,CAAC;QAEP,IAAI,IAAI,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC9B,GAAG,GAAG,yBAAyB,CAAC;oBAC9B,KAAK,EAAE,MAAM,CAAC,IAAI;oBAClB,WAAW;oBACX,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1D,IACE,MAAM,CAAC,OAAO;gBACd,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAC7D,CAAC;gBACD,GAAG,GAAG,wBAAwB,CAAC;oBAC7B,KAAK,EAAE,MAAM,CAAC,IAAI;oBAClB,WAAW;oBACX,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,GAAG,EAAE,4CAA4C,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CACT,GAAG,EACH,sCAAsC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC/E,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE1C,IAAI,eAAe,EAAE,CAAC;YACpB,0DAA0D;YAC1D,IAAI,OAAO,GAAG,iBAAiB,CAC7B,eAAe,EACf,IAA0B,CAC3B,CAAC;YACF,8DAA8D;YAC9D,MAAM,KAAK,GAAG,IAAI,EAAE,kBAAkB,CAAC;YACvC,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5D,CAAC;YACD,IAAI,GAAG,OAAO,CAAC;QACjB,CAAC;QAED,OAAO;YACL,QAAQ,EAAE;gBACR,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACtE;SACF,CAAC;IACJ,CAAC;CACF;AAED,SAAS,IAAI,CAAC,GAAW,EAAE,OAAe;IACxC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACxE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { ReadResourceResult } from '@modelcontextprotocol/server';
2
+ import { BaseResource } from '../BaseResource.js';
3
+ export declare const STATIC_MAP_VIEWER_URI = "ui://mapbox/static-map/index.html";
4
+ /**
5
+ * The MCP App `static_map_image_tool` points at, which shows its image at
6
+ * full width (see staticMapViewerHtml.ts).
7
+ *
8
+ * The image comes from the tool result itself, so unlike the map app this
9
+ * page needs no token. Its CSP only allows images from the API origin, for
10
+ * the public-token URL it falls back to when the image went to a temporary
11
+ * resource.
12
+ */
13
+ export declare class StaticMapViewerUIResource extends BaseResource {
14
+ readonly name = "Mapbox Static Map Viewer";
15
+ readonly uri = "ui://mapbox/static-map/index.html";
16
+ readonly description = "Shows the static_map_image_tool image at full width (MCP Apps)";
17
+ readonly mimeType = "text/html;profile=mcp-app";
18
+ private readonly apiEndpoint;
19
+ constructor(params?: {
20
+ apiEndpoint?: () => string;
21
+ });
22
+ read(): Promise<ReadResourceResult>;
23
+ }
24
+ /** Images from the API origin only; the page fetches nothing else. */
25
+ export declare function staticMapViewerCsp(apiEndpoint: string): {
26
+ resourceDomains: string[];
27
+ };
28
+ //# sourceMappingURL=StaticMapViewerUIResource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticMapViewerUIResource.d.ts","sourceRoot":"","sources":["../../../../src/resources/ui-apps/StaticMapViewerUIResource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,eAAO,MAAM,qBAAqB,sCAAsC,CAAC;AAEzE;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,SAAQ,YAAY;IACzD,QAAQ,CAAC,IAAI,8BAA8B;IAC3C,QAAQ,CAAC,GAAG,uCAAyB;IACrC,QAAQ,CAAC,WAAW,oEAC+C;IACnE,QAAQ,CAAC,QAAQ,+BAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;gBAE/B,MAAM,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,MAAM,CAAA;KAAO;IAOjD,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAiB1C;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG;IACvD,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CASA"}
@@ -0,0 +1,59 @@
1
+ // Copyright (c) Mapbox, Inc.
2
+ // Licensed under the MIT License.
3
+ import { RESOURCE_MIME_TYPE } from '@modelcontextprotocol/ext-apps/server';
4
+ import { BaseResource } from '../BaseResource.js';
5
+ import { renderStaticMapViewerHtml } from './staticMapViewerHtml.js';
6
+ export const STATIC_MAP_VIEWER_URI = 'ui://mapbox/static-map/index.html';
7
+ /**
8
+ * The MCP App `static_map_image_tool` points at, which shows its image at
9
+ * full width (see staticMapViewerHtml.ts).
10
+ *
11
+ * The image comes from the tool result itself, so unlike the map app this
12
+ * page needs no token. Its CSP only allows images from the API origin, for
13
+ * the public-token URL it falls back to when the image went to a temporary
14
+ * resource.
15
+ */
16
+ export class StaticMapViewerUIResource extends BaseResource {
17
+ name = 'Mapbox Static Map Viewer';
18
+ uri = STATIC_MAP_VIEWER_URI;
19
+ description = 'Shows the static_map_image_tool image at full width (MCP Apps)';
20
+ mimeType = RESOURCE_MIME_TYPE;
21
+ apiEndpoint;
22
+ constructor(params = {}) {
23
+ super();
24
+ this.apiEndpoint =
25
+ params.apiEndpoint ??
26
+ (() => process.env.MAPBOX_API_ENDPOINT || 'https://api.mapbox.com/');
27
+ }
28
+ async read() {
29
+ return {
30
+ contents: [
31
+ {
32
+ uri: this.uri,
33
+ mimeType: RESOURCE_MIME_TYPE,
34
+ text: renderStaticMapViewerHtml({ apiEndpoint: this.apiEndpoint() }),
35
+ _meta: {
36
+ ui: {
37
+ csp: staticMapViewerCsp(this.apiEndpoint()),
38
+ prefersBorder: false
39
+ }
40
+ }
41
+ }
42
+ ]
43
+ };
44
+ }
45
+ }
46
+ /** Images from the API origin only; the page fetches nothing else. */
47
+ export function staticMapViewerCsp(apiEndpoint) {
48
+ const resourceDomains = ['https://api.mapbox.com'];
49
+ try {
50
+ const origin = new URL(apiEndpoint).origin;
51
+ if (!resourceDomains.includes(origin))
52
+ resourceDomains.push(origin);
53
+ }
54
+ catch {
55
+ // An endpoint that isn't a valid URL can't serve images anyway.
56
+ }
57
+ return { resourceDomains };
58
+ }
59
+ //# sourceMappingURL=StaticMapViewerUIResource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticMapViewerUIResource.js","sourceRoot":"","sources":["../../../../src/resources/ui-apps/StaticMapViewerUIResource.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,MAAM,CAAC,MAAM,qBAAqB,GAAG,mCAAmC,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAM,OAAO,yBAA0B,SAAQ,YAAY;IAChD,IAAI,GAAG,0BAA0B,CAAC;IAClC,GAAG,GAAG,qBAAqB,CAAC;IAC5B,WAAW,GAClB,gEAAgE,CAAC;IAC1D,QAAQ,GAAG,kBAAkB,CAAC;IAEtB,WAAW,CAAe;IAE3C,YAAY,SAAyC,EAAE;QACrD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW;YACd,MAAM,CAAC,WAAW;gBAClB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,yBAAyB,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,yBAAyB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACpE,KAAK,EAAE;wBACL,EAAE,EAAE;4BACF,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;4BAC3C,aAAa,EAAE,KAAK;yBACrB;qBACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAED,sEAAsE;AACtE,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IAGpD,MAAM,eAAe,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;IACD,OAAO,EAAE,eAAe,EAAE,CAAC;AAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mapAppHtml.d.ts","sourceRoot":"","sources":["../../../../src/resources/ui-apps/mapAppHtml.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;;;;;GASG;AAMH,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,aAAa,CAAC;CAC7B,GAAG,MAAM,CAomET"}
1
+ {"version":3,"file":"mapAppHtml.d.ts","sourceRoot":"","sources":["../../../../src/resources/ui-apps/mapAppHtml.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;;;;;GASG;AAMH,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,aAAa,CAAC;CAC7B,GAAG,MAAM,CA6yFT"}