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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) 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 +977 -252
  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/MapboxApiBasedTool.d.ts.map +1 -1
  32. package/dist/commonjs/tools/MapboxApiBasedTool.js +6 -2
  33. package/dist/commonjs/tools/MapboxApiBasedTool.js.map +1 -1
  34. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  35. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +1 -1
  36. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  37. package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.d.ts.map +1 -1
  38. package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.js +2 -0
  39. package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.js.map +1 -1
  40. package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts.map +1 -1
  41. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.d.ts +1 -0
  42. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.d.ts.map +1 -1
  43. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.js +10 -6
  44. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.js.map +1 -1
  45. package/dist/commonjs/tools/render-map-tool/RenderMapTool.js +26 -12
  46. package/dist/commonjs/tools/render-map-tool/RenderMapTool.js.map +1 -1
  47. package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.d.ts +1 -0
  48. package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.d.ts.map +1 -1
  49. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
  50. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js +43 -9
  51. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
  52. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
  53. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +1 -1
  54. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  55. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts +8 -1
  56. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  57. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js +113 -90
  58. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  59. package/dist/commonjs/tools/static-map-image-tool/buildStaticMapRequestUrl.d.ts +23 -0
  60. package/dist/commonjs/tools/static-map-image-tool/buildStaticMapRequestUrl.d.ts.map +1 -0
  61. package/dist/commonjs/tools/static-map-image-tool/buildStaticMapRequestUrl.js +84 -0
  62. package/dist/commonjs/tools/static-map-image-tool/buildStaticMapRequestUrl.js.map +1 -0
  63. package/dist/commonjs/utils/mapAppPayload.d.ts +15 -6
  64. package/dist/commonjs/utils/mapAppPayload.d.ts.map +1 -1
  65. package/dist/commonjs/utils/mapAppPayload.js +2 -1
  66. package/dist/commonjs/utils/mapAppPayload.js.map +1 -1
  67. package/dist/commonjs/utils/mapboxPublicToken.d.ts +5 -1
  68. package/dist/commonjs/utils/mapboxPublicToken.d.ts.map +1 -1
  69. package/dist/commonjs/utils/mapboxPublicToken.js +6 -1
  70. package/dist/commonjs/utils/mapboxPublicToken.js.map +1 -1
  71. package/dist/commonjs/utils/responseRef.d.ts +1 -1
  72. package/dist/commonjs/utils/responseRef.d.ts.map +1 -1
  73. package/dist/commonjs/utils/responseRef.js +1 -1
  74. package/dist/commonjs/utils/responseRef.js.map +1 -1
  75. package/dist/commonjs/utils/selfFetchRef.d.ts +24 -0
  76. package/dist/commonjs/utils/selfFetchRef.d.ts.map +1 -1
  77. package/dist/commonjs/utils/selfFetchRef.js +68 -0
  78. package/dist/commonjs/utils/selfFetchRef.js.map +1 -1
  79. package/dist/commonjs/utils/serverInstructions.js +1 -1
  80. package/dist/commonjs/utils/serverInstructions.js.map +1 -1
  81. package/dist/commonjs/version.json +3 -3
  82. package/dist/esm/resources/BaseResource.d.ts +7 -0
  83. package/dist/esm/resources/BaseResource.d.ts.map +1 -1
  84. package/dist/esm/resources/BaseResource.js +13 -2
  85. package/dist/esm/resources/BaseResource.js.map +1 -1
  86. package/dist/esm/resources/category-list/CategoryListResource.d.ts +7 -2
  87. package/dist/esm/resources/category-list/CategoryListResource.d.ts.map +1 -1
  88. package/dist/esm/resources/category-list/CategoryListResource.js +14 -4
  89. package/dist/esm/resources/category-list/CategoryListResource.js.map +1 -1
  90. package/dist/esm/resources/place-photo/PlacePhotoResource.d.ts +1 -1
  91. package/dist/esm/resources/place-photo/PlacePhotoResource.js +2 -2
  92. package/dist/esm/resources/place-photo/PlacePhotoResource.js.map +1 -1
  93. package/dist/esm/resources/resourceRegistry.d.ts +2 -1
  94. package/dist/esm/resources/resourceRegistry.d.ts.map +1 -1
  95. package/dist/esm/resources/resourceRegistry.js +10 -5
  96. package/dist/esm/resources/resourceRegistry.js.map +1 -1
  97. package/dist/esm/resources/tool-response/ToolResponseResource.d.ts +6 -5
  98. package/dist/esm/resources/tool-response/ToolResponseResource.d.ts.map +1 -1
  99. package/dist/esm/resources/tool-response/ToolResponseResource.js +29 -5
  100. package/dist/esm/resources/tool-response/ToolResponseResource.js.map +1 -1
  101. package/dist/esm/resources/ui-apps/StaticMapViewerUIResource.d.ts +28 -0
  102. package/dist/esm/resources/ui-apps/StaticMapViewerUIResource.d.ts.map +1 -0
  103. package/dist/esm/resources/ui-apps/StaticMapViewerUIResource.js +59 -0
  104. package/dist/esm/resources/ui-apps/StaticMapViewerUIResource.js.map +1 -0
  105. package/dist/esm/resources/ui-apps/mapAppHtml.d.ts.map +1 -1
  106. package/dist/esm/resources/ui-apps/mapAppHtml.js +977 -252
  107. package/dist/esm/resources/ui-apps/mapAppHtml.js.map +1 -1
  108. package/dist/esm/resources/ui-apps/staticMapViewerHtml.d.ts +17 -0
  109. package/dist/esm/resources/ui-apps/staticMapViewerHtml.d.ts.map +1 -0
  110. package/dist/esm/resources/ui-apps/staticMapViewerHtml.js +177 -0
  111. package/dist/esm/resources/ui-apps/staticMapViewerHtml.js.map +1 -0
  112. package/dist/esm/tools/MapboxApiBasedTool.d.ts.map +1 -1
  113. package/dist/esm/tools/MapboxApiBasedTool.js +6 -2
  114. package/dist/esm/tools/MapboxApiBasedTool.js.map +1 -1
  115. package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  116. package/dist/esm/tools/category-search-tool/CategorySearchTool.js +2 -2
  117. package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  118. package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.d.ts.map +1 -1
  119. package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.js +2 -0
  120. package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.js.map +1 -1
  121. package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts.map +1 -1
  122. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.d.ts +1 -0
  123. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.d.ts.map +1 -1
  124. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.js +10 -6
  125. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.js.map +1 -1
  126. package/dist/esm/tools/render-map-tool/RenderMapTool.js +26 -12
  127. package/dist/esm/tools/render-map-tool/RenderMapTool.js.map +1 -1
  128. package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.d.ts +1 -0
  129. package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.d.ts.map +1 -1
  130. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
  131. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js +43 -9
  132. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
  133. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
  134. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +2 -2
  135. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  136. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts +8 -1
  137. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  138. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js +114 -91
  139. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  140. package/dist/esm/tools/static-map-image-tool/buildStaticMapRequestUrl.d.ts +23 -0
  141. package/dist/esm/tools/static-map-image-tool/buildStaticMapRequestUrl.d.ts.map +1 -0
  142. package/dist/esm/tools/static-map-image-tool/buildStaticMapRequestUrl.js +78 -0
  143. package/dist/esm/tools/static-map-image-tool/buildStaticMapRequestUrl.js.map +1 -0
  144. package/dist/esm/utils/mapAppPayload.d.ts +15 -6
  145. package/dist/esm/utils/mapAppPayload.d.ts.map +1 -1
  146. package/dist/esm/utils/mapAppPayload.js +2 -1
  147. package/dist/esm/utils/mapAppPayload.js.map +1 -1
  148. package/dist/esm/utils/mapboxPublicToken.d.ts +5 -1
  149. package/dist/esm/utils/mapboxPublicToken.d.ts.map +1 -1
  150. package/dist/esm/utils/mapboxPublicToken.js +6 -1
  151. package/dist/esm/utils/mapboxPublicToken.js.map +1 -1
  152. package/dist/esm/utils/responseRef.d.ts +1 -1
  153. package/dist/esm/utils/responseRef.d.ts.map +1 -1
  154. package/dist/esm/utils/responseRef.js +1 -1
  155. package/dist/esm/utils/responseRef.js.map +1 -1
  156. package/dist/esm/utils/selfFetchRef.d.ts +24 -0
  157. package/dist/esm/utils/selfFetchRef.d.ts.map +1 -1
  158. package/dist/esm/utils/selfFetchRef.js +67 -0
  159. package/dist/esm/utils/selfFetchRef.js.map +1 -1
  160. package/dist/esm/utils/serverInstructions.js +1 -1
  161. package/dist/esm/utils/serverInstructions.js.map +1 -1
  162. package/dist/esm/version.json +3 -3
  163. package/package.json +1 -1
@@ -4,13 +4,17 @@ import { BaseTool } from '../BaseTool.js';
4
4
  import { ResourceReaderToolInputSchema } from './ResourceReaderTool.input.schema.js';
5
5
  import { ResourceReaderToolOutputSchema } from './ResourceReaderTool.output.schema.js';
6
6
  import { getResourceByUri } from '../../resources/resourceRegistry.js';
7
+ import { isSelfFetchRef } from '../../utils/selfFetchRef.js';
8
+ // Base64 grows a blob by about a third, so this keeps an image result under
9
+ // Claude Desktop's 1 MB tool-result cap (same limit as static_map_image_tool).
10
+ const BLOB_INLINE_LIMIT = 700 * 1024;
7
11
  /**
8
12
  * Tool for reading MCP resources via the tool interface.
9
13
  * This provides a fallback mechanism for clients that don't support the MCP resource API.
10
14
  */
11
15
  export class ResourceReaderTool extends BaseTool {
12
16
  name = 'resource_reader_tool';
13
- description = 'Reads an MCP resource by URI. This tool is a fallback for clients that do not support the native MCP resource API. Supports reading category lists and other Mapbox resources. Use "mapbox://categories" for default categories or "mapbox://categories/{language}" for localized versions (e.g., "mapbox://categories/ja" for Japanese).';
17
+ description = 'Reads an MCP resource by URI. This tool is a fallback for clients that do not support the native MCP resource API. Supports reading category lists and the mapbox:// refs other tools return (mapbox://temp/..., mapbox://response/..., mapbox://inline/..., mapbox://compute/...); pass a ref exactly as returned. mapbox://selffetch/... refs are not readable: pass them to render_map_tool in payload_refs, which fetches the data itself. Use "mapbox://categories" for default categories or "mapbox://categories/{language}" for localized versions (e.g., "mapbox://categories/ja" for Japanese).';
14
18
  annotations = {
15
19
  title: 'Resource Reader Tool',
16
20
  readOnlyHint: true,
@@ -49,6 +53,17 @@ export class ResourceReaderTool extends BaseTool {
49
53
  }
50
54
  }
51
55
  async execute(input, extra) {
56
+ if (isSelfFetchRef(input.uri)) {
57
+ return {
58
+ content: [
59
+ {
60
+ type: 'text',
61
+ text: `${input.uri} is not a readable resource. Pass it unchanged to render_map_tool in payload_refs; the map fetches its data itself.`
62
+ }
63
+ ],
64
+ isError: true
65
+ };
66
+ }
52
67
  // Find the resource by URI
53
68
  const resource = getResourceByUri(input.uri);
54
69
  if (!resource) {
@@ -86,17 +101,36 @@ export class ResourceReaderTool extends BaseTool {
86
101
  catch (validationError) {
87
102
  this.log('warning', `Output schema validation failed: ${validationError instanceof Error ? validationError.message : 'Unknown validation error'}`);
88
103
  }
89
- // Extract text or blob from the content using type guards
90
- let textContent;
91
- if ('text' in content && typeof content.text === 'string') {
92
- textContent = content.text;
93
- }
94
- else if ('blob' in content && typeof content.blob === 'string') {
95
- textContent = content.blob;
104
+ // A blob goes back once, not as base64 text plus a copy in
105
+ // structuredContent: an image the host can show, or a short note when
106
+ // it's too big to send (or isn't an image).
107
+ if ('blob' in content && typeof content.blob === 'string') {
108
+ const mimeType = content.mimeType ?? 'application/octet-stream';
109
+ const bytes = Math.floor((content.blob.length * 3) / 4);
110
+ const structuredContent = { uri: content.uri, mimeType };
111
+ if ((mimeType === 'image/png' || mimeType === 'image/jpeg') &&
112
+ bytes <= BLOB_INLINE_LIMIT) {
113
+ return {
114
+ content: [{ type: 'image', data: content.blob, mimeType }],
115
+ structuredContent,
116
+ isError: false
117
+ };
118
+ }
119
+ return {
120
+ content: [
121
+ {
122
+ type: 'text',
123
+ text: `${input.uri} holds ${mimeType} data (${Math.round(bytes / 1024)} KB), too large to return through this tool. For a static map, give the user the image link from static_map_image_tool's result, or call it again with a smaller size.`
124
+ }
125
+ ],
126
+ structuredContent,
127
+ isError: false
128
+ };
96
129
  }
97
- else {
130
+ if (!('text' in content) || typeof content.text !== 'string') {
98
131
  throw new Error('Resource content must contain either text or blob');
99
132
  }
133
+ const textContent = content.text;
100
134
  return {
101
135
  content: [
102
136
  {
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceReaderTool.js","sourceRoot":"","sources":["../../../../src/tools/resource-reader-tool/ResourceReaderTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResourceReaderTool.js","sourceRoot":"","sources":["../../../../src/tools/resource-reader-tool/ResourceReaderTool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchAndGeocodeTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/search-and-geocode-tool/SearchAndGeocodeTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EACL,uBAAuB,EAExB,MAAM,yCAAyC,CAAC;AAKjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAOnE,qBAAa,oBAAqB,SAAQ,kBAAkB,CAC1D,OAAO,2BAA2B,EAClC,OAAO,uBAAuB,CAC/B;IACC,IAAI,SAA6B;IACjC,WAAW,SACsvB;IACjwB,WAAW;;;;;;MAMT;gBACU,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;IAQhD,OAAO,CAAC,mBAAmB;cA6DX,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,EAClD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC;IAuJ1B;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;CA0CvB"}
1
+ {"version":3,"file":"SearchAndGeocodeTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/search-and-geocode-tool/SearchAndGeocodeTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EACL,uBAAuB,EAExB,MAAM,yCAAyC,CAAC;AAKjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAUnE,qBAAa,oBAAqB,SAAQ,kBAAkB,CAC1D,OAAO,2BAA2B,EAClC,OAAO,uBAAuB,CAC/B;IACC,IAAI,SAA6B;IACjC,WAAW,SACsvB;IACjwB,WAAW;;;;;;MAMT;gBACU,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;IAQhD,OAAO,CAAC,mBAAmB;cA6DX,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,EAClD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC;IAuJ1B;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;CA0CvB"}
@@ -6,7 +6,7 @@ import { SearchAndGeocodeInputSchema } from './SearchAndGeocodeTool.input.schema
6
6
  import { SearchBoxResponseSchema } from './SearchAndGeocodeTool.output.schema.js';
7
7
  import { buildSearchAndGeocodeRequestUrl } from './buildSearchAndGeocodeRequestUrl.js';
8
8
  import { renderHint } from '../../utils/storeMapPayload.js';
9
- import { buildSelfFetchRef } from '../../utils/selfFetchRef.js';
9
+ import { buildSelfFetchRef, searchSelfFetchProximity } from '../../utils/selfFetchRef.js';
10
10
  // API Documentation: https://docs.mapbox.com/api/search/search-box/#search-request
11
11
  export class SearchAndGeocodeTool extends MapboxApiBasedTool {
12
12
  name = 'search_and_geocode_tool';
@@ -206,7 +206,7 @@ export class SearchAndGeocodeTool extends MapboxApiBasedTool {
206
206
  const ref = buildSelfFetchRef('search', {
207
207
  q: input.q,
208
208
  language: input.language,
209
- proximity: input.proximity,
209
+ ...searchSelfFetchProximity(input, data),
210
210
  bbox: input.bbox,
211
211
  country: input.country,
212
212
  types: input.types,
@@ -1 +1 @@
1
- {"version":3,"file":"SearchAndGeocodeTool.js","sourceRoot":"","sources":["../../../../src/tools/search-and-geocode-tool/SearchAndGeocodeTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchAndGeocodeTool.js","sourceRoot":"","sources":["../../../../src/tools/search-and-geocode-tool/SearchAndGeocodeTool.ts"],"names":[],"mappings":"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"}
@@ -13,10 +13,17 @@ export declare class StaticMapImageTool extends MapboxApiBasedTool<typeof Static
13
13
  idempotentHint: boolean;
14
14
  openWorldHint: boolean;
15
15
  };
16
+ readonly meta: {
17
+ ui: {
18
+ resourceUri: string;
19
+ csp: {
20
+ resourceDomains: string[];
21
+ };
22
+ };
23
+ };
16
24
  constructor(params: {
17
25
  httpRequest: HttpRequest;
18
26
  });
19
- private encodeOverlay;
20
27
  protected execute(input: z.infer<typeof StaticMapImageInputSchema>, accessToken: string): Promise<CallToolResult>;
21
28
  }
22
29
  //# sourceMappingURL=StaticMapImageTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticMapImageTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/static-map-image-tool/StaticMapImageTool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAyBnE,qBAAa,kBAAmB,SAAQ,kBAAkB,CACxD,OAAO,yBAAyB,CACjC;IACC,IAAI,SAA2B;IAC/B,WAAW,SAC6Y;IACxZ,WAAW;;;;;;MAMT;gBAEU,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;IAOhD,OAAO,CAAC,aAAa;cAkDL,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EAChD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC;CAsE3B"}
1
+ {"version":3,"file":"StaticMapImageTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/static-map-image-tool/StaticMapImageTool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAqBnE,qBAAa,kBAAmB,SAAQ,kBAAkB,CACxD,OAAO,yBAAyB,CACjC;IACC,IAAI,SAA2B;IAC/B,WAAW,SAC6Y;IACxZ,WAAW;;;;;;MAMT;IAKF,QAAQ,CAAC,IAAI;;;;;;;MAKX;gBAEU,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;cAOhC,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EAChD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC;CAwI3B"}
@@ -1,26 +1,17 @@
1
1
  // Copyright (c) Mapbox, Inc.
2
2
  // Licensed under the MIT License.
3
- import { randomUUID, randomBytes } from 'node:crypto';
3
+ import { randomUUID } from 'node:crypto';
4
4
  import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
5
5
  import { StaticMapImageInputSchema } from './StaticMapImageTool.input.schema.js';
6
- import { temporaryResourceManager } from '../../utils/temporaryResourceManager.js';
7
- import { getOwnerKeyFromToken } from '../../utils/jwtUtils.js';
8
- // Images larger than this threshold are stored as temporary resources instead
6
+ import { buildResponseRef } from '../../utils/responseRef.js';
7
+ import { buildStaticMapRequestUrl, getStaticMapMimeType } from './buildStaticMapRequestUrl.js';
8
+ import { resolveMapboxPublicToken } from '../../utils/mapboxPublicToken.js';
9
+ import { getUiCapability, RESOURCE_MIME_TYPE } from '@modelcontextprotocol/ext-apps/server';
10
+ import { STATIC_MAP_VIEWER_URI, staticMapViewerCsp } from '../../resources/ui-apps/StaticMapViewerUIResource.js';
11
+ // Images larger than this threshold get a `mapbox://response/` ref instead
9
12
  // of being inlined as base64, to avoid exceeding Claude Desktop's 1MB tool
10
13
  // result limit. base64 adds ~33% overhead, so 700KB raw ≈ 933KB encoded.
11
14
  const IMAGE_INLINE_THRESHOLD = 700 * 1024; // 700KB
12
- // encodeURIComponent leaves (, ), !, ', and * unescaped (they're valid in a
13
- // URI component per RFC 3986's "unreserved" carve-out from the older
14
- // escape() behaviour). Every overlay value below is embedded inside a
15
- // path segment delimited by literal parentheses (e.g. `url-<value>(lon,lat)`,
16
- // `geojson(<value>)`), so a raw `)` in the value can terminate that segment
17
- // early from the Static Images API's own overlay-syntax parser's point of
18
- // view, even though this value already passed URL/JSON validation on our
19
- // side. Escape those characters explicitly so both parsers agree on where
20
- // the value actually ends.
21
- function encodeOverlayComponent(value) {
22
- return encodeURIComponent(value).replace(/[()!'*]/g, (c) => '%' + c.charCodeAt(0).toString(16).toUpperCase());
23
- }
24
15
  export class StaticMapImageTool extends MapboxApiBasedTool {
25
16
  name = 'static_map_image_tool';
26
17
  description = 'Generates a static map image from Mapbox Static Images API. Supports center coordinates, zoom level (0-22), image size (up to 1280x1280), various Mapbox styles, and overlays (markers, paths, GeoJSON). Returns PNG for vector styles, JPEG for raster-only styles. Use only when the user explicitly asks for a static image file — to show a map, use render_map_tool instead, which renders an interactive map.';
@@ -31,72 +22,35 @@ export class StaticMapImageTool extends MapboxApiBasedTool {
31
22
  idempotentHint: true,
32
23
  openWorldHint: true
33
24
  };
25
+ // MCP Apps hosts show the image at full width in this viewer instead of as
26
+ // a thumbnail. The result is the same either way, so hosts without MCP
27
+ // Apps still get the image item and the link.
28
+ meta = {
29
+ ui: {
30
+ resourceUri: STATIC_MAP_VIEWER_URI,
31
+ csp: staticMapViewerCsp(MapboxApiBasedTool.mapboxApiEndpoint)
32
+ }
33
+ };
34
34
  constructor(params) {
35
35
  super({
36
36
  inputSchema: StaticMapImageInputSchema,
37
37
  httpRequest: params.httpRequest
38
38
  });
39
39
  }
40
- encodeOverlay(overlay) {
41
- switch (overlay.type) {
42
- case 'marker': {
43
- const size = overlay.size === 'large' ? 'pin-l' : 'pin-s';
44
- let marker = size;
45
- if (overlay.label) {
46
- marker += `-${overlay.label}`;
47
- }
48
- if (overlay.color) {
49
- marker += `+${overlay.color}`;
50
- }
51
- return `${marker}(${overlay.longitude},${overlay.latitude})`;
52
- }
53
- case 'custom-marker': {
54
- const encodedUrl = encodeOverlayComponent(overlay.url);
55
- return `url-${encodedUrl}(${overlay.longitude},${overlay.latitude})`;
56
- }
57
- case 'path': {
58
- let path = `path-${overlay.strokeWidth}`;
59
- if (overlay.strokeColor) {
60
- path += `+${overlay.strokeColor}`;
61
- if (overlay.strokeOpacity !== undefined) {
62
- path += `-${overlay.strokeOpacity}`;
63
- }
64
- }
65
- if (overlay.fillColor) {
66
- path += `+${overlay.fillColor}`;
67
- if (overlay.fillOpacity !== undefined) {
68
- path += `-${overlay.fillOpacity}`;
69
- }
70
- }
71
- // URL encode the polyline to handle special characters
72
- return `${path}(${encodeOverlayComponent(overlay.encodedPolyline)})`;
73
- }
74
- case 'geojson': {
75
- const geojsonString = JSON.stringify(overlay.data);
76
- return `geojson(${encodeOverlayComponent(geojsonString)})`;
77
- }
78
- }
79
- }
80
40
  async execute(input, accessToken) {
81
- const { longitude: lng, latitude: lat } = input.center;
82
41
  const { width, height } = input.size;
83
- // Build overlay string
84
- let overlayString = '';
85
- if (input.overlays && input.overlays.length > 0) {
86
- const encodedOverlays = input.overlays.map((overlay) => {
87
- return this.encodeOverlay(overlay);
88
- });
89
- overlayString = encodedOverlays.join(',') + '/';
90
- }
91
- const density = input.highDensity ? '@2x' : '';
92
- const encodedStyle = input.style
93
- .split('/')
94
- .map(encodeURIComponent)
95
- .join('/');
96
- const publicUrl = `${MapboxApiBasedTool.mapboxApiEndpoint}styles/v1/${encodedStyle}/static/${overlayString}${lng},${lat},${input.zoom}/${width}x${height}${density}`;
97
- const url = `${publicUrl}?access_token=${accessToken}`;
42
+ const apiEndpoint = MapboxApiBasedTool.mapboxApiEndpoint;
43
+ // The input the returned image was rendered from: the 1x fallback below
44
+ // swaps it, so a mapbox://response/ ref renders the same image again.
45
+ let rendered = input;
46
+ const requested = buildStaticMapRequestUrl({
47
+ input,
48
+ accessToken,
49
+ apiEndpoint
50
+ });
51
+ let publicUrl = requested.publicUrl;
98
52
  // Fetch image
99
- const response = await this.httpRequest(url);
53
+ const response = await this.httpRequest(requested.url);
100
54
  if (!response.ok) {
101
55
  const errorMessage = await this.getErrorMessage(response);
102
56
  return {
@@ -104,29 +58,98 @@ export class StaticMapImageTool extends MapboxApiBasedTool {
104
58
  isError: true
105
59
  };
106
60
  }
107
- const buffer = await response.arrayBuffer();
108
- const isRasterStyle = input.style.includes('satellite');
109
- const mimeType = isRasterStyle ? 'image/jpeg' : 'image/png';
110
- // Use public URL (without credentials) to avoid leaking the access token
61
+ let buffer = await response.arrayBuffer();
62
+ // A 2x image is about three times the bytes of the same map at 1x (a
63
+ // 1000x800 streets map: 877KB vs 295KB). Rather than hand back a
64
+ // resource ref the host can't show (Codex showed no image at all),
65
+ // try the 1x image, which usually fits inline.
66
+ if (input.highDensity && buffer.byteLength > IMAGE_INLINE_THRESHOLD) {
67
+ const oneX = { ...input, highDensity: false };
68
+ const fallbackUrls = buildStaticMapRequestUrl({
69
+ input: oneX,
70
+ accessToken,
71
+ apiEndpoint
72
+ });
73
+ const fallback = await this.httpRequest(fallbackUrls.url);
74
+ if (fallback.ok) {
75
+ const fallbackBuffer = await fallback.arrayBuffer();
76
+ if (fallbackBuffer.byteLength < buffer.byteLength) {
77
+ buffer = fallbackBuffer;
78
+ rendered = oneX;
79
+ publicUrl = fallbackUrls.publicUrl;
80
+ }
81
+ }
82
+ }
83
+ const mimeType = getStaticMapMimeType(input.style);
84
+ // Hosts show the image from this result, but a model can't put it in its
85
+ // own reply, so it hands the user a URL instead or says "the map above"
86
+ // over nothing (Codex did both). Give it a link that works: the request
87
+ // URL with a public (pk.) token, never the
88
+ // access token used for the fetch (#201). The server's own
89
+ // MAPBOX_PUBLIC_TOKEN is only used when the caller runs on the server's
90
+ // own access token (a local install), so a hosted caller never gets it
91
+ // in their chat history. With no public token, say not to link the URL.
92
+ const inline = buffer.byteLength <= IMAGE_INLINE_THRESHOLD;
93
+ const publicToken = await resolveMapboxPublicToken({
94
+ accessToken,
95
+ apiEndpoint: MapboxApiBasedTool.mapboxApiEndpoint,
96
+ httpRequest: this.httpRequest,
97
+ allowEnvFallback: accessToken === MapboxApiBasedTool.mapboxAccessToken
98
+ });
99
+ const describedSize = `${width}x${height}${publicUrl.endsWith('@2x') ? ' @2x' : ''}`;
100
+ const attached = `Static map image (${describedSize}, ${input.style}) is attached to this result, which is where the host shows it to the user. `;
101
+ // A client that supports MCP Apps shows the image at full size in the
102
+ // viewer (see StaticMapViewerUIResource), so a link in the reply would
103
+ // show it twice. Clients that don't say so (or a stateless server that
104
+ // never saw their initialize) get the link text.
105
+ const imageUrl = publicToken
106
+ ? `${publicUrl}?access_token=${publicToken}`
107
+ : undefined;
108
+ const showsViewer = (inline || imageUrl !== undefined) &&
109
+ getUiCapability(this.activeServer?.server.getClientCapabilities())?.mimeTypes?.includes(RESOURCE_MIME_TYPE) === true;
110
+ const urlNote = showsViewer
111
+ ? `Static map image (${describedSize}, ${input.style}) is shown to the user at full size in this tool's map viewer, so don't embed or link it again in your reply.` +
112
+ (imageUrl
113
+ ? `\nIf the user asks for a link to the image, use this URL; it carries the account's public token: ${imageUrl}`
114
+ : '')
115
+ : imageUrl
116
+ ? (inline
117
+ ? attached + "Your reply can't include that attachment, and "
118
+ : 'The image is not attached, and ') +
119
+ // Neither Claude's UI nor Codex renders images from other domains
120
+ // in a reply (both left a broken image), so ask for a link.
121
+ "chat interfaces generally don't show images from external URLs, so don't embed this URL as a Markdown image. " +
122
+ "Give it as a link instead; it carries the account's public token, so it opens in a browser.\n" +
123
+ `Image URL: ${imageUrl}`
124
+ : inline
125
+ ? attached +
126
+ "Don't link or embed the request URL below: it has no access token, so it won't load for the user. " +
127
+ 'If they ask to see the map again, point them to this result or call this tool again.\n' +
128
+ `Request URL: ${publicUrl}`
129
+ : `Request URL (it has no access token, so don't link or embed it): ${publicUrl}`;
111
130
  const content = [
112
- { type: 'text', text: publicUrl }
131
+ { type: 'text', text: urlNote }
113
132
  ];
114
- if (buffer.byteLength > IMAGE_INLINE_THRESHOLD) {
115
- // Image is too large to inline safely — store as temporary resource
116
- const resourceId = randomBytes(16).toString('hex');
117
- const resourceUri = `mapbox://temp/static-map-${resourceId}`;
118
- const base64Data = Buffer.from(buffer).toString('base64');
119
- temporaryResourceManager.create({
120
- id: resourceId,
121
- uri: resourceUri,
122
- data: base64Data,
123
- metadata: { toolName: this.name, size: buffer.byteLength },
124
- mimeType,
125
- owner: getOwnerKeyFromToken(accessToken)
133
+ // Say so when the 1x fallback replaced the @2x image the caller asked
134
+ // for, so the model can tell the user. Its own item, so the first one
135
+ // still starts with the size (the viewer's alt text).
136
+ if (rendered !== input) {
137
+ content.push({
138
+ type: 'text',
139
+ text: 'The @2x image was too large to send, so this is the 1x image. For @2x, call this tool again with a smaller size.'
140
+ });
141
+ }
142
+ if (!inline) {
143
+ // Image is too large to inline safely. The ref carries the request's
144
+ // inputs, not the image, so any server process can answer a later
145
+ // read by rendering it again (see responseRef.ts).
146
+ const resourceUri = buildResponseRef({
147
+ tool: 'static-map',
148
+ input: rendered
126
149
  });
127
150
  content.push({
128
151
  type: 'text',
129
- text: `⚠️ Image (${Math.round(buffer.byteLength / 1024)}KB) stored as temporary resource.\nResource URI: ${resourceUri}\nTTL: 30 minutes`
152
+ text: `⚠️ Image (${Math.round(buffer.byteLength / 1024)}KB) is too large to return inline.\nRead ${resourceUri} with the MCP resource API to get it. Reading it renders the same image again.`
130
153
  });
131
154
  }
132
155
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"StaticMapImageTool.js","sourceRoot":"","sources":["../../../../src/tools/static-map-image-tool/StaticMapImageTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StaticMapImageTool.js","sourceRoot":"","sources":["../../../../src/tools/static-map-image-tool/StaticMapImageTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { z } from 'zod';
2
+ import type { StaticMapImageInputSchema, OverlaySchema } from './StaticMapImageTool.input.schema.js';
3
+ export declare function encodeOverlayComponent(value: string): string;
4
+ export declare function encodeOverlay(overlay: z.infer<typeof OverlaySchema>): string;
5
+ export declare function getStaticMapMimeType(style: string): 'image/jpeg' | 'image/png';
6
+ export interface StaticMapRequestUrls {
7
+ /** The request URL without the access token, safe to show the model. */
8
+ publicUrl: string;
9
+ /** The same URL with the access token, for the request itself. */
10
+ url: string;
11
+ }
12
+ /**
13
+ * Builds the Static Images API request for a given input. Shared by
14
+ * StaticMapImageTool and ToolResponseResource, which fetches a large image
15
+ * again from its `mapbox://response/` ref. The API renders the same image
16
+ * for the same parameters, so the two requests return the same bytes.
17
+ */
18
+ export declare function buildStaticMapRequestUrl(params: {
19
+ input: z.infer<typeof StaticMapImageInputSchema>;
20
+ accessToken: string;
21
+ apiEndpoint: string;
22
+ }): StaticMapRequestUrls;
23
+ //# sourceMappingURL=buildStaticMapRequestUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildStaticMapRequestUrl.d.ts","sourceRoot":"","sources":["../../../../src/tools/static-map-image-tool/buildStaticMapRequestUrl.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,yBAAyB,EACzB,aAAa,EACd,MAAM,sCAAsC,CAAC;AAW9C,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,MAAM,CAgD5E;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GACZ,YAAY,GAAG,WAAW,CAE5B;AAED,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,oBAAoB,CAgBvB"}
@@ -0,0 +1,78 @@
1
+ // Copyright (c) Mapbox, Inc.
2
+ // Licensed under the MIT License.
3
+ // encodeURIComponent leaves (, ), !, ', and * unescaped (they're valid in a
4
+ // URI component per RFC 3986's "unreserved" carve-out from the older
5
+ // escape() behaviour). Every overlay value below is embedded inside a
6
+ // path segment delimited by literal parentheses (e.g. `url-<value>(lon,lat)`,
7
+ // `geojson(<value>)`), so a raw `)` in the value can terminate that segment
8
+ // early from the Static Images API's own overlay-syntax parser's point of
9
+ // view, even though this value already passed URL/JSON validation on our
10
+ // side. Escape those characters explicitly so both parsers agree on where
11
+ // the value actually ends.
12
+ export function encodeOverlayComponent(value) {
13
+ return encodeURIComponent(value).replace(/[()!'*]/g, (c) => '%' + c.charCodeAt(0).toString(16).toUpperCase());
14
+ }
15
+ export function encodeOverlay(overlay) {
16
+ switch (overlay.type) {
17
+ case 'marker': {
18
+ const size = overlay.size === 'large' ? 'pin-l' : 'pin-s';
19
+ let marker = size;
20
+ if (overlay.label) {
21
+ marker += `-${overlay.label}`;
22
+ }
23
+ if (overlay.color) {
24
+ marker += `+${overlay.color}`;
25
+ }
26
+ return `${marker}(${overlay.longitude},${overlay.latitude})`;
27
+ }
28
+ case 'custom-marker': {
29
+ const encodedUrl = encodeOverlayComponent(overlay.url);
30
+ return `url-${encodedUrl}(${overlay.longitude},${overlay.latitude})`;
31
+ }
32
+ case 'path': {
33
+ let path = `path-${overlay.strokeWidth}`;
34
+ if (overlay.strokeColor) {
35
+ path += `+${overlay.strokeColor}`;
36
+ if (overlay.strokeOpacity !== undefined) {
37
+ path += `-${overlay.strokeOpacity}`;
38
+ }
39
+ }
40
+ if (overlay.fillColor) {
41
+ path += `+${overlay.fillColor}`;
42
+ if (overlay.fillOpacity !== undefined) {
43
+ path += `-${overlay.fillOpacity}`;
44
+ }
45
+ }
46
+ // URL encode the polyline to handle special characters
47
+ return `${path}(${encodeOverlayComponent(overlay.encodedPolyline)})`;
48
+ }
49
+ case 'geojson': {
50
+ const geojsonString = JSON.stringify(overlay.data);
51
+ return `geojson(${encodeOverlayComponent(geojsonString)})`;
52
+ }
53
+ }
54
+ }
55
+ export function getStaticMapMimeType(style) {
56
+ return style.includes('satellite') ? 'image/jpeg' : 'image/png';
57
+ }
58
+ /**
59
+ * Builds the Static Images API request for a given input. Shared by
60
+ * StaticMapImageTool and ToolResponseResource, which fetches a large image
61
+ * again from its `mapbox://response/` ref. The API renders the same image
62
+ * for the same parameters, so the two requests return the same bytes.
63
+ */
64
+ export function buildStaticMapRequestUrl(params) {
65
+ const { input, accessToken, apiEndpoint } = params;
66
+ const { longitude: lng, latitude: lat } = input.center;
67
+ const { width, height } = input.size;
68
+ let overlayString = '';
69
+ if (input.overlays && input.overlays.length > 0) {
70
+ overlayString = input.overlays.map(encodeOverlay).join(',') + '/';
71
+ }
72
+ const density = input.highDensity ? '@2x' : '';
73
+ const encodedStyle = input.style.split('/').map(encodeURIComponent).join('/');
74
+ const publicUrl = `${apiEndpoint}styles/v1/${encodedStyle}/static/${overlayString}${lng},${lat},${input.zoom}/${width}x${height}${density}`;
75
+ const url = `${publicUrl}?access_token=${accessToken}`;
76
+ return { publicUrl, url };
77
+ }
78
+ //# sourceMappingURL=buildStaticMapRequestUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildStaticMapRequestUrl.js","sourceRoot":"","sources":["../../../../src/tools/static-map-image-tool/buildStaticMapRequestUrl.ts"],"names":[],"mappings":"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"}