@mapbox/mcp-server 0.8.3 → 0.9.2-dev

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 (210) hide show
  1. package/README.md +37 -45
  2. package/dist/commonjs/index.js +19 -2
  3. package/dist/commonjs/index.js.map +1 -1
  4. package/dist/commonjs/prompts/SearchAlongRoutePrompt.js +6 -6
  5. package/dist/commonjs/prompts/index.d.ts +41 -0
  6. package/dist/commonjs/prompts/index.d.ts.map +1 -0
  7. package/dist/commonjs/prompts/index.js +56 -0
  8. package/dist/commonjs/prompts/index.js.map +1 -0
  9. package/dist/commonjs/resources/BaseResource.d.ts +1 -1
  10. package/dist/commonjs/resources/BaseResource.d.ts.map +1 -1
  11. package/dist/commonjs/resources/BaseResource.js +12 -2
  12. package/dist/commonjs/resources/BaseResource.js.map +1 -1
  13. package/dist/commonjs/resources/index.d.ts +10 -0
  14. package/dist/commonjs/resources/index.d.ts.map +1 -0
  15. package/dist/commonjs/resources/index.js +48 -0
  16. package/dist/commonjs/resources/index.js.map +1 -0
  17. package/dist/commonjs/resources/resourceRegistry.d.ts +4 -1
  18. package/dist/commonjs/resources/resourceRegistry.d.ts.map +1 -1
  19. package/dist/commonjs/resources/resourceRegistry.js +7 -1
  20. package/dist/commonjs/resources/resourceRegistry.js.map +1 -1
  21. package/dist/commonjs/resources/temporary/TemporaryDataResource.d.ts +13 -0
  22. package/dist/commonjs/resources/temporary/TemporaryDataResource.d.ts.map +1 -0
  23. package/dist/commonjs/resources/temporary/TemporaryDataResource.js +41 -0
  24. package/dist/commonjs/resources/temporary/TemporaryDataResource.js.map +1 -0
  25. package/dist/commonjs/resources/ui-apps/StaticMapUIResource.d.ts +15 -0
  26. package/dist/commonjs/resources/ui-apps/StaticMapUIResource.d.ts.map +1 -0
  27. package/dist/commonjs/resources/ui-apps/StaticMapUIResource.js +262 -0
  28. package/dist/commonjs/resources/ui-apps/StaticMapUIResource.js.map +1 -0
  29. package/dist/commonjs/resources/version/VersionResource.d.ts +16 -0
  30. package/dist/commonjs/resources/version/VersionResource.d.ts.map +1 -0
  31. package/dist/commonjs/resources/version/VersionResource.js +33 -0
  32. package/dist/commonjs/resources/version/VersionResource.js.map +1 -0
  33. package/dist/commonjs/tools/BaseTool.d.ts +10 -0
  34. package/dist/commonjs/tools/BaseTool.d.ts.map +1 -1
  35. package/dist/commonjs/tools/BaseTool.js +9 -4
  36. package/dist/commonjs/tools/BaseTool.js.map +1 -1
  37. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  38. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +2 -2
  39. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +4 -0
  40. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  41. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +17846 -2030
  42. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -1
  43. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js +73 -38
  44. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -1
  45. package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  46. package/dist/commonjs/tools/directions-tool/DirectionsTool.js +59 -2
  47. package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
  48. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +32 -32
  49. package/dist/commonjs/tools/index.d.ts +82 -0
  50. package/dist/commonjs/tools/index.d.ts.map +1 -0
  51. package/dist/commonjs/tools/index.js +142 -0
  52. package/dist/commonjs/tools/index.js.map +1 -0
  53. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  54. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js +21 -1
  55. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  56. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.d.ts +25 -0
  57. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.d.ts.map +1 -0
  58. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.input.schema.d.ts +25 -0
  59. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.input.schema.d.ts.map +1 -0
  60. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.input.schema.js +30 -0
  61. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.input.schema.js.map +1 -0
  62. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.js +193 -0
  63. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.js.map +1 -0
  64. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.output.schema.d.ts +296 -0
  65. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.output.schema.d.ts.map +1 -0
  66. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.output.schema.js +55 -0
  67. package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.output.schema.js.map +1 -0
  68. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +4 -4
  69. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +350 -350
  70. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
  71. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +4 -4
  72. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +4 -0
  73. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  74. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +186 -186
  75. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts +9 -0
  76. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  77. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +12 -12
  78. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js +19 -24
  79. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  80. package/dist/commonjs/tools/toolRegistry.d.ts +3 -3
  81. package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
  82. package/dist/commonjs/tools/toolRegistry.js +2 -2
  83. package/dist/commonjs/tools/toolRegistry.js.map +1 -1
  84. package/dist/commonjs/utils/index.d.ts +35 -0
  85. package/dist/commonjs/utils/index.d.ts.map +1 -0
  86. package/dist/commonjs/utils/index.js +48 -0
  87. package/dist/commonjs/utils/index.js.map +1 -0
  88. package/dist/commonjs/utils/temporaryResourceManager.d.ts +51 -0
  89. package/dist/commonjs/utils/temporaryResourceManager.d.ts.map +1 -0
  90. package/dist/commonjs/utils/temporaryResourceManager.js +92 -0
  91. package/dist/commonjs/utils/temporaryResourceManager.js.map +1 -0
  92. package/dist/commonjs/version.json +4 -4
  93. package/dist/esm/index.js +19 -2
  94. package/dist/esm/index.js.map +1 -1
  95. package/dist/esm/prompts/SearchAlongRoutePrompt.js +6 -6
  96. package/dist/esm/prompts/index.d.ts +41 -0
  97. package/dist/esm/prompts/index.d.ts.map +1 -0
  98. package/dist/esm/prompts/index.js +47 -0
  99. package/dist/esm/prompts/index.js.map +1 -0
  100. package/dist/esm/resources/BaseResource.d.ts +1 -1
  101. package/dist/esm/resources/BaseResource.d.ts.map +1 -1
  102. package/dist/esm/resources/BaseResource.js +12 -2
  103. package/dist/esm/resources/BaseResource.js.map +1 -1
  104. package/dist/esm/resources/index.d.ts +10 -0
  105. package/dist/esm/resources/index.d.ts.map +1 -0
  106. package/dist/esm/resources/index.js +41 -0
  107. package/dist/esm/resources/index.js.map +1 -0
  108. package/dist/esm/resources/resourceRegistry.d.ts +4 -1
  109. package/dist/esm/resources/resourceRegistry.d.ts.map +1 -1
  110. package/dist/esm/resources/resourceRegistry.js +7 -1
  111. package/dist/esm/resources/resourceRegistry.js.map +1 -1
  112. package/dist/esm/resources/temporary/TemporaryDataResource.d.ts +13 -0
  113. package/dist/esm/resources/temporary/TemporaryDataResource.d.ts.map +1 -0
  114. package/dist/esm/resources/temporary/TemporaryDataResource.js +37 -0
  115. package/dist/esm/resources/temporary/TemporaryDataResource.js.map +1 -0
  116. package/dist/esm/resources/ui-apps/StaticMapUIResource.d.ts +15 -0
  117. package/dist/esm/resources/ui-apps/StaticMapUIResource.d.ts.map +1 -0
  118. package/dist/esm/resources/ui-apps/StaticMapUIResource.js +258 -0
  119. package/dist/esm/resources/ui-apps/StaticMapUIResource.js.map +1 -0
  120. package/dist/esm/resources/version/VersionResource.d.ts +16 -0
  121. package/dist/esm/resources/version/VersionResource.d.ts.map +1 -0
  122. package/dist/esm/resources/version/VersionResource.js +29 -0
  123. package/dist/esm/resources/version/VersionResource.js.map +1 -0
  124. package/dist/esm/tools/BaseTool.d.ts +10 -0
  125. package/dist/esm/tools/BaseTool.d.ts.map +1 -1
  126. package/dist/esm/tools/BaseTool.js +9 -4
  127. package/dist/esm/tools/BaseTool.js.map +1 -1
  128. package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  129. package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +2 -2
  130. package/dist/esm/tools/category-search-tool/CategorySearchTool.js +4 -0
  131. package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  132. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +17846 -2030
  133. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -1
  134. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js +73 -38
  135. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -1
  136. package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  137. package/dist/esm/tools/directions-tool/DirectionsTool.js +59 -2
  138. package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
  139. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +32 -32
  140. package/dist/esm/tools/index.d.ts +82 -0
  141. package/dist/esm/tools/index.d.ts.map +1 -0
  142. package/dist/esm/tools/index.js +114 -0
  143. package/dist/esm/tools/index.js.map +1 -0
  144. package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  145. package/dist/esm/tools/isochrone-tool/IsochroneTool.js +21 -1
  146. package/dist/esm/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  147. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.d.ts +25 -0
  148. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.d.ts.map +1 -0
  149. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.input.schema.d.ts +25 -0
  150. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.input.schema.d.ts.map +1 -0
  151. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.input.schema.js +24 -0
  152. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.input.schema.js.map +1 -0
  153. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.js +189 -0
  154. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.js.map +1 -0
  155. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.output.schema.d.ts +296 -0
  156. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.output.schema.d.ts.map +1 -0
  157. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.output.schema.js +52 -0
  158. package/dist/esm/tools/place-details-tool/PlaceDetailsTool.output.schema.js.map +1 -0
  159. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +4 -4
  160. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +350 -350
  161. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
  162. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +4 -4
  163. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +4 -0
  164. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  165. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +186 -186
  166. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts +9 -0
  167. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  168. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +12 -12
  169. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js +19 -24
  170. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  171. package/dist/esm/tools/toolRegistry.d.ts +3 -3
  172. package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
  173. package/dist/esm/tools/toolRegistry.js +2 -2
  174. package/dist/esm/tools/toolRegistry.js.map +1 -1
  175. package/dist/esm/utils/index.d.ts +35 -0
  176. package/dist/esm/utils/index.d.ts.map +1 -0
  177. package/dist/esm/utils/index.js +38 -0
  178. package/dist/esm/utils/index.js.map +1 -0
  179. package/dist/esm/utils/temporaryResourceManager.d.ts +51 -0
  180. package/dist/esm/utils/temporaryResourceManager.d.ts.map +1 -0
  181. package/dist/esm/utils/temporaryResourceManager.js +88 -0
  182. package/dist/esm/utils/temporaryResourceManager.js.map +1 -0
  183. package/dist/esm/version.json +4 -4
  184. package/package.json +55 -9
  185. package/patches/@modelcontextprotocol+sdk+1.27.1.patch +33 -0
  186. package/dist/commonjs/tools/version-tool/VersionTool.d.ts +0 -18
  187. package/dist/commonjs/tools/version-tool/VersionTool.d.ts.map +0 -1
  188. package/dist/commonjs/tools/version-tool/VersionTool.input.schema.d.ts +0 -3
  189. package/dist/commonjs/tools/version-tool/VersionTool.input.schema.d.ts.map +0 -1
  190. package/dist/commonjs/tools/version-tool/VersionTool.input.schema.js +0 -8
  191. package/dist/commonjs/tools/version-tool/VersionTool.input.schema.js.map +0 -1
  192. package/dist/commonjs/tools/version-tool/VersionTool.js +0 -68
  193. package/dist/commonjs/tools/version-tool/VersionTool.js.map +0 -1
  194. package/dist/commonjs/tools/version-tool/VersionTool.output.schema.d.ts +0 -22
  195. package/dist/commonjs/tools/version-tool/VersionTool.output.schema.d.ts.map +0 -1
  196. package/dist/commonjs/tools/version-tool/VersionTool.output.schema.js +0 -15
  197. package/dist/commonjs/tools/version-tool/VersionTool.output.schema.js.map +0 -1
  198. package/dist/esm/tools/version-tool/VersionTool.d.ts +0 -18
  199. package/dist/esm/tools/version-tool/VersionTool.d.ts.map +0 -1
  200. package/dist/esm/tools/version-tool/VersionTool.input.schema.d.ts +0 -3
  201. package/dist/esm/tools/version-tool/VersionTool.input.schema.d.ts.map +0 -1
  202. package/dist/esm/tools/version-tool/VersionTool.input.schema.js +0 -5
  203. package/dist/esm/tools/version-tool/VersionTool.input.schema.js.map +0 -1
  204. package/dist/esm/tools/version-tool/VersionTool.js +0 -64
  205. package/dist/esm/tools/version-tool/VersionTool.js.map +0 -1
  206. package/dist/esm/tools/version-tool/VersionTool.output.schema.d.ts +0 -22
  207. package/dist/esm/tools/version-tool/VersionTool.output.schema.d.ts.map +0 -1
  208. package/dist/esm/tools/version-tool/VersionTool.output.schema.js +0 -12
  209. package/dist/esm/tools/version-tool/VersionTool.output.schema.js.map +0 -1
  210. package/patches/@modelcontextprotocol+sdk+1.25.3.patch +0 -66
package/README.md CHANGED
@@ -47,10 +47,11 @@ For more information about Mapbox access tokens, see the [Mapbox documentation o
47
47
  For detailed setup instructions for different integrations, refer to the following guides:
48
48
 
49
49
  - [Claude Desktop Setup](./docs/claude-desktop-setup.md) - Instructions for configuring Claude Desktop to work with this MCP server
50
- - [Goose Setup](./docs/goose-setup.md) - Setting up Goose AI agent framework with MCP-UI support
50
+ - [Goose Setup](./docs/goose-setup.md) - Setting up Goose AI agent framework
51
51
  - [VS Code Setup](./docs/vscode-setup.md) - Setting up a development environment in Visual Studio Code
52
52
  - [Cursor AI IDE Setup](./docs/cursor-setup.md) - Setting up a development environment in Cursor AI IDE
53
53
  - [Smolagents Integration](./docs/using-mcp-with-smolagents/README.md) - Example showing how to connect Smolagents AI agents to Mapbox's tools
54
+ - **[Importing Tools Directly](./docs/importing-tools.md)** - Use Mapbox tools in your own applications without running the MCP server
54
55
 
55
56
  ## Example Prompts
56
57
 
@@ -132,57 +133,24 @@ Access the complete list of available category IDs for use with the category sea
132
133
  - **Clients with native MCP resource support**: Use the `resources/read` MCP protocol method
133
134
  - **Clients without resource support**: Use the `resource_reader_tool` with the resource URI
134
135
 
135
- ## MCP-UI Support
136
+ ## Rich Map Previews (MCP Apps)
136
137
 
137
- This MCP server supports **MCP-UI**, an open specification that allows compatible clients to render interactive UI elements like embedded iframes. This provides a richer visual experience while maintaining full backwards compatibility with clients that don't support MCP-UI.
138
+ The `static_map_image_tool` provides an interactive map preview panel in compatible clients, in addition to the base64 image that all clients receive.
138
139
 
139
- ### What is MCP-UI?
140
+ This server implements the **MCP Apps** protocol (`@modelcontextprotocol/ext-apps`), which renders a self-contained HTML app panel directly inside the chat. Supported clients show an interactive map with a Fullscreen toggle:
140
141
 
141
- MCP-UI enables tools to return interactive UI resources alongside their standard output. Compatible clients can render these as embedded iframes, while clients without MCP-UI support simply ignore them and use the standard output.
142
+ - **Claude Desktop**
143
+ - **VS Code with GitHub Copilot** ✅
144
+ - **Claude Code** ✅
145
+ - **[Goose](https://github.com/block/goose)** ✅
142
146
 
143
- ### Supported Tools
147
+ All clients receive the base64-encoded map image regardless of protocol support — interactive previews are a progressive enhancement on top of the standard image response.
144
148
 
145
- - **Static Map Image Tool**: Returns both image data and an embeddable iframe URL for inline map visualization
149
+ ### Legacy: MCP-UI
146
150
 
147
- ### Benefits
151
+ This server also retains support for **MCP-UI** (`@mcp-ui/server`), an earlier open specification for embedded iframe previews. MCP Apps is the recommended protocol; MCP-UI support is kept for backwards compatibility.
148
152
 
149
- - **Enhanced Experience**: Compatible clients (e.g., Goose) can display maps inline without leaving the chat
150
- - **Backwards Compatible**: Non-supporting clients (e.g., Claude Desktop) continue working unchanged
151
- - **No Configuration Required**: MCP-UI is enabled by default
152
-
153
- ### Configuration
154
-
155
- MCP-UI is **enabled by default**. To disable it:
156
-
157
- **Via Environment Variable:**
158
-
159
- ```bash
160
- ENABLE_MCP_UI=false npm run build
161
- ```
162
-
163
- **Via Command-Line Flag:**
164
-
165
- ```bash
166
- node dist/esm/index.js --disable-mcp-ui
167
- ```
168
-
169
- **In Claude Desktop config:**
170
-
171
- ```json
172
- {
173
- "mcpServers": {
174
- "mapbox": {
175
- "command": "npx",
176
- "args": ["-y", "@mapbox/mcp-server", "--disable-mcp-ui"],
177
- "env": {
178
- "MAPBOX_ACCESS_TOKEN": "your_token_here"
179
- }
180
- }
181
- }
182
- }
183
- ```
184
-
185
- **For more detailed information**, including compatible clients, technical implementation details, and troubleshooting, see the [MCP-UI documentation](./docs/mcp-ui.md).
153
+ MCP-UI is enabled by default. To disable it, pass `--disable-mcp-ui` as a command-line flag or set `ENABLE_MCP_UI=false`. See the [MCP-UI documentation](./docs/mcp-ui.md) for details.
186
154
 
187
155
  #### CLIENT_NEEDS_RESOURCE_FALLBACK
188
156
 
@@ -479,6 +447,30 @@ npx plop create-tool
479
447
  # provide tool name without suffix (e.g. Search)
480
448
  ```
481
449
 
450
+ ## Releasing a New Version
451
+
452
+ ```sh
453
+ # 1. Bump version in package.json
454
+ npm version <new-version> --no-git-tag-version
455
+
456
+ # 2. Sync version to manifest.json and server.json
457
+ npm run sync-manifest
458
+
459
+ # 3. Prepare CHANGELOG (replaces "Unreleased" with version and date)
460
+ npm run changelog:prepare-release <new-version>
461
+
462
+ # 4. Update package-lock.json
463
+ npm install
464
+
465
+ # 5. Review changes, then commit and tag
466
+ git add package.json package-lock.json manifest.json server.json CHANGELOG.md
467
+ git commit -m "Release v<new-version>"
468
+ git tag v<new-version>
469
+ git push && git push --tags
470
+ ```
471
+
472
+ **Important**: The publisher workflow validates that `package.json` and `server.json` versions match the release version. Skipping the version bump or manifest sync will cause publish failures.
473
+
482
474
  ## OpenTelemetry Tracing
483
475
 
484
476
  This MCP server includes comprehensive OpenTelemetry tracing for production observability:
@@ -12,6 +12,7 @@ const node_fs_2 = require("node:fs");
12
12
  const api_1 = require("@opentelemetry/api");
13
13
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
14
14
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
15
+ const server_1 = require("@modelcontextprotocol/ext-apps/server");
15
16
  const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
16
17
  const toolConfig_js_1 = require("./config/toolConfig.js");
17
18
  const toolRegistry_js_1 = require("./tools/toolRegistry.js");
@@ -85,8 +86,24 @@ const server = new mcp_js_1.McpServer({
85
86
  enabledCoreTools.forEach((tool) => {
86
87
  tool.installTo(server);
87
88
  });
88
- // Register all resources to the server
89
- allResources.forEach((resource) => {
89
+ // Separate MCP Apps UI resources from regular resources
90
+ const uiResources = allResources.filter((r) => r.uri.startsWith('ui://'));
91
+ const regularResources = allResources.filter((r) => !r.uri.startsWith('ui://'));
92
+ // Register MCP Apps UI resources using registerAppResource
93
+ // IMPORTANT: Use RESOURCE_MIME_TYPE which is "text/html;profile=mcp-app"
94
+ // This tells clients (like Claude Desktop) that this is an MCP App
95
+ uiResources.forEach((resource) => {
96
+ (0, server_1.registerAppResource)(
97
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
+ server, resource.name, resource.uri,
99
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
100
+ { mimeType: server_1.RESOURCE_MIME_TYPE, description: resource.description }, async () => {
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ return await resource.read(resource.uri, {});
103
+ });
104
+ });
105
+ // Register regular resources using standard registration
106
+ regularResources.forEach((resource) => {
90
107
  resource.installTo(server);
91
108
  });
92
109
  // Register prompt handlers
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;AAElC,uDAAuD;AACvD,oFAAoF;AACpF,yCAAqC;AACrC,qCAAuC;AACvC,yCAAiC;AACjC,qCAAqC;AACrC,4CAAoD;AAEpD,oEAAoE;AACpE,wEAAiF;AACjF,iEAG4C;AAC5C,0DAA8E;AAC9E,6DAIiC;AACjC,yEAAkE;AAClE,mEAA6E;AAC7E,6DAAyD;AACzD,mDAK4B;AAE5B,uEAAuE;AACvE,yFAAyF;AACzF,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,YAAY,GAAiB,IAAI,CAAC;AACtC,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,IAAI,IAAA,oBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,2DAA2D;QAC3D,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAA,oBAAQ,EAAC,OAAO,CAAC,CAAC;QAEjC,qDAAqD;QACrD,uFAAuF;QACvF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACzB,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,IAAA,gCAAc,GAAE,CAAC;AAErC,kDAAkD;AAClD,MAAM,MAAM,GAAG,IAAA,uCAAuB,GAAE,CAAC;AAEzC,8CAA8C;AAC9C,0DAA0D;AAC1D,MAAM,SAAS,GAAG,IAAA,8BAAY,GAAE,CAAC;AACjC,MAAM,gBAAgB,GAAG,IAAA,qCAAmB,GAAE,CAAC;AAC/C,MAAM,qBAAqB,GAAG,IAAA,0CAAwB,GAAE,CAAC;AAEzD,MAAM,gBAAgB,GAAG,IAAA,2BAAW,EAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACxD,MAAM,uBAAuB,GAAG,IAAA,2BAAW,EAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AACtE,MAAM,4BAA4B,GAAG,IAAA,2BAAW,EAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAEhF,oBAAoB;AACpB,MAAM,YAAY,GAAG,IAAA,qCAAe,GAAE,CAAC;AAEvC,uBAAuB;AACvB,MAAM,MAAM,GAAG,IAAI,kBAAS,CAC1B;IACE,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,KAAK,EAAE;QACL;YACE,GAAG,EAAE,4nIAA4nI;YACjoI,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,KAAK,EAAE,OAAO;SACf;QACD;YACE,GAAG,EAAE,40IAA40I;YACj1I,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,KAAK,EAAE,MAAM;SACd;KACF;CACF,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE;YACL,WAAW,EAAE,IAAI,CAAC,gGAAgG;SACnH;QACD,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;KACZ;CACF,CACF,CAAC;AAEF,6CAA6C;AAC7C,6EAA6E;AAC7E,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,uCAAuC;AACvC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;IAChC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,mCAAwB,EAAE,KAAK,IAAI,EAAE;IACnE,MAAM,UAAU,GAAG,IAAA,iCAAa,GAAE,CAAC;IACnC,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;KAC1D,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,yEAAyE;AACzE,6GAA6G;AAC7G,qEAAqE;AACrE,8DAA8D;AAC7D,MAAM,CAAC,MAAc,CAAC,iBAAiB,CACtC,iCAAsB,EACtB,KAAK,EAAE,OAAY,EAAE,EAAE;IACrB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,MAAM,MAAM,GAAG,IAAA,mCAAe,EAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,2CAA2C;IAC3C,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,mDAAmD;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE7C,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ;KACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,uDAAuD;IACvD,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,IAAA,8BAAiB,GAAE,CAAC;YAC1B,kBAAkB,GAAG,IAAA,iCAAoB,GAAE,CAAC;YAE5C,wFAAwF;YACxF,IAAI,kBAAkB,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE;oBAC/C,UAAU,EAAE;wBACV,kBAAkB,EAAE,OAAO;wBAC3B,oBAAoB,EAAE,IAAA,oBAAU,EAAC,OAAO,CAAC;wBACzC,oBAAoB,EAAE,cAAc;wBACpC,gBAAgB,EAAE,aAAa;qBAChC;iBACF,CAAC,CAAC;gBAEH,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;oBACnC,IAAI,CAAC,SAAS,CAAC;wBACb,IAAI,EAAE,oBAAc,CAAC,KAAK;wBAC1B,OAAO,EAAE,YAAY,CAAC,OAAO;qBAC9B,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;oBACnD,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC3D,CAAC;qBAAM,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,8EAA8E;oBAC9E,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;oBAC/C,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;gBAC/C,CAAC;gBAED,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBAC/B,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAChG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG;YACpB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,SAAS;YAC9D,WAAW,EACT,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,6BAA6B;SACjE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/B,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,6CAA6C,aAAa,CAAC,QAAQ,cAAc,aAAa,CAAC,WAAW,EAAE;SACnH,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/B,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,iCAAiC;SACxC,CAAC,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,8BAA8B,YAAY,CAAC,OAAO,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/B,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,UAAU,cAAc,+BAA+B,OAAO,EAAE;SACvE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;QACpC,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACxE,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;QACpD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAChD,2BAA2B,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;QACpE,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACtD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;KAC/B,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAC/B,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;KAC/C,CAAC,CAAC;IAEH,mEAAmE;IACnE,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,oEAAoE;IACpE,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAEjE,2CAA2C;IAC3C,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAC/B,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,iCAAiC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;KACrF,CAAC,CAAC;IAEH,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,4DAA4D;IAC5D,IAAI,kBAAkB,EAAE,WAAW,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/B,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,4CAA4C,uBAAuB,CAAC,MAAM,8BAA8B;SAC/G,CAAC,CAAC;QAEH,uBAAuB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;SAAM,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/B,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,iDAAiD,uBAAuB,CAAC,MAAM,8BAA8B;SACpH,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,oEAAoE;IACpE,0EAA0E;IAC1E,yFAAyF;IACzF,EAAE;IACF,yEAAyE;IACzE,6EAA6E;IAC7E,wEAAwE;IACxE,MAAM,2BAA2B,GAC/B,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC;IAEvE,IAAI,2BAA2B,IAAI,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/B,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,oDAAoD,4BAA4B,CAAC,MAAM,0BAA0B;SACxH,CAAC,CAAC;QAEH,4BAA4B,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;SAAM,IAAI,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/B,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,6DAA6D,4BAA4B,CAAC,MAAM,sDAAsD;SAC7J,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IAChE,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAE7B,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBAC/B,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,iDAAiD;aACxD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBAC/B,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,iDAAiD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAChH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,KAAK,UAAU,QAAQ;IACrB,mBAAmB;IACnB,IAAI,CAAC;QACH,MAAM,IAAA,4BAAe,GAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8DAA8D;QAC9D,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBAC/B,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC/F,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,KAAc,EAAE,IAAI,GAAG,CAAC;IAC5D,wCAAwC;IACxC,IAAI,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC/B,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,GAAG,OAAO,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SAC9E,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IACvC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,EAAE,CAAC;QACnB,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE,CACtC,WAAW,CAAC,qBAAqB,EAAE,GAAG,CAAC,CACxC,CAAC;AACF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE,CAC1C,WAAW,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAC5C,CAAC;AAEF,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -70,19 +70,19 @@ Please follow these steps:
70
70
  - Use search_and_geocode_tool to convert ${from} and ${to} to coordinates if they're not already in coordinate format
71
71
 
72
72
  2. **Get the route**:
73
- - Use directions_tool with profile=${mode} to get the route geometry between the two points
74
- - Extract the route LineString coordinates from the response (it will be an array of [lon, lat] pairs)
75
- - Note the total route distance
73
+ - Use directions_tool with profile=${mode} and geometries="none" to get route metadata (distance, duration)
74
+ - This returns a compact response with route summary WITHOUT large geometry data
75
+ - Note the total route distance to determine sampling strategy
76
76
 
77
77
  3. **Search along the route using point sampling** (works for all route lengths):
78
78
 
79
79
  **Determine sample strategy based on route length:**
80
- - SHORT routes (< 50km): Sample every 5-10 points along the route (more samples for better coverage)
81
- - MEDIUM routes (50-150km): Sample every 15-20 points along the route
80
+ - SHORT routes (< 50km): Sample 5-7 evenly spaced points between start and end
81
+ - MEDIUM routes (50-150km): Sample 5-7 evenly spaced points between start and end
82
82
  - VERY LONG routes (> 150km): Sample 5-7 evenly spaced points (start, end, and middle points)
83
83
 
84
84
  **For each sample point:**
85
- - Extract the coordinate [lon, lat] from the route
85
+ - Calculate coordinates by interpolating linearly between start and end coordinates
86
86
  - Choose the appropriate search tool:
87
87
  * If "${search_for}" is a specific place/brand (e.g., "Starbucks", "McDonald's", "Whole Foods"):
88
88
  Use search_and_geocode_tool with proximity="lon,lat" and q="${search_for}"
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @module prompts
3
+ *
4
+ * Public API for Mapbox MCP prompts. This module exports:
5
+ * - Prompt classes for custom instantiation
6
+ * - Pre-configured prompt instances ready to use
7
+ * - Registry functions for batch access
8
+ *
9
+ * @example Simple usage with pre-configured instances
10
+ * ```typescript
11
+ * import { getDirections } from '@mapbox/mcp-server/prompts';
12
+ *
13
+ * // Use directly
14
+ * const result = await getDirections.execute({ ... });
15
+ * ```
16
+ *
17
+ * @example Advanced usage with custom instantiation
18
+ * ```typescript
19
+ * import { GetDirectionsPrompt } from '@mapbox/mcp-server/prompts';
20
+ *
21
+ * const customPrompt = new GetDirectionsPrompt();
22
+ * ```
23
+ */
24
+ export { FindPlacesNearbyPrompt } from './FindPlacesNearbyPrompt.js';
25
+ export { GetDirectionsPrompt } from './GetDirectionsPrompt.js';
26
+ export { SearchAlongRoutePrompt } from './SearchAlongRoutePrompt.js';
27
+ export { ShowReachableAreasPrompt } from './ShowReachableAreasPrompt.js';
28
+ import { FindPlacesNearbyPrompt } from './FindPlacesNearbyPrompt.js';
29
+ import { GetDirectionsPrompt } from './GetDirectionsPrompt.js';
30
+ import { SearchAlongRoutePrompt } from './SearchAlongRoutePrompt.js';
31
+ import { ShowReachableAreasPrompt } from './ShowReachableAreasPrompt.js';
32
+ /** Find places near a location */
33
+ export declare const findPlacesNearby: FindPlacesNearbyPrompt;
34
+ /** Get directions between locations */
35
+ export declare const getDirections: GetDirectionsPrompt;
36
+ /** Search for points of interest along a route */
37
+ export declare const searchAlongRoute: SearchAlongRoutePrompt;
38
+ /** Show areas reachable within a time limit */
39
+ export declare const showReachableAreas: ShowReachableAreasPrompt;
40
+ export { getAllPrompts, getPromptByName, type PromptInstance } from './promptRegistry.js';
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/prompts/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,wBAA+B,CAAC;AAE7D,uCAAuC;AACvC,eAAO,MAAM,aAAa,qBAA4B,CAAC;AAEvD,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,wBAA+B,CAAC;AAE7D,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,0BAAiC,CAAC;AAGjE,OAAO,EACL,aAAa,EACb,eAAe,EACf,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ // Copyright (c) Mapbox, Inc.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getPromptByName = exports.getAllPrompts = exports.showReachableAreas = exports.searchAlongRoute = exports.getDirections = exports.findPlacesNearby = exports.ShowReachableAreasPrompt = exports.SearchAlongRoutePrompt = exports.GetDirectionsPrompt = exports.FindPlacesNearbyPrompt = void 0;
6
+ /**
7
+ * @module prompts
8
+ *
9
+ * Public API for Mapbox MCP prompts. This module exports:
10
+ * - Prompt classes for custom instantiation
11
+ * - Pre-configured prompt instances ready to use
12
+ * - Registry functions for batch access
13
+ *
14
+ * @example Simple usage with pre-configured instances
15
+ * ```typescript
16
+ * import { getDirections } from '@mapbox/mcp-server/prompts';
17
+ *
18
+ * // Use directly
19
+ * const result = await getDirections.execute({ ... });
20
+ * ```
21
+ *
22
+ * @example Advanced usage with custom instantiation
23
+ * ```typescript
24
+ * import { GetDirectionsPrompt } from '@mapbox/mcp-server/prompts';
25
+ *
26
+ * const customPrompt = new GetDirectionsPrompt();
27
+ * ```
28
+ */
29
+ // Export all prompt classes
30
+ var FindPlacesNearbyPrompt_js_1 = require("./FindPlacesNearbyPrompt.js");
31
+ Object.defineProperty(exports, "FindPlacesNearbyPrompt", { enumerable: true, get: function () { return FindPlacesNearbyPrompt_js_1.FindPlacesNearbyPrompt; } });
32
+ var GetDirectionsPrompt_js_1 = require("./GetDirectionsPrompt.js");
33
+ Object.defineProperty(exports, "GetDirectionsPrompt", { enumerable: true, get: function () { return GetDirectionsPrompt_js_1.GetDirectionsPrompt; } });
34
+ var SearchAlongRoutePrompt_js_1 = require("./SearchAlongRoutePrompt.js");
35
+ Object.defineProperty(exports, "SearchAlongRoutePrompt", { enumerable: true, get: function () { return SearchAlongRoutePrompt_js_1.SearchAlongRoutePrompt; } });
36
+ var ShowReachableAreasPrompt_js_1 = require("./ShowReachableAreasPrompt.js");
37
+ Object.defineProperty(exports, "ShowReachableAreasPrompt", { enumerable: true, get: function () { return ShowReachableAreasPrompt_js_1.ShowReachableAreasPrompt; } });
38
+ // Import prompt classes for instantiation
39
+ const FindPlacesNearbyPrompt_js_2 = require("./FindPlacesNearbyPrompt.js");
40
+ const GetDirectionsPrompt_js_2 = require("./GetDirectionsPrompt.js");
41
+ const SearchAlongRoutePrompt_js_2 = require("./SearchAlongRoutePrompt.js");
42
+ const ShowReachableAreasPrompt_js_2 = require("./ShowReachableAreasPrompt.js");
43
+ // Export pre-configured prompt instances with short, clean names
44
+ /** Find places near a location */
45
+ exports.findPlacesNearby = new FindPlacesNearbyPrompt_js_2.FindPlacesNearbyPrompt();
46
+ /** Get directions between locations */
47
+ exports.getDirections = new GetDirectionsPrompt_js_2.GetDirectionsPrompt();
48
+ /** Search for points of interest along a route */
49
+ exports.searchAlongRoute = new SearchAlongRoutePrompt_js_2.SearchAlongRoutePrompt();
50
+ /** Show areas reachable within a time limit */
51
+ exports.showReachableAreas = new ShowReachableAreasPrompt_js_2.ShowReachableAreasPrompt();
52
+ // Export registry functions for batch access
53
+ var promptRegistry_js_1 = require("./promptRegistry.js");
54
+ Object.defineProperty(exports, "getAllPrompts", { enumerable: true, get: function () { return promptRegistry_js_1.getAllPrompts; } });
55
+ Object.defineProperty(exports, "getPromptByName", { enumerable: true, get: function () { return promptRegistry_js_1.getPromptByName; } });
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/prompts/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,4BAA4B;AAC5B,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA;AAC/B,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA;AAC/B,6EAAyE;AAAhE,uIAAA,wBAAwB,OAAA;AAEjC,0CAA0C;AAC1C,2EAAqE;AACrE,qEAA+D;AAC/D,2EAAqE;AACrE,+EAAyE;AAEzE,iEAAiE;AACjE,kCAAkC;AACrB,QAAA,gBAAgB,GAAG,IAAI,kDAAsB,EAAE,CAAC;AAE7D,uCAAuC;AAC1B,QAAA,aAAa,GAAG,IAAI,4CAAmB,EAAE,CAAC;AAEvD,kDAAkD;AACrC,QAAA,gBAAgB,GAAG,IAAI,kDAAsB,EAAE,CAAC;AAE7D,+CAA+C;AAClC,QAAA,kBAAkB,GAAG,IAAI,sDAAwB,EAAE,CAAC;AAEjE,6CAA6C;AAC7C,yDAI6B;AAH3B,kHAAA,aAAa,OAAA;AACb,oHAAA,eAAe,OAAA"}
@@ -1,4 +1,4 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import { type McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
3
3
  import type { ServerRequest, ServerNotification, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BaseResource.d.ts","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,oCAAoC,CAAC;AAE5C;;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,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAE1C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAmBlC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CACX,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC7D,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;CAKR"}
1
+ {"version":3,"file":"BaseResource.d.ts","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,SAAS,EAEf,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,oCAAoC,CAAC;AAE5C;;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,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAE1C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAoClC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CACX,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC7D,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;CAKR"}
@@ -3,6 +3,7 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.BaseResource = void 0;
6
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
6
7
  /**
7
8
  * Base class for all MCP resources
8
9
  */
@@ -13,11 +14,20 @@ class BaseResource {
13
14
  */
14
15
  installTo(server) {
15
16
  this.server = server;
16
- server.registerResource(this.name, this.uri, {
17
+ const metadata = {
17
18
  title: this.name,
18
19
  description: this.description,
19
20
  mimeType: this.mimeType
20
- }, (uri, extra) => this.read(uri.toString(), extra));
21
+ };
22
+ if (this.uri.includes('{')) {
23
+ // URI contains template variables — register as a ResourceTemplate so the
24
+ // SDK performs proper URI template matching (e.g. mapbox://temp/{id}).
25
+ const template = new mcp_js_1.ResourceTemplate(this.uri, { list: undefined });
26
+ server.registerResource(this.name, template, metadata, (uri, _variables, extra) => this.read(uri.toString(), extra));
27
+ }
28
+ else {
29
+ server.registerResource(this.name, this.uri, metadata, (uri, extra) => this.read(uri.toString(), extra));
30
+ }
21
31
  }
22
32
  /**
23
33
  * 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;;;AAUlC;;GAEG;AACH,MAAsB,YAAY;IAMtB,MAAM,GAAqB,IAAI,CAAC;IAE1C;;OAEG;IACH,SAAS,CAAC,MAAiB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,CAAC,gBAAgB,CACrB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,EACR;YACE,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,EAED,CACE,GAAQ,EACR,KAA6D,EAC7D,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CACtC,CAAC;IACJ,CAAC;IAYD;;OAEG;IACO,GAAG,CACX,KAA6C,EAC7C,IAAa;QAEb,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF;AAnDD,oCAmDC"}
1
+ {"version":3,"file":"BaseResource.js","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,oEAGiD;AAQjD;;GAEG;AACH,MAAsB,YAAY;IAMtB,MAAM,GAAqB,IAAI,CAAC;IAE1C;;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,KAA6D,EAC7D,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CACtC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gBAAgB,CACrB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,EACR,QAAQ,EACR,CACE,GAAQ,EACR,KAA6D,EAC7D,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CACtC,CAAC;QACJ,CAAC;IACH,CAAC;IAYD;;OAEG;IACO,GAAG,CACX,KAA6C,EAC7C,IAAa;QAEb,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF;AApED,oCAoEC"}
@@ -0,0 +1,10 @@
1
+ export { CategoryListResource } from './category-list/CategoryListResource.js';
2
+ export { VersionResource } from './version/VersionResource.js';
3
+ import { CategoryListResource } from './category-list/CategoryListResource.js';
4
+ import { VersionResource } from './version/VersionResource.js';
5
+ /** Category list for place search (mapbox://categories) */
6
+ export declare const categoryList: CategoryListResource;
7
+ /** Server version info (mapbox://version) */
8
+ export declare const version: VersionResource;
9
+ export { getAllResources, getResourceByUri, type ResourceInstance } from './resourceRegistry.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/resources/index.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,2DAA2D;AAC3D,eAAO,MAAM,YAAY,sBAA4C,CAAC;AACtE,6CAA6C;AAC7C,eAAO,MAAM,OAAO,iBAAwB,CAAC;AAG7C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ // Copyright (c) Mapbox, Inc.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getResourceByUri = exports.getAllResources = exports.version = exports.categoryList = exports.VersionResource = exports.CategoryListResource = void 0;
6
+ /**
7
+ * @module resources
8
+ *
9
+ * Public API for Mapbox MCP resources. This module exports:
10
+ * - Resource classes for custom instantiation
11
+ * - Pre-configured resource instances ready to use
12
+ * - Registry functions for batch access
13
+ *
14
+ * @example Simple usage with pre-configured instances
15
+ * ```typescript
16
+ * import { categoryList } from '@mapbox/mcp-server/resources';
17
+ *
18
+ * // Use directly - httpRequest already configured
19
+ * const result = await categoryList.read();
20
+ * ```
21
+ *
22
+ * @example Advanced usage with custom pipeline
23
+ * ```typescript
24
+ * import { CategoryListResource } from '@mapbox/mcp-server/resources';
25
+ * import { httpRequest } from '@mapbox/mcp-server/utils';
26
+ *
27
+ * const customResource = new CategoryListResource({ httpRequest });
28
+ * ```
29
+ */
30
+ const httpPipeline_js_1 = require("../utils/httpPipeline.js");
31
+ // Export all resource classes
32
+ var CategoryListResource_js_1 = require("./category-list/CategoryListResource.js");
33
+ Object.defineProperty(exports, "CategoryListResource", { enumerable: true, get: function () { return CategoryListResource_js_1.CategoryListResource; } });
34
+ var VersionResource_js_1 = require("./version/VersionResource.js");
35
+ Object.defineProperty(exports, "VersionResource", { enumerable: true, get: function () { return VersionResource_js_1.VersionResource; } });
36
+ // Import resource classes for instantiation
37
+ const CategoryListResource_js_2 = require("./category-list/CategoryListResource.js");
38
+ const VersionResource_js_2 = require("./version/VersionResource.js");
39
+ // Export pre-configured resource instances with short, clean names
40
+ /** Category list for place search (mapbox://categories) */
41
+ exports.categoryList = new CategoryListResource_js_2.CategoryListResource({ httpRequest: httpPipeline_js_1.httpRequest });
42
+ /** Server version info (mapbox://version) */
43
+ exports.version = new VersionResource_js_2.VersionResource();
44
+ // Export registry functions for batch access
45
+ var resourceRegistry_js_1 = require("./resourceRegistry.js");
46
+ Object.defineProperty(exports, "getAllResources", { enumerable: true, get: function () { return resourceRegistry_js_1.getAllResources; } });
47
+ Object.defineProperty(exports, "getResourceByUri", { enumerable: true, get: function () { return resourceRegistry_js_1.getResourceByUri; } });
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resources/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,8DAAuD;AAEvD,8BAA8B;AAC9B,mFAA+E;AAAtE,+HAAA,oBAAoB,OAAA;AAC7B,mEAA+D;AAAtD,qHAAA,eAAe,OAAA;AAExB,4CAA4C;AAC5C,qFAA+E;AAC/E,qEAA+D;AAE/D,mEAAmE;AACnE,2DAA2D;AAC9C,QAAA,YAAY,GAAG,IAAI,8CAAoB,CAAC,EAAE,WAAW,EAAX,6BAAW,EAAE,CAAC,CAAC;AACtE,6CAA6C;AAChC,QAAA,OAAO,GAAG,IAAI,oCAAe,EAAE,CAAC;AAE7C,6CAA6C;AAC7C,6DAI+B;AAH7B,sHAAA,eAAe,OAAA;AACf,uHAAA,gBAAgB,OAAA"}
@@ -1,5 +1,8 @@
1
1
  import { CategoryListResource } from './category-list/CategoryListResource.js';
2
- export declare const ALL_RESOURCES: readonly [CategoryListResource];
2
+ import { TemporaryDataResource } from './temporary/TemporaryDataResource.js';
3
+ import { StaticMapUIResource } from './ui-apps/StaticMapUIResource.js';
4
+ import { VersionResource } from './version/VersionResource.js';
5
+ export declare const ALL_RESOURCES: readonly [CategoryListResource, TemporaryDataResource, StaticMapUIResource, VersionResource];
3
6
  export type ResourceInstance = (typeof ALL_RESOURCES)[number];
4
7
  export declare function getAllResources(): readonly ResourceInstance[];
5
8
  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;AAI/E,eAAO,MAAM,aAAa,iCAGhB,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,CAY1E"}
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,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAI/D,eAAO,MAAM,aAAa,8FAMhB,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,CAY1E"}
@@ -7,11 +7,17 @@ exports.getAllResources = getAllResources;
7
7
  exports.getResourceByUri = getResourceByUri;
8
8
  // INSERT NEW RESOURCE IMPORT HERE
9
9
  const CategoryListResource_js_1 = require("./category-list/CategoryListResource.js");
10
+ const TemporaryDataResource_js_1 = require("./temporary/TemporaryDataResource.js");
11
+ const StaticMapUIResource_js_1 = require("./ui-apps/StaticMapUIResource.js");
12
+ const VersionResource_js_1 = require("./version/VersionResource.js");
10
13
  const httpPipeline_js_1 = require("../utils/httpPipeline.js");
11
14
  // Central registry of all resources
12
15
  exports.ALL_RESOURCES = [
13
16
  // INSERT NEW RESOURCE INSTANCE HERE
14
- new CategoryListResource_js_1.CategoryListResource({ httpRequest: httpPipeline_js_1.httpRequest })
17
+ new CategoryListResource_js_1.CategoryListResource({ httpRequest: httpPipeline_js_1.httpRequest }),
18
+ new TemporaryDataResource_js_1.TemporaryDataResource(),
19
+ new StaticMapUIResource_js_1.StaticMapUIResource(),
20
+ new VersionResource_js_1.VersionResource()
15
21
  ];
16
22
  function getAllResources() {
17
23
  return exports.ALL_RESOURCES;
@@ -1 +1 @@
1
- {"version":3,"file":"resourceRegistry.js","sourceRoot":"","sources":["../../../src/resources/resourceRegistry.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAclC,0CAEC;AAED,4CAYC;AA5BD,kCAAkC;AAClC,qFAA+E;AAC/E,8DAAuD;AAEvD,oCAAoC;AACvB,QAAA,aAAa,GAAG;IAC3B,oCAAoC;IACpC,IAAI,8CAAoB,CAAC,EAAE,WAAW,EAAX,6BAAW,EAAE,CAAC;CACjC,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,OAAO,qBAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrC,uDAAuD;QACvD,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"resourceRegistry.js","sourceRoot":"","sources":["../../../src/resources/resourceRegistry.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAoBlC,0CAEC;AAED,4CAYC;AAlCD,kCAAkC;AAClC,qFAA+E;AAC/E,mFAA6E;AAC7E,6EAAuE;AACvE,qEAA+D;AAC/D,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,4CAAmB,EAAE;IACzB,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,OAAO,qBAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrC,uDAAuD;QACvD,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { BaseResource } from '../BaseResource.js';
2
+ import type { ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
3
+ /**
4
+ * Resource for temporary data storage (large tool responses)
5
+ */
6
+ export declare class TemporaryDataResource extends BaseResource {
7
+ readonly name = "Temporary Data";
8
+ readonly uri = "mapbox://temp/{id}";
9
+ readonly description = "Temporary storage for large tool responses. Data expires after TTL.";
10
+ readonly mimeType = "application/json";
11
+ read(uri: string): Promise<ReadResourceResult>;
12
+ }
13
+ //# sourceMappingURL=TemporaryDataResource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemporaryDataResource.d.ts","sourceRoot":"","sources":["../../../../src/resources/temporary/TemporaryDataResource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAG7E;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,GAAG,wBAAwB;IACpC,QAAQ,CAAC,WAAW,yEACoD;IACxE,QAAQ,CAAC,QAAQ,sBAAsB;IAEjC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAyBrD"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ // Copyright (c) Mapbox, Inc.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.TemporaryDataResource = void 0;
6
+ const BaseResource_js_1 = require("../BaseResource.js");
7
+ const temporaryResourceManager_js_1 = require("../../utils/temporaryResourceManager.js");
8
+ /**
9
+ * Resource for temporary data storage (large tool responses)
10
+ */
11
+ class TemporaryDataResource extends BaseResource_js_1.BaseResource {
12
+ name = 'Temporary Data';
13
+ uri = 'mapbox://temp/{id}';
14
+ description = 'Temporary storage for large tool responses. Data expires after TTL.';
15
+ mimeType = 'application/json';
16
+ async read(uri) {
17
+ const resource = temporaryResourceManager_js_1.temporaryResourceManager.get(uri);
18
+ if (!resource) {
19
+ return {
20
+ contents: [
21
+ {
22
+ uri: uri,
23
+ mimeType: 'text/plain',
24
+ text: 'Resource not found or expired. Temporary resources have a 30-minute TTL.'
25
+ }
26
+ ]
27
+ };
28
+ }
29
+ return {
30
+ contents: [
31
+ {
32
+ uri: uri,
33
+ mimeType: this.mimeType,
34
+ text: JSON.stringify(resource.data, null, 2)
35
+ }
36
+ ]
37
+ };
38
+ }
39
+ }
40
+ exports.TemporaryDataResource = TemporaryDataResource;
41
+ //# sourceMappingURL=TemporaryDataResource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemporaryDataResource.js","sourceRoot":"","sources":["../../../../src/resources/temporary/TemporaryDataResource.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,wDAAkD;AAElD,yFAAmF;AAEnF;;GAEG;AACH,MAAa,qBAAsB,SAAQ,8BAAY;IAC5C,IAAI,GAAG,gBAAgB,CAAC;IACxB,GAAG,GAAG,oBAAoB,CAAC;IAC3B,WAAW,GAClB,qEAAqE,CAAC;IAC/D,QAAQ,GAAG,kBAAkB,CAAC;IAEvC,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,MAAM,QAAQ,GAAG,sDAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG,EAAE,GAAG;wBACR,QAAQ,EAAE,YAAY;wBACtB,IAAI,EAAE,0EAA0E;qBACjF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG;oBACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC7C;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAhCD,sDAgCC"}
@@ -0,0 +1,15 @@
1
+ import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
2
+ import type { ReadResourceResult, ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
3
+ import { BaseResource } from '../BaseResource.js';
4
+ /**
5
+ * Serves UI App HTML for Static Map Preview
6
+ * Implements MCP Apps pattern with ui:// scheme
7
+ */
8
+ export declare class StaticMapUIResource extends BaseResource {
9
+ readonly name = "Static Map Preview UI";
10
+ readonly uri = "ui://mapbox/static-map/index.html";
11
+ readonly description = "Interactive UI for previewing static map images (MCP Apps)";
12
+ readonly mimeType = "text/html;profile=mcp-app";
13
+ read(_uri: string, _extra?: RequestHandlerExtra<ServerRequest, ServerNotification>): Promise<ReadResourceResult>;
14
+ }
15
+ //# sourceMappingURL=StaticMapUIResource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticMapUIResource.d.ts","sourceRoot":"","sources":["../../../../src/resources/ui-apps/StaticMapUIResource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,GAAG,uCAAuC;IACnD,QAAQ,CAAC,WAAW,gEAC2C;IAC/D,QAAQ,CAAC,QAAQ,+BAAsB;IAEjC,IAAI,CAER,IAAI,EAAE,MAAM,EAEZ,MAAM,CAAC,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC9D,OAAO,CAAC,kBAAkB,CAAC;CAgP/B"}