@mapbox/mcp-server 0.17.0-dev → 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
@@ -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"}
@@ -9,6 +9,12 @@ const server_1 = require("@modelcontextprotocol/server");
9
9
  * Base class for all MCP resources
10
10
  */
11
11
  class BaseResource {
12
+ /**
13
+ * A URI template this resource also answers, next to its fixed `uri`
14
+ * (e.g. mapbox://categories/{language}). resources/read matches a fixed
15
+ * URI exactly, so variants of it need a template to be readable.
16
+ */
17
+ uriTemplate;
12
18
  /**
13
19
  * The most recently installed server. Used as a fallback when `read()` is
14
20
  * called directly rather than through a handler registered by `installTo()`.
@@ -43,12 +49,17 @@ class BaseResource {
43
49
  if (this.uri.includes('{')) {
44
50
  // URI contains template variables — register as a ResourceTemplate so the
45
51
  // SDK performs proper URI template matching (e.g. mapbox://temp/{id}).
46
- const template = new server_1.ResourceTemplate(this.uri, { list: undefined });
47
- server.registerResource(this.name, template, metadata, (uri, _variables, ctx) => this.invocationServer.run(server, () => this.read(uri.toString(), ctx)));
52
+ this.registerTemplate(server, this.name, this.uri, metadata);
48
53
  }
49
54
  else {
50
55
  server.registerResource(this.name, this.uri, metadata, (uri, ctx) => this.invocationServer.run(server, () => this.read(uri.toString(), ctx)));
51
56
  }
57
+ if (this.uriTemplate) {
58
+ this.registerTemplate(server, `${this.name} (${this.uriTemplate})`, this.uriTemplate, metadata);
59
+ }
60
+ }
61
+ registerTemplate(server, name, uriTemplate, metadata) {
62
+ server.registerResource(name, new server_1.ResourceTemplate(uriTemplate, { list: undefined }), metadata, (uri, _variables, ctx) => this.invocationServer.run(server, () => this.read(uri.toString(), ctx)));
52
63
  }
53
64
  /**
54
65
  * 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,uDAAqD;AACrD,yDAAgE;AAOhE;;GAEG;AACH,MAAsB,YAAY;IAMhC;;;;;OAKG;IACO,MAAM,GAAqB,IAAI,CAAC;IAE1C;;;;OAIG;IACc,gBAAgB,GAAG,IAAI,oCAAiB,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,yBAAgB,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;AA9FD,oCA8FC"}
1
+ {"version":3,"file":"BaseResource.js","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,uDAAqD;AACrD,yDAAgE;AAOhE;;GAEG;AACH,MAAsB,YAAY;IAKhC;;;;OAIG;IACM,WAAW,CAAU;IAE9B;;;;;OAKG;IACO,MAAM,GAAqB,IAAI,CAAC;IAE1C;;;;OAIG;IACc,gBAAgB,GAAG,IAAI,oCAAiB,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,yBAAgB,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;AAlHD,oCAkHC"}
@@ -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"}
@@ -14,8 +14,9 @@ const MapboxApiBasedResource_js_1 = require("../MapboxApiBasedResource.js");
14
14
  */
15
15
  class CategoryListResource extends MapboxApiBasedResource_js_1.MapboxApiBasedResource {
16
16
  uri = 'mapbox://categories';
17
+ uriTemplate = 'mapbox://categories/{language}';
17
18
  name = 'Mapbox Categories';
18
- 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).';
19
+ 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.';
19
20
  mimeType = 'application/json';
20
21
  constructor(params) {
21
22
  super(params);
@@ -60,11 +61,20 @@ class CategoryListResource extends MapboxApiBasedResource_js_1.MapboxApiBasedRes
60
61
  /**
61
62
  * Extract language code from URI
62
63
  * @param uri Resource URI (e.g., mapbox://categories/ja)
63
- * @returns Language code or undefined if not present
64
+ * @returns Language code, or undefined for the default list
65
+ * @throws for anything after `mapbox://categories/` that isn't a language
66
+ * code (e.g. `%20ja` or `ja?x=1`), rather than quietly returning English.
67
+ * A well-formed code the API doesn't support (e.g. `xx`) still goes
68
+ * through: the API answers with its English list.
64
69
  */
65
70
  extractLanguageFromUri(uri) {
66
- const match = uri.match(/^mapbox:\/\/categories\/([a-z]{2})$/i);
67
- return match?.[1];
71
+ if (uri === this.uri)
72
+ return undefined;
73
+ const match = uri.match(/^mapbox:\/\/categories\/([a-z]{2}(?:-[a-z]{2,4})?)$/i);
74
+ if (!match) {
75
+ 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".`);
76
+ }
77
+ return match[1];
68
78
  }
69
79
  }
70
80
  exports.CategoryListResource = CategoryListResource;
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryListResource.js","sourceRoot":"","sources":["../../../../src/resources/category-list/CategoryListResource.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,4EAAsE;AAiBtE,oFAAoF;AAEpF;;;;;;GAMG;AACH,MAAa,oBAAqB,SAAQ,kDAAsB;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;AA1ED,oDA0EC"}
1
+ {"version":3,"file":"CategoryListResource.js","sourceRoot":"","sources":["../../../../src/resources/category-list/CategoryListResource.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,4EAAsE;AAiBtE,oFAAoF;AAEpF;;;;;;GAMG;AACH,MAAa,oBAAqB,SAAQ,kDAAsB;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;AAvFD,oDAuFC"}
@@ -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
@@ -32,7 +32,7 @@ const ALLOWED_TYPES = new Set([
32
32
  const lookupAll = async (hostname) => (await (0, promises_1.lookup)(hostname, { all: true })).map((a) => a.address);
33
33
  /**
34
34
  * A POI's first Place Details photo, proxied through the server for the map
35
- * app's results panel.
35
+ * app's results carousel.
36
36
  *
37
37
  * Place Details photos are hosted wherever the business's own site hosts
38
38
  * them (Yext, Webflow and so on), so the map app's CSP can't list their
@@ -47,7 +47,7 @@ const lookupAll = async (hostname) => (await (0, promises_1.lookup)(hostname, {
47
47
  class PlacePhotoResource extends MapboxApiBasedResource_js_1.MapboxApiBasedResource {
48
48
  uri = `${URI_PREFIX}{id}`;
49
49
  name = 'Mapbox Place Photo';
50
- description = "The first photo of a POI from Place Details, as an image, for the map app's results panel. " +
50
+ description = "The first photo of a POI from Place Details, as an image, for the map app's results carousel. " +
51
51
  'Read with mapbox://place-photo/{mapbox_id}.';
52
52
  mimeType = 'image/jpeg';
53
53
  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":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,gDAA2C;AAE3C,4EAAsE;AAEtE,2DAGkC;AAElC,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAE3C;;;;GAIG;AACU,QAAA,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD;;;GAGG;AACU,QAAA,2BAA2B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5D,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACpC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,4EAA4E;AAC5E,gEAAgE;AAChE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;CACZ,CAAC,CAAC;AAUH,MAAM,SAAS,GAAe,KAAK,EAAE,QAAQ,EAAE,EAAE,CAC/C,CAAC,MAAM,IAAA,iBAAM,EAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,MAAa,kBAAmB,SAAQ,kDAAsB;IACnD,GAAG,GAAG,GAAG,UAAU,MAAM,CAAC;IAC1B,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAClB,gGAAgG;QAChG,6CAA6C,CAAC;IACvC,QAAQ,GAAG,YAAY,CAAC;IAEhB,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,UAAU,GAAG,CAAC,CAAC;IACN,UAAU,CAAa;IAExC,YAAY,MAA6D;QACvE,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC;IACnD,CAAC;IAES,KAAK,CAAC,OAAO,CACrB,GAAW,EACX,WAAmB;QAEnB,MAAM,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;SAClE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,EAAU,EACV,WAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC;QAExD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACrD,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACf,MAAM,IAAI,GAAG,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACvC,OACE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;YACnB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,iBAAiB;gBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,mCAA2B,CAAC,EACvD,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,EAAU,EACV,WAAmB;QAEnB,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,GAAG,kDAAsB,CAAC,iBAAiB,8BAA8B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAClG,CAAC;QACF,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAEjC,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAC;YACnE,EAAE,GAAyB,CAAC;QAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAEvE,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;gBAC1C,mEAAmE;gBACnE,gDAAgD;gBAChD,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,sBAAsB,CAAC;aACpD,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAEzC,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;aAC3D,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACb,IAAI,EAAE;aACN,WAAW,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACjE,IAAI,QAAQ,GAAG,6BAAqB;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,6BAAqB,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxD,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,gBAAgB,CAAC,KAAa;QAC1C,MAAM,GAAG,GAAG,IAAA,mCAAoB,EAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QACjD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,gCAAiB,CAAC,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AArID,gDAqIC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,yEAAyE;AACzE,KAAK,UAAU,UAAU,CACvB,QAAkB,EAClB,KAAa;IAEb,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,CAAC;IACD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,SAAS,CAAC;QACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;QAC1B,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;YAClB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,SAAS,GACb,4EAA4E,CAAC;AAE/E;;;GAGG;AACH,SAAS,aAAa,CAAC,EAAU;IAC/B,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -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"}
@@ -12,6 +12,7 @@ const ComputeResource_js_1 = require("./compute/ComputeResource.js");
12
12
  const InlinePayloadResource_js_1 = require("./inline-payload/InlinePayloadResource.js");
13
13
  const ToolResponseResource_js_1 = require("./tool-response/ToolResponseResource.js");
14
14
  const MapAppUIResource_js_1 = require("./ui-apps/MapAppUIResource.js");
15
+ const StaticMapViewerUIResource_js_1 = require("./ui-apps/StaticMapViewerUIResource.js");
15
16
  const VersionResource_js_1 = require("./version/VersionResource.js");
16
17
  const PlacePhotoResource_js_1 = require("./place-photo/PlacePhotoResource.js");
17
18
  const httpPipeline_js_1 = require("../utils/httpPipeline.js");
@@ -25,7 +26,9 @@ exports.ALL_RESOURCES = [
25
26
  new ToolResponseResource_js_1.ToolResponseResource({ httpRequest: httpPipeline_js_1.httpRequest }),
26
27
  // Single shared map renderer, targeted exclusively by render_map_tool.
27
28
  new MapAppUIResource_js_1.MapAppUIResource({ httpRequest: httpPipeline_js_1.httpRequest }),
28
- // Photos for the map app's results panel, which its CSP can't load directly.
29
+ // Full-width viewer for static_map_image_tool's image.
30
+ new StaticMapViewerUIResource_js_1.StaticMapViewerUIResource(),
31
+ // Photos for the map app's results carousel, which its CSP can't load directly.
29
32
  new PlacePhotoResource_js_1.PlacePhotoResource({ httpRequest: httpPipeline_js_1.httpRequest }),
30
33
  new VersionResource_js_1.VersionResource()
31
34
  ];
@@ -37,16 +40,18 @@ function getResourceByUri(uri) {
37
40
  const exactMatch = exports.ALL_RESOURCES.find((resource) => resource.uri === uri);
38
41
  if (exactMatch)
39
42
  return exactMatch;
40
- // Find pattern match (e.g., mapbox://categories/ja matches mapbox://categories)
43
+ // Find pattern match (e.g., mapbox://categories/ja matches mapbox://categories,
44
+ // mapbox://temp/abc matches the template mapbox://temp/{id}). The prefix is
45
+ // everything before the first `{` or `*`.
41
46
  // Plain string prefix check — avoids building a RegExp from data at runtime,
42
47
  // which would let an unbounded, user-supplied `uri` be tested against a
43
48
  // dynamically constructed pattern (untrusted-input-into-RegExp is a ReDoS
44
49
  // smell even though today's static resource URIs are innocuous).
45
50
  return exports.ALL_RESOURCES.find((resource) => {
46
- const wildcardIndex = resource.uri.indexOf('*');
47
- const basePrefix = wildcardIndex === -1
51
+ const variableIndex = resource.uri.search(/[{*]/);
52
+ const basePrefix = variableIndex === -1
48
53
  ? resource.uri
49
- : resource.uri.slice(0, wildcardIndex);
54
+ : resource.uri.slice(0, variableIndex);
50
55
  return uri.startsWith(basePrefix);
51
56
  });
52
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resourceRegistry.js","sourceRoot":"","sources":["../../../src/resources/resourceRegistry.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AA8BlC,0CAEC;AAED,4CAkBC;AAlDD,kCAAkC;AAClC,qFAA+E;AAC/E,mFAA6E;AAC7E,qEAA+D;AAC/D,wFAAkF;AAClF,qFAA+E;AAC/E,uEAAiE;AACjE,qEAA+D;AAC/D,+EAAyE;AACzE,8DAAuD;AAEvD,oCAAoC;AACvB,QAAA,aAAa,GAAG;IAC3B,oCAAoC;IACpC,IAAI,8CAAoB,CAAC,EAAE,WAAW,EAAX,6BAAW,EAAE,CAAC;IACzC,IAAI,gDAAqB,EAAE;IAC3B,IAAI,oCAAe,EAAE;IACrB,IAAI,gDAAqB,EAAE;IAC3B,IAAI,8CAAoB,CAAC,EAAE,WAAW,EAAX,6BAAW,EAAE,CAAC;IACzC,uEAAuE;IACvE,IAAI,sCAAgB,CAAC,EAAE,WAAW,EAAX,6BAAW,EAAE,CAAC;IACrC,6EAA6E;IAC7E,IAAI,0CAAkB,CAAC,EAAE,WAAW,EAAX,6BAAW,EAAE,CAAC;IACvC,IAAI,oCAAe,EAAE;CACb,CAAC;AAIX,SAAgB,eAAe;IAC7B,OAAO,qBAAa,CAAC;AACvB,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,yBAAyB;IACzB,MAAM,UAAU,GAAG,qBAAa,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,qBAAa,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;;;AAiClC,0CAEC;AAED,4CAoBC;AAvDD,kCAAkC;AAClC,qFAA+E;AAC/E,mFAA6E;AAC7E,qEAA+D;AAC/D,wFAAkF;AAClF,qFAA+E;AAC/E,uEAAiE;AACjE,yFAAmF;AACnF,qEAA+D;AAC/D,+EAAyE;AACzE,8DAAuD;AAEvD,oCAAoC;AACvB,QAAA,aAAa,GAAG;IAC3B,oCAAoC;IACpC,IAAI,8CAAoB,CAAC,EAAE,WAAW,EAAX,6BAAW,EAAE,CAAC;IACzC,IAAI,gDAAqB,EAAE;IAC3B,IAAI,oCAAe,EAAE;IACrB,IAAI,gDAAqB,EAAE;IAC3B,IAAI,8CAAoB,CAAC,EAAE,WAAW,EAAX,6BAAW,EAAE,CAAC;IACzC,uEAAuE;IACvE,IAAI,sCAAgB,CAAC,EAAE,WAAW,EAAX,6BAAW,EAAE,CAAC;IACrC,uDAAuD;IACvD,IAAI,wDAAyB,EAAE;IAC/B,gFAAgF;IAChF,IAAI,0CAAkB,CAAC,EAAE,WAAW,EAAX,6BAAW,EAAE,CAAC;IACvC,IAAI,oCAAe,EAAE;CACb,CAAC;AAIX,SAAgB,eAAe;IAC7B,OAAO,qBAAa,CAAC;AACvB,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,yBAAyB;IACzB,MAAM,UAAU,GAAG,qBAAa,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,qBAAa,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"}
@@ -10,16 +10,19 @@ const buildDirectionsRequestUrl_js_1 = require("../../tools/directions-tool/buil
10
10
  const cleanResponseData_js_1 = require("../../tools/directions-tool/cleanResponseData.js");
11
11
  const IsochroneTool_input_schema_js_1 = require("../../tools/isochrone-tool/IsochroneTool.input.schema.js");
12
12
  const buildIsochroneRequestUrl_js_1 = require("../../tools/isochrone-tool/buildIsochroneRequestUrl.js");
13
+ const StaticMapImageTool_input_schema_js_1 = require("../../tools/static-map-image-tool/StaticMapImageTool.input.schema.js");
14
+ const buildStaticMapRequestUrl_js_1 = require("../../tools/static-map-image-tool/buildStaticMapRequestUrl.js");
13
15
  /**
14
- * Full `directions_tool` / `isochrone_tool` responses that were too large
15
- * to return inline. The `mapbox://response/{tool}?data=...` ref carries the
16
- * call's inputs (see responseRef.ts), and reading it runs the same request
17
- * again with the reader's token, so any server process can answer it.
16
+ * Full `directions_tool` / `isochrone_tool` responses and
17
+ * `static_map_image_tool` images that were too large to return inline. The
18
+ * `mapbox://response/{tool}?data=...` ref carries the call's inputs (see
19
+ * responseRef.ts), and reading it runs the same request again with the
20
+ * reader's token, so any server process can answer it.
18
21
  */
19
22
  class ToolResponseResource extends MapboxApiBasedResource_js_1.MapboxApiBasedResource {
20
23
  name = 'Full Tool Response';
21
24
  uri = 'mapbox://response/{spec}';
22
- description = 'The full response of a directions_tool or isochrone_tool call that was too large to return inline, fetched again from its ref.';
25
+ 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.';
23
26
  mimeType = 'application/json';
24
27
  constructor(params) {
25
28
  super(params);
@@ -27,6 +30,27 @@ class ToolResponseResource extends MapboxApiBasedResource_js_1.MapboxApiBasedRes
27
30
  async execute(uri, accessToken) {
28
31
  const spec = (0, responseRef_js_1.resolveResponseRef)(uri);
29
32
  const apiEndpoint = MapboxApiBasedResource_js_1.MapboxApiBasedResource.mapboxApiEndpoint;
33
+ if (spec?.tool === 'static-map') {
34
+ const parsed = StaticMapImageTool_input_schema_js_1.StaticMapImageInputSchema.safeParse(spec.input);
35
+ if (!parsed.success) {
36
+ return text(uri, 'Response ref was malformed or unsupported.');
37
+ }
38
+ const { url } = (0, buildStaticMapRequestUrl_js_1.buildStaticMapRequestUrl)({
39
+ input: parsed.data,
40
+ accessToken,
41
+ apiEndpoint
42
+ });
43
+ const response = await this.httpRequest(url);
44
+ if (!response.ok) {
45
+ return text(uri, `Fetching the image failed: ${response.status} ${response.statusText}`);
46
+ }
47
+ const blob = Buffer.from(await response.arrayBuffer()).toString('base64');
48
+ return {
49
+ contents: [
50
+ { uri, mimeType: (0, buildStaticMapRequestUrl_js_1.getStaticMapMimeType)(parsed.data.style), blob }
51
+ ]
52
+ };
53
+ }
30
54
  let url = null;
31
55
  let directionsInput = null;
32
56
  if (spec?.tool === 'directions') {
@@ -1 +1 @@
1
- {"version":3,"file":"ToolResponseResource.js","sourceRoot":"","sources":["../../../../src/resources/tool-response/ToolResponseResource.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAGlC,4EAAsE;AAEtE,+DAAgE;AAChE,+GAAmG;AACnG,2GAAqG;AACrG,2FAAqF;AAErF,4GAAgG;AAChG,wGAAkG;AAElG;;;;;GAKG;AACH,MAAa,oBAAqB,SAAQ,kDAAsB;IACrD,IAAI,GAAG,oBAAoB,CAAC;IAC5B,GAAG,GAAG,0BAA0B,CAAC;IACjC,WAAW,GAClB,gIAAgI,CAAC;IAC1H,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,IAAA,mCAAkB,EAAC,GAAG,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,kDAAsB,CAAC,iBAAiB,CAAC;QAC7D,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,IAAI,eAAe,GACjB,IAAI,CAAC;QAEP,IAAI,IAAI,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,sDAAqB,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,IAAA,wDAAyB,EAAC;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,oDAAoB,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,IAAA,sDAAwB,EAAC;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,IAAA,wCAAiB,EAC7B,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;AA9ED,oDA8EC;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"}
1
+ {"version":3,"file":"ToolResponseResource.js","sourceRoot":"","sources":["../../../../src/resources/tool-response/ToolResponseResource.ts"],"names":[],"mappings":"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"}
@@ -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,64 @@
1
+ "use strict";
2
+ // Copyright (c) Mapbox, Inc.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.StaticMapViewerUIResource = exports.STATIC_MAP_VIEWER_URI = void 0;
6
+ exports.staticMapViewerCsp = staticMapViewerCsp;
7
+ const server_1 = require("@modelcontextprotocol/ext-apps/server");
8
+ const BaseResource_js_1 = require("../BaseResource.js");
9
+ const staticMapViewerHtml_js_1 = require("./staticMapViewerHtml.js");
10
+ exports.STATIC_MAP_VIEWER_URI = 'ui://mapbox/static-map/index.html';
11
+ /**
12
+ * The MCP App `static_map_image_tool` points at, which shows its image at
13
+ * full width (see staticMapViewerHtml.ts).
14
+ *
15
+ * The image comes from the tool result itself, so unlike the map app this
16
+ * page needs no token. Its CSP only allows images from the API origin, for
17
+ * the public-token URL it falls back to when the image went to a temporary
18
+ * resource.
19
+ */
20
+ class StaticMapViewerUIResource extends BaseResource_js_1.BaseResource {
21
+ name = 'Mapbox Static Map Viewer';
22
+ uri = exports.STATIC_MAP_VIEWER_URI;
23
+ description = 'Shows the static_map_image_tool image at full width (MCP Apps)';
24
+ mimeType = server_1.RESOURCE_MIME_TYPE;
25
+ apiEndpoint;
26
+ constructor(params = {}) {
27
+ super();
28
+ this.apiEndpoint =
29
+ params.apiEndpoint ??
30
+ (() => process.env.MAPBOX_API_ENDPOINT || 'https://api.mapbox.com/');
31
+ }
32
+ async read() {
33
+ return {
34
+ contents: [
35
+ {
36
+ uri: this.uri,
37
+ mimeType: server_1.RESOURCE_MIME_TYPE,
38
+ text: (0, staticMapViewerHtml_js_1.renderStaticMapViewerHtml)({ apiEndpoint: this.apiEndpoint() }),
39
+ _meta: {
40
+ ui: {
41
+ csp: staticMapViewerCsp(this.apiEndpoint()),
42
+ prefersBorder: false
43
+ }
44
+ }
45
+ }
46
+ ]
47
+ };
48
+ }
49
+ }
50
+ exports.StaticMapViewerUIResource = StaticMapViewerUIResource;
51
+ /** Images from the API origin only; the page fetches nothing else. */
52
+ function staticMapViewerCsp(apiEndpoint) {
53
+ const resourceDomains = ['https://api.mapbox.com'];
54
+ try {
55
+ const origin = new URL(apiEndpoint).origin;
56
+ if (!resourceDomains.includes(origin))
57
+ resourceDomains.push(origin);
58
+ }
59
+ catch {
60
+ // An endpoint that isn't a valid URL can't serve images anyway.
61
+ }
62
+ return { resourceDomains };
63
+ }
64
+ //# 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;;;AAsDlC,gDAWC;AA9DD,kEAA2E;AAC3E,wDAAkD;AAClD,qEAAqE;AAExD,QAAA,qBAAqB,GAAG,mCAAmC,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAa,yBAA0B,SAAQ,8BAAY;IAChD,IAAI,GAAG,0BAA0B,CAAC;IAClC,GAAG,GAAG,6BAAqB,CAAC;IAC5B,WAAW,GAClB,gEAAgE,CAAC;IAC1D,QAAQ,GAAG,2BAAkB,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,2BAAkB;oBAC5B,IAAI,EAAE,IAAA,kDAAyB,EAAC,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;AAjCD,8DAiCC;AAED,sEAAsE;AACtE,SAAgB,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"}