@mapbox/mcp-server 0.8.2 → 0.8.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 (33) hide show
  1. package/README.md +26 -0
  2. package/dist/commonjs/index.js +79 -5
  3. package/dist/commonjs/index.js.map +1 -1
  4. package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts +26 -0
  5. package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts.map +1 -0
  6. package/dist/commonjs/prompts/SearchAlongRoutePrompt.js +164 -0
  7. package/dist/commonjs/prompts/SearchAlongRoutePrompt.js.map +1 -0
  8. package/dist/commonjs/prompts/promptRegistry.d.ts +2 -1
  9. package/dist/commonjs/prompts/promptRegistry.d.ts.map +1 -1
  10. package/dist/commonjs/prompts/promptRegistry.js +2 -0
  11. package/dist/commonjs/prompts/promptRegistry.js.map +1 -1
  12. package/dist/commonjs/tools/toolRegistry.d.ts +51 -1
  13. package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
  14. package/dist/commonjs/tools/toolRegistry.js +68 -5
  15. package/dist/commonjs/tools/toolRegistry.js.map +1 -1
  16. package/dist/commonjs/version.json +3 -3
  17. package/dist/esm/index.js +80 -6
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts +26 -0
  20. package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts.map +1 -0
  21. package/dist/esm/prompts/SearchAlongRoutePrompt.js +160 -0
  22. package/dist/esm/prompts/SearchAlongRoutePrompt.js.map +1 -0
  23. package/dist/esm/prompts/promptRegistry.d.ts +2 -1
  24. package/dist/esm/prompts/promptRegistry.d.ts.map +1 -1
  25. package/dist/esm/prompts/promptRegistry.js +2 -0
  26. package/dist/esm/prompts/promptRegistry.js.map +1 -1
  27. package/dist/esm/tools/toolRegistry.d.ts +51 -1
  28. package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
  29. package/dist/esm/tools/toolRegistry.js +64 -4
  30. package/dist/esm/tools/toolRegistry.js.map +1 -1
  31. package/dist/esm/version.json +3 -3
  32. package/package.json +2 -2
  33. /package/patches/{@modelcontextprotocol+sdk+1.25.2.patch → @modelcontextprotocol+sdk+1.25.3.patch} +0 -0
package/dist/esm/index.js CHANGED
@@ -12,7 +12,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
12
12
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
13
13
  import { ListPromptsRequestSchema, GetPromptRequestSchema } from '@modelcontextprotocol/sdk/types.js';
14
14
  import { parseToolConfigFromArgs, filterTools } from './config/toolConfig.js';
15
- import { getAllTools } from './tools/toolRegistry.js';
15
+ import { getCoreTools, getElicitationTools, getResourceFallbackTools } from './tools/toolRegistry.js';
16
16
  import { getAllResources } from './resources/resourceRegistry.js';
17
17
  import { getAllPrompts, getPromptByName } from './prompts/promptRegistry.js';
18
18
  import { getVersionInfo } from './utils/versionUtils.js';
@@ -42,8 +42,13 @@ const versionInfo = getVersionInfo();
42
42
  // Parse configuration from command-line arguments
43
43
  const config = parseToolConfigFromArgs();
44
44
  // Get and filter tools based on configuration
45
- const allTools = getAllTools();
46
- const enabledTools = filterTools(allTools, config);
45
+ // Split into categories for capability-aware registration
46
+ const coreTools = getCoreTools();
47
+ const elicitationTools = getElicitationTools();
48
+ const resourceFallbackTools = getResourceFallbackTools();
49
+ const enabledCoreTools = filterTools(coreTools, config);
50
+ const enabledElicitationTools = filterTools(elicitationTools, config);
51
+ const enabledResourceFallbackTools = filterTools(resourceFallbackTools, config);
47
52
  // Get all resources
48
53
  const allResources = getAllResources();
49
54
  // Create an MCP server
@@ -66,13 +71,16 @@ const server = new McpServer({
66
71
  ]
67
72
  }, {
68
73
  capabilities: {
69
- tools: {},
74
+ tools: {
75
+ listChanged: true // Advertise support for dynamic tool registration (ready for future capability-dependent tools)
76
+ },
70
77
  resources: {},
71
78
  prompts: {}
72
79
  }
73
80
  });
74
- // Register enabled tools to the server
75
- enabledTools.forEach((tool) => {
81
+ // Register only core tools before connection
82
+ // Capability-dependent tools will be registered dynamically after connection
83
+ enabledCoreTools.forEach((tool) => {
76
84
  tool.installTo(server);
77
85
  });
78
86
  // Register all resources to the server
@@ -202,6 +210,72 @@ async function main() {
202
210
  // Start receiving messages on stdin and sending messages on stdout
203
211
  const transport = new StdioServerTransport();
204
212
  await server.connect(transport);
213
+ // After connection, dynamically register capability-dependent tools
214
+ const clientCapabilities = server.server.getClientCapabilities();
215
+ // Debug: Log what capabilities we detected
216
+ server.server.sendLoggingMessage({
217
+ level: 'info',
218
+ data: `Client capabilities detected: ${JSON.stringify(clientCapabilities, null, 2)}`
219
+ });
220
+ let toolsAdded = false;
221
+ // Register elicitation tools if client supports elicitation
222
+ if (clientCapabilities?.elicitation && enabledElicitationTools.length > 0) {
223
+ server.server.sendLoggingMessage({
224
+ level: 'info',
225
+ data: `Client supports elicitation. Registering ${enabledElicitationTools.length} elicitation-dependent tools`
226
+ });
227
+ enabledElicitationTools.forEach((tool) => {
228
+ tool.installTo(server);
229
+ });
230
+ toolsAdded = true;
231
+ }
232
+ else if (enabledElicitationTools.length > 0) {
233
+ server.server.sendLoggingMessage({
234
+ level: 'debug',
235
+ data: `Client does not support elicitation. Skipping ${enabledElicitationTools.length} elicitation-dependent tools`
236
+ });
237
+ }
238
+ // Register resource fallback tools for clients that don't support resources
239
+ // Note: Resources are a core MCP feature supported by most clients.
240
+ // However, some clients (like smolagents) don't support resources at all.
241
+ // These fallback tools provide the same content as resources but via tool calls instead.
242
+ //
243
+ // Configuration via CLIENT_NEEDS_RESOURCE_FALLBACK environment variable:
244
+ // - unset (default) = Skip fallback tools (assume client supports resources)
245
+ // - "true" = Provide fallback tools (client does NOT support resources)
246
+ const clientNeedsResourceFallback = process.env.CLIENT_NEEDS_RESOURCE_FALLBACK?.toLowerCase() === 'true';
247
+ if (clientNeedsResourceFallback && enabledResourceFallbackTools.length > 0) {
248
+ server.server.sendLoggingMessage({
249
+ level: 'info',
250
+ data: `CLIENT_NEEDS_RESOURCE_FALLBACK=true. Registering ${enabledResourceFallbackTools.length} resource fallback tools`
251
+ });
252
+ enabledResourceFallbackTools.forEach((tool) => {
253
+ tool.installTo(server);
254
+ });
255
+ toolsAdded = true;
256
+ }
257
+ else if (enabledResourceFallbackTools.length > 0) {
258
+ server.server.sendLoggingMessage({
259
+ level: 'debug',
260
+ data: `CLIENT_NEEDS_RESOURCE_FALLBACK not set or false. Skipping ${enabledResourceFallbackTools.length} resource fallback tools (client supports resources)`
261
+ });
262
+ }
263
+ // Notify client about tool list changes if any tools were added
264
+ if (toolsAdded) {
265
+ try {
266
+ server.sendToolListChanged();
267
+ server.server.sendLoggingMessage({
268
+ level: 'debug',
269
+ data: 'Sent notifications/tools/list_changed to client'
270
+ });
271
+ }
272
+ catch (error) {
273
+ server.server.sendLoggingMessage({
274
+ level: 'warning',
275
+ data: `Failed to send tool list change notification: ${error instanceof Error ? error.message : String(error)}`
276
+ });
277
+ }
278
+ }
205
279
  }
206
280
  // Ensure cleanup interval is cleared when the process exits
207
281
  async function shutdown() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { BasePrompt } from './BasePrompt.js';
2
+ import type { PromptArgument, PromptMessage } from '@modelcontextprotocol/sdk/types.js';
3
+ /**
4
+ * Prompt for finding places along a route between two locations.
5
+ *
6
+ * This prompt guides the agent through:
7
+ * 1. Geocoding start and end locations (if needed)
8
+ * 2. Getting the route geometry
9
+ * 3. Creating a buffer corridor around the route
10
+ * 4. Searching for places within that corridor
11
+ * 5. Filtering and ordering results by distance from route
12
+ * 6. Visualizing on a map
13
+ *
14
+ * Example queries:
15
+ * - "I want to go from Seattle to Portland, is there a Starbucks along the way?"
16
+ * - "Find gas stations along my route from LA to San Francisco"
17
+ * - "Show me rest stops between Denver and Salt Lake City"
18
+ * - "What restaurants are along the drive from Boston to NYC?"
19
+ */
20
+ export declare class SearchAlongRoutePrompt extends BasePrompt {
21
+ readonly name = "search-along-route";
22
+ readonly description = "Finds specific types of places along a route between two locations, using buffer analysis and POI search";
23
+ readonly arguments: PromptArgument[];
24
+ getMessages(args: Record<string, string>): PromptMessage[];
25
+ }
26
+ //# sourceMappingURL=SearchAlongRoutePrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchAlongRoutePrompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/SearchAlongRoutePrompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;IACpD,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,WAAW,8GACyF;IAE7G,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CA6BlC;IAEF,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE;CAkH3D"}
@@ -0,0 +1,160 @@
1
+ // Copyright (c) Mapbox, Inc.
2
+ // Licensed under the MIT License.
3
+ import { BasePrompt } from './BasePrompt.js';
4
+ /**
5
+ * Prompt for finding places along a route between two locations.
6
+ *
7
+ * This prompt guides the agent through:
8
+ * 1. Geocoding start and end locations (if needed)
9
+ * 2. Getting the route geometry
10
+ * 3. Creating a buffer corridor around the route
11
+ * 4. Searching for places within that corridor
12
+ * 5. Filtering and ordering results by distance from route
13
+ * 6. Visualizing on a map
14
+ *
15
+ * Example queries:
16
+ * - "I want to go from Seattle to Portland, is there a Starbucks along the way?"
17
+ * - "Find gas stations along my route from LA to San Francisco"
18
+ * - "Show me rest stops between Denver and Salt Lake City"
19
+ * - "What restaurants are along the drive from Boston to NYC?"
20
+ */
21
+ export class SearchAlongRoutePrompt extends BasePrompt {
22
+ name = 'search-along-route';
23
+ description = 'Finds specific types of places along a route between two locations, using buffer analysis and POI search';
24
+ arguments = [
25
+ {
26
+ name: 'from',
27
+ description: 'Starting location (address, place name, or coordinates)',
28
+ required: true
29
+ },
30
+ {
31
+ name: 'to',
32
+ description: 'Destination location (address, place name, or coordinates)',
33
+ required: true
34
+ },
35
+ {
36
+ name: 'search_for',
37
+ description: 'Type of place to search for (e.g., "Starbucks", "gas stations", "rest stops", "restaurants")',
38
+ required: true
39
+ },
40
+ {
41
+ name: 'mode',
42
+ description: 'Travel mode: driving, walking, or cycling (default: driving)',
43
+ required: false
44
+ },
45
+ {
46
+ name: 'buffer_meters',
47
+ description: 'Search corridor width on each side of route in meters (default: 1000)',
48
+ required: false
49
+ }
50
+ ];
51
+ getMessages(args) {
52
+ this.validateArguments(args);
53
+ const { from, to, search_for, mode = 'driving'
54
+ // buffer_meters parameter is kept for API compatibility but not used
55
+ // in the simplified proximity-sampling approach
56
+ } = args;
57
+ return [
58
+ {
59
+ role: 'user',
60
+ content: {
61
+ type: 'text',
62
+ text: `Find ${search_for} along the ${mode} route from ${from} to ${to}.
63
+
64
+ Please follow these steps:
65
+
66
+ 1. **Geocode locations** (if needed):
67
+ - Use search_and_geocode_tool to convert ${from} and ${to} to coordinates if they're not already in coordinate format
68
+
69
+ 2. **Get the route**:
70
+ - Use directions_tool with profile=${mode} to get the route geometry between the two points
71
+ - Extract the route LineString coordinates from the response (it will be an array of [lon, lat] pairs)
72
+ - Note the total route distance
73
+
74
+ 3. **Search along the route using point sampling** (works for all route lengths):
75
+
76
+ **Determine sample strategy based on route length:**
77
+ - SHORT routes (< 50km): Sample every 5-10 points along the route (more samples for better coverage)
78
+ - MEDIUM routes (50-150km): Sample every 15-20 points along the route
79
+ - VERY LONG routes (> 150km): Sample 5-7 evenly spaced points (start, end, and middle points)
80
+
81
+ **For each sample point:**
82
+ - Extract the coordinate [lon, lat] from the route
83
+ - Choose the appropriate search tool:
84
+ * If "${search_for}" is a specific place/brand (e.g., "Starbucks", "McDonald's", "Whole Foods"):
85
+ Use search_and_geocode_tool with proximity="lon,lat" and q="${search_for}"
86
+ * If "${search_for}" is a category (e.g., "coffee shops", "gas stations", "restaurants"):
87
+ Use category_search_tool with types="${search_for}" and proximity="lon,lat"
88
+ - Limit results per point (10-20 for short routes, 5-10 for long routes)
89
+
90
+ **IMPORTANT - Execute searches in parallel:**
91
+ - All sample point searches are INDEPENDENT and can run concurrently
92
+ - Make ALL search tool calls in a single message (parallel execution)
93
+ - Example: If you have 5 sample points, make 5 search_and_geocode_tool calls in one turn
94
+ - This dramatically speeds up the workflow vs sequential searches
95
+
96
+ **Combine and deduplicate:**
97
+ - Collect all results from sample points
98
+ - Remove duplicates (same place found from multiple sample points)
99
+ - Calculate distances from start point using distance_tool:
100
+ * These calculations are INDEPENDENT and can run in parallel
101
+ * Make ALL distance_tool calls in a single message for all results
102
+ * Example: If you have 10 unique results, make 10 distance_tool calls in one turn
103
+ - Order results by distance from start (approximate route progress)
104
+
105
+ **Why this approach works:**
106
+ - Simple and reliable - just directions + proximity searches
107
+ - No buffer/bbox/polygon complexity
108
+ - Works consistently for all route lengths
109
+ - Fast execution, no token issues
110
+ - Covers the route corridor naturally through proximity searches
111
+
112
+ 4. **Present results**:
113
+ - Results are already ordered by distance from start
114
+ - Limit to top 15 results if many were found
115
+ - Note: Results are biased to the route corridor through proximity searches at sample points
116
+
117
+ 5. **Present results**:
118
+
119
+ **Skip map generation by default** (static_map_image_tool encoding is slow):
120
+ - Note to user: "Map visualization can be generated separately if needed"
121
+ - The client (Claude Desktop, etc.) may have its own map display capabilities
122
+ - Focus on providing excellent text results instead
123
+
124
+ **Results list (always provide):**
125
+ - Summary: "Found X results along the route from ${from} to ${to}"
126
+ - Route details: Total distance and estimated travel time
127
+ - For each result:
128
+ * Name and address
129
+ * Approximate distance from start (e.g., "45 miles into your trip")
130
+ * Coordinates (so user could map them separately if desired)
131
+ - Total results found
132
+ - Note which sampling strategy was used
133
+
134
+ **If user explicitly asks for a map:**
135
+ - Only then use static_map_image_tool with route and top 8-10 results
136
+ - Warn that encoding may take time for longer routes
137
+
138
+ 6. **Additional context**:
139
+ - Mention the total route distance and estimated travel time
140
+ - Note which sampling strategy was used:
141
+ * Short route: "Searched every 5-10 points along the route for comprehensive coverage"
142
+ * Medium route: "Sampled key points along the route"
143
+ * Very long route: "Sampled major points along the route"
144
+ - If no results were found, suggest trying a different search term or checking a specific segment
145
+ - If many results (>15), show top 15 and mention there are more
146
+
147
+ **Important notes:**
148
+ - This approach uses simple proximity searches at sampled route points
149
+ - No buffer/bbox/polygon operations needed - much more reliable
150
+ - Works consistently for all route lengths
151
+ - Fast and avoids token/timeout issues
152
+ - Results naturally cover the route corridor through proximity biasing
153
+
154
+ Make the output clear, actionable, and well-formatted.`
155
+ }
156
+ }
157
+ ];
158
+ }
159
+ }
160
+ //# sourceMappingURL=SearchAlongRoutePrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchAlongRoutePrompt.js","sourceRoot":"","sources":["../../../src/prompts/SearchAlongRoutePrompt.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,sBAAuB,SAAQ,UAAU;IAC3C,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAClB,0GAA0G,CAAC;IAEpG,SAAS,GAAqB;QACrC;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EACT,8FAA8F;YAChG,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EACT,uEAAuE;YACzE,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;IAEF,WAAW,CAAC,IAA4B;QACtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,EACJ,IAAI,EACJ,EAAE,EACF,UAAU,EACV,IAAI,GAAG,SAAS;QAChB,qEAAqE;QACrE,gDAAgD;UACjD,GAAG,IAAI,CAAC;QAET,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ,UAAU,cAAc,IAAI,eAAe,IAAI,OAAO,EAAE;;;;;8CAKlC,IAAI,QAAQ,EAAE;;;wCAGpB,IAAI;;;;;;;;;;;;;;aAc/B,UAAU;qEAC8C,UAAU;aAClE,UAAU;8CACuB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAsCF,IAAI,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDA6BZ;iBAC9C;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { FindPlacesNearbyPrompt } from './FindPlacesNearbyPrompt.js';
2
2
  import { GetDirectionsPrompt } from './GetDirectionsPrompt.js';
3
+ import { SearchAlongRoutePrompt } from './SearchAlongRoutePrompt.js';
3
4
  import { ShowReachableAreasPrompt } from './ShowReachableAreasPrompt.js';
4
5
  /**
5
6
  * Central registry of all available prompts.
@@ -7,7 +8,7 @@ import { ShowReachableAreasPrompt } from './ShowReachableAreasPrompt.js';
7
8
  * This module maintains a readonly collection of prompt instances and provides
8
9
  * type-safe access methods.
9
10
  */
10
- declare const ALL_PROMPTS: readonly [FindPlacesNearbyPrompt, GetDirectionsPrompt, ShowReachableAreasPrompt];
11
+ declare const ALL_PROMPTS: readonly [FindPlacesNearbyPrompt, GetDirectionsPrompt, SearchAlongRoutePrompt, ShowReachableAreasPrompt];
11
12
  /**
12
13
  * Type representing any prompt instance
13
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"promptRegistry.d.ts","sourceRoot":"","sources":["../../../src/prompts/promptRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;;;;GAKG;AAGH,QAAA,MAAM,WAAW,kFAIP,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,SAAS,cAAc,EAAE,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAExE"}
1
+ {"version":3,"file":"promptRegistry.d.ts","sourceRoot":"","sources":["../../../src/prompts/promptRegistry.ts"],"names":[],"mappings":"AAGA,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;AAEzE;;;;;GAKG;AAGH,QAAA,MAAM,WAAW,0GAKP,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,SAAS,cAAc,EAAE,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAExE"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT License.
3
3
  import { FindPlacesNearbyPrompt } from './FindPlacesNearbyPrompt.js';
4
4
  import { GetDirectionsPrompt } from './GetDirectionsPrompt.js';
5
+ import { SearchAlongRoutePrompt } from './SearchAlongRoutePrompt.js';
5
6
  import { ShowReachableAreasPrompt } from './ShowReachableAreasPrompt.js';
6
7
  /**
7
8
  * Central registry of all available prompts.
@@ -13,6 +14,7 @@ import { ShowReachableAreasPrompt } from './ShowReachableAreasPrompt.js';
13
14
  const ALL_PROMPTS = [
14
15
  new FindPlacesNearbyPrompt(),
15
16
  new GetDirectionsPrompt(),
17
+ new SearchAlongRoutePrompt(),
16
18
  new ShowReachableAreasPrompt()
17
19
  ];
18
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"promptRegistry.js","sourceRoot":"","sources":["../../../src/prompts/promptRegistry.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;;;;GAKG;AAEH,0BAA0B;AAC1B,MAAM,WAAW,GAAG;IAClB,IAAI,sBAAsB,EAAE;IAC5B,IAAI,mBAAmB,EAAE;IACzB,IAAI,wBAAwB,EAAE;CACtB,CAAC;AAOX;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"promptRegistry.js","sourceRoot":"","sources":["../../../src/prompts/promptRegistry.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,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;AAEzE;;;;;GAKG;AAEH,0BAA0B;AAC1B,MAAM,WAAW,GAAG;IAClB,IAAI,sBAAsB,EAAE;IAC5B,IAAI,mBAAmB,EAAE;IACzB,IAAI,sBAAsB,EAAE;IAC5B,IAAI,wBAAwB,EAAE;CACtB,CAAC;AAOX;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC5D,CAAC"}
@@ -19,8 +19,58 @@ import { ReverseGeocodeTool } from './reverse-geocode-tool/ReverseGeocodeTool.js
19
19
  import { StaticMapImageTool } from './static-map-image-tool/StaticMapImageTool.js';
20
20
  import { SearchAndGeocodeTool } from './search-and-geocode-tool/SearchAndGeocodeTool.js';
21
21
  import { VersionTool } from './version-tool/VersionTool.js';
22
- export declare const ALL_TOOLS: readonly [SimplifyTool, BoundingBoxTool, CentroidTool, MidpointTool, BearingTool, AreaTool, BufferTool, PointInPolygonTool, DistanceTool, VersionTool, ResourceReaderTool, CategoryListTool, CategorySearchTool, DirectionsTool, IsochroneTool, MapMatchingTool, MatrixTool, OptimizationTool, ReverseGeocodeTool, StaticMapImageTool, SearchAndGeocodeTool];
22
+ /**
23
+ * Core tools that work in all MCP clients without requiring special capabilities
24
+ * These tools are registered immediately during server startup
25
+ */
26
+ export declare const CORE_TOOLS: readonly [SimplifyTool, BoundingBoxTool, CentroidTool, MidpointTool, BearingTool, AreaTool, BufferTool, PointInPolygonTool, DistanceTool, VersionTool, CategorySearchTool, DirectionsTool, IsochroneTool, MapMatchingTool, MatrixTool, OptimizationTool, ReverseGeocodeTool, StaticMapImageTool, SearchAndGeocodeTool];
27
+ /**
28
+ * Tools that require elicitation capability for optimal functionality
29
+ * These tools use elicitInput() for secure token management
30
+ * Registered only if client supports elicitation
31
+ *
32
+ * Currently empty - elicitation support will be added in a future PR.
33
+ * This category is ready for tools that require the elicitation capability.
34
+ */
35
+ export declare const ELICITATION_TOOLS: readonly [];
36
+ /**
37
+ * Tools that serve as bridges for clients without resource support
38
+ * These tools are only registered if CLIENT_NEEDS_RESOURCE_FALLBACK env var is set to "true"
39
+ *
40
+ * Context: Most MCP clients support resources (Claude Desktop, VS Code, Inspector, etc.).
41
+ * However, some clients (like smolagents) don't support resources at all.
42
+ * These tools provide the same content as resources but via tool calls instead.
43
+ *
44
+ * Configuration:
45
+ * - Leave unset (default) = Skip these tools (assumes client supports resources)
46
+ * - Set CLIENT_NEEDS_RESOURCE_FALLBACK=true = Include these tools (for smolagents, etc.)
47
+ *
48
+ * Tools:
49
+ * - ResourceReaderTool: Generic fallback for reading any resource by URI
50
+ * - CategoryListTool: Provides access to category list (mapbox://categories)
51
+ */
52
+ export declare const RESOURCE_FALLBACK_TOOLS: readonly [ResourceReaderTool, CategoryListTool];
53
+ /**
54
+ * All tools combined (for backward compatibility and testing)
55
+ */
56
+ export declare const ALL_TOOLS: readonly [SimplifyTool, BoundingBoxTool, CentroidTool, MidpointTool, BearingTool, AreaTool, BufferTool, PointInPolygonTool, DistanceTool, VersionTool, CategorySearchTool, DirectionsTool, IsochroneTool, MapMatchingTool, MatrixTool, OptimizationTool, ReverseGeocodeTool, StaticMapImageTool, SearchAndGeocodeTool, ResourceReaderTool, CategoryListTool];
23
57
  export type ToolInstance = (typeof ALL_TOOLS)[number];
58
+ /**
59
+ * Get all tools (for backward compatibility)
60
+ * @deprecated Use getCoreTools(), getElicitationTools(), etc. instead for capability-aware registration
61
+ */
24
62
  export declare function getAllTools(): readonly ToolInstance[];
63
+ /**
64
+ * Get tools that work in all MCP clients
65
+ */
66
+ export declare function getCoreTools(): readonly ToolInstance[];
67
+ /**
68
+ * Get tools that require elicitation capability
69
+ */
70
+ export declare function getElicitationTools(): readonly ToolInstance[];
71
+ /**
72
+ * Get tools that serve as fallbacks when client doesn't support resources
73
+ */
74
+ export declare function getResourceFallbackTools(): readonly ToolInstance[];
25
75
  export declare function getToolByName(name: string): ToolInstance | undefined;
26
76
  //# sourceMappingURL=toolRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolRegistry.d.ts","sourceRoot":"","sources":["../../../src/tools/toolRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAI5D,eAAO,MAAM,SAAS,8VAuBZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,wBAAgB,WAAW,IAAI,SAAS,YAAY,EAAE,CAErD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEpE"}
1
+ {"version":3,"file":"toolRegistry.d.ts","sourceRoot":"","sources":["../../../src/tools/toolRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D;;;GAGG;AACH,eAAO,MAAM,UAAU,wTAqBb,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,aAAc,CAAC;AAE7C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,iDAG1B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,SAAS,8VAIZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,WAAW,IAAI,SAAS,YAAY,EAAE,CAErD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,YAAY,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,YAAY,EAAE,CAE7D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,SAAS,YAAY,EAAE,CAElE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEpE"}
@@ -23,8 +23,11 @@ import { StaticMapImageTool } from './static-map-image-tool/StaticMapImageTool.j
23
23
  import { SearchAndGeocodeTool } from './search-and-geocode-tool/SearchAndGeocodeTool.js';
24
24
  import { VersionTool } from './version-tool/VersionTool.js';
25
25
  import { httpRequest } from '../utils/httpPipeline.js';
26
- // Central registry of all tools
27
- export const ALL_TOOLS = [
26
+ /**
27
+ * Core tools that work in all MCP clients without requiring special capabilities
28
+ * These tools are registered immediately during server startup
29
+ */
30
+ export const CORE_TOOLS = [
28
31
  // INSERT NEW TOOL INSTANCE HERE
29
32
  new SimplifyTool(),
30
33
  new BoundingBoxTool(),
@@ -36,8 +39,6 @@ export const ALL_TOOLS = [
36
39
  new PointInPolygonTool(),
37
40
  new DistanceTool(),
38
41
  new VersionTool(),
39
- new ResourceReaderTool(),
40
- new CategoryListTool({ httpRequest }),
41
42
  new CategorySearchTool({ httpRequest }),
42
43
  new DirectionsTool({ httpRequest }),
43
44
  new IsochroneTool({ httpRequest }),
@@ -48,9 +49,68 @@ export const ALL_TOOLS = [
48
49
  new StaticMapImageTool({ httpRequest }),
49
50
  new SearchAndGeocodeTool({ httpRequest })
50
51
  ];
52
+ /**
53
+ * Tools that require elicitation capability for optimal functionality
54
+ * These tools use elicitInput() for secure token management
55
+ * Registered only if client supports elicitation
56
+ *
57
+ * Currently empty - elicitation support will be added in a future PR.
58
+ * This category is ready for tools that require the elicitation capability.
59
+ */
60
+ export const ELICITATION_TOOLS = [];
61
+ /**
62
+ * Tools that serve as bridges for clients without resource support
63
+ * These tools are only registered if CLIENT_NEEDS_RESOURCE_FALLBACK env var is set to "true"
64
+ *
65
+ * Context: Most MCP clients support resources (Claude Desktop, VS Code, Inspector, etc.).
66
+ * However, some clients (like smolagents) don't support resources at all.
67
+ * These tools provide the same content as resources but via tool calls instead.
68
+ *
69
+ * Configuration:
70
+ * - Leave unset (default) = Skip these tools (assumes client supports resources)
71
+ * - Set CLIENT_NEEDS_RESOURCE_FALLBACK=true = Include these tools (for smolagents, etc.)
72
+ *
73
+ * Tools:
74
+ * - ResourceReaderTool: Generic fallback for reading any resource by URI
75
+ * - CategoryListTool: Provides access to category list (mapbox://categories)
76
+ */
77
+ export const RESOURCE_FALLBACK_TOOLS = [
78
+ new ResourceReaderTool(),
79
+ new CategoryListTool({ httpRequest })
80
+ ];
81
+ /**
82
+ * All tools combined (for backward compatibility and testing)
83
+ */
84
+ export const ALL_TOOLS = [
85
+ ...CORE_TOOLS,
86
+ ...ELICITATION_TOOLS,
87
+ ...RESOURCE_FALLBACK_TOOLS
88
+ ];
89
+ /**
90
+ * Get all tools (for backward compatibility)
91
+ * @deprecated Use getCoreTools(), getElicitationTools(), etc. instead for capability-aware registration
92
+ */
51
93
  export function getAllTools() {
52
94
  return ALL_TOOLS;
53
95
  }
96
+ /**
97
+ * Get tools that work in all MCP clients
98
+ */
99
+ export function getCoreTools() {
100
+ return CORE_TOOLS;
101
+ }
102
+ /**
103
+ * Get tools that require elicitation capability
104
+ */
105
+ export function getElicitationTools() {
106
+ return ELICITATION_TOOLS;
107
+ }
108
+ /**
109
+ * Get tools that serve as fallbacks when client doesn't support resources
110
+ */
111
+ export function getResourceFallbackTools() {
112
+ return RESOURCE_FALLBACK_TOOLS;
113
+ }
54
114
  export function getToolByName(name) {
55
115
  return ALL_TOOLS.find((tool) => tool.name === name);
56
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../../src/tools/toolRegistry.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,8BAA8B;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,gCAAgC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,gCAAgC;IAChC,IAAI,YAAY,EAAE;IAClB,IAAI,eAAe,EAAE;IACrB,IAAI,YAAY,EAAE;IAClB,IAAI,YAAY,EAAE;IAClB,IAAI,WAAW,EAAE;IACjB,IAAI,QAAQ,EAAE;IACd,IAAI,UAAU,EAAE;IAChB,IAAI,kBAAkB,EAAE;IACxB,IAAI,YAAY,EAAE;IAClB,IAAI,WAAW,EAAE;IACjB,IAAI,kBAAkB,EAAE;IACxB,IAAI,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC;IACrC,IAAI,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC;IACvC,IAAI,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;IACnC,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAClC,IAAI,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IACpC,IAAI,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC/B,IAAI,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC;IACrC,IAAI,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC;IACvC,IAAI,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC;IACvC,IAAI,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;CACjC,CAAC;AAIX,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../../src/tools/toolRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
- "sha": "60be8a0e4bb1e763f294f0e0e3fd6075f5d9f455",
3
- "tag": "v0.8.1-7-g60be8a0",
2
+ "sha": "de29efc608780d649c519de93ce8c379b8f29b9f",
3
+ "tag": "v0.8.2-3-gde29efc",
4
4
  "branch": "main",
5
- "version": "0.8.2"
5
+ "version": "0.8.3"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapbox/mcp-server",
3
- "version": "0.8.2",
3
+ "version": "0.8.3",
4
4
  "description": "Mapbox MCP server.",
5
5
  "mcpName": "io.github.mapbox/mcp-server",
6
6
  "main": "./dist/commonjs/index.js",
@@ -76,7 +76,7 @@
76
76
  ],
77
77
  "dependencies": {
78
78
  "@mcp-ui/server": "^5.13.1",
79
- "@modelcontextprotocol/sdk": "^1.25.2",
79
+ "@modelcontextprotocol/sdk": "^1.25.3",
80
80
  "@opentelemetry/api": "^1.9.0",
81
81
  "@opentelemetry/auto-instrumentations-node": "^0.56.0",
82
82
  "@opentelemetry/exporter-trace-otlp-http": "^0.56.0",