@mapbox/mcp-server 0.12.6 → 0.12.7
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.
- package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.d.ts +3 -2
- package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.d.ts.map +1 -1
- package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.js +5 -3
- package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.js.map +1 -1
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.d.ts +20 -8
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.d.ts.map +1 -1
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.js +198 -18
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js +6 -2
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js +52 -109
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts +29 -0
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js +63 -0
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -0
- package/dist/commonjs/version.json +3 -3
- package/dist/esm/resources/ui-apps/DirectionsAppUIResource.d.ts +3 -2
- package/dist/esm/resources/ui-apps/DirectionsAppUIResource.d.ts.map +1 -1
- package/dist/esm/resources/ui-apps/DirectionsAppUIResource.js +5 -3
- package/dist/esm/resources/ui-apps/DirectionsAppUIResource.js.map +1 -1
- package/dist/esm/resources/ui-apps/directionsAppHtml.d.ts +20 -8
- package/dist/esm/resources/ui-apps/directionsAppHtml.d.ts.map +1 -1
- package/dist/esm/resources/ui-apps/directionsAppHtml.js +198 -18
- package/dist/esm/resources/ui-apps/directionsAppHtml.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js +6 -2
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.js +52 -109
- package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts +29 -0
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js +60 -0
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -0
- package/dist/esm/version.json +3 -3
- package/package.json +1 -1
|
@@ -13,15 +13,16 @@
|
|
|
13
13
|
*
|
|
14
14
|
* 2. **Legacy MCP-UI spec** — `directions_tool` inlines a `rawHtml`
|
|
15
15
|
* UIResource into its content array (gated by `isMcpUiEnabled()`). The
|
|
16
|
-
* HTML is generated at tool-execute time with the
|
|
17
|
-
* baked in as an `initialData` script block
|
|
18
|
-
*
|
|
16
|
+
* HTML is generated at tool-execute time with the call's input params
|
|
17
|
+
* baked in as an `initialData` script block; the iframe uses those params
|
|
18
|
+
* to self-fetch the route from the Directions API, so it never depends on
|
|
19
|
+
* the host delivering the tool result.
|
|
19
20
|
*
|
|
20
21
|
* One source of truth for the rendering logic; two slim entry conditions.
|
|
21
22
|
*/
|
|
22
23
|
export const MAPBOX_GL_VERSION = '3.12.0';
|
|
23
24
|
export function renderDirectionsAppHtml(params) {
|
|
24
|
-
const { publicToken, initialData } = params;
|
|
25
|
+
const { publicToken, apiEndpoint, initialData } = params;
|
|
25
26
|
const glVersion = params.glVersion ?? MAPBOX_GL_VERSION;
|
|
26
27
|
const initialDataScript = initialData
|
|
27
28
|
? `<script id="initial-data" type="application/json">${escapeForScript(JSON.stringify(initialData))}</script>`
|
|
@@ -68,6 +69,7 @@ ${initialDataScript}
|
|
|
68
69
|
<script>
|
|
69
70
|
(function() {
|
|
70
71
|
var TOKEN = ${JSON.stringify(publicToken)};
|
|
72
|
+
var API_ENDPOINT = ${JSON.stringify(apiEndpoint)};
|
|
71
73
|
|
|
72
74
|
var loadingEl = document.getElementById('loading');
|
|
73
75
|
var errorEl = document.getElementById('error');
|
|
@@ -80,6 +82,159 @@ ${initialDataScript}
|
|
|
80
82
|
// Track markers across re-renders so we can remove them before drawing the
|
|
81
83
|
// next route — otherwise a second tool-result delivery stacks pins.
|
|
82
84
|
var routeMarkers = [];
|
|
85
|
+
// One render "cycle" per tool call delivered to this iframe. A new
|
|
86
|
+
// tool-input (or baked initial-data) delivery starts a new cycle by
|
|
87
|
+
// bumping \`generation\`; async callbacks that captured an older value are
|
|
88
|
+
// stale and must not touch the UI. This dedupes self-fetch vs tool-result
|
|
89
|
+
// within one call WITHOUT permanently blocking later calls that reuse
|
|
90
|
+
// this same iframe instance.
|
|
91
|
+
var generation = 0;
|
|
92
|
+
var renderedGeneration = -1; // generation whose route is on screen (-1 = none)
|
|
93
|
+
var selfFetchGeneration = -1; // generation that started a self-fetch (-1 = none)
|
|
94
|
+
|
|
95
|
+
// -------------------------------------------------------------------------
|
|
96
|
+
// Self-fetch: build a Directions API request directly from the tool call's
|
|
97
|
+
// input parameters and fetch the route ourselves, so this map never
|
|
98
|
+
// depends on the tool response carrying geometries="geojson".
|
|
99
|
+
//
|
|
100
|
+
// Mirrors src/tools/directions-tool/buildDirectionsRequestUrl.ts — kept in
|
|
101
|
+
// sync by the parity test in
|
|
102
|
+
// test/tools/directions-tool/directionsUrlParity.test.ts. Always forces
|
|
103
|
+
// geometries=geojson regardless of what the tool call itself requested.
|
|
104
|
+
// -------------------------------------------------------------------------
|
|
105
|
+
function formatIsoDateTimeClient(dateTime) {
|
|
106
|
+
var noTzWithSeconds = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$/;
|
|
107
|
+
if (noTzWithSeconds.test(dateTime)) {
|
|
108
|
+
return dateTime.substring(0, dateTime.lastIndexOf(':'));
|
|
109
|
+
}
|
|
110
|
+
return dateTime;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function encodeExcludeClient(value) {
|
|
114
|
+
return value
|
|
115
|
+
.replace(/,/g, '%2C')
|
|
116
|
+
.replace(/\\(/g, '%28')
|
|
117
|
+
.replace(/\\)/g, '%29')
|
|
118
|
+
.replace(/ /g, '%20');
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function buildDirectionsApiUrl(params, publicToken, apiEndpoint) {
|
|
122
|
+
var coords = params.coordinates
|
|
123
|
+
.map(function(c) { return c.longitude + ',' + c.latitude; })
|
|
124
|
+
.join(';');
|
|
125
|
+
var encodedCoords = encodeURIComponent(coords);
|
|
126
|
+
var profile = params.routing_profile || 'mapbox/driving-traffic';
|
|
127
|
+
|
|
128
|
+
var qp = new URLSearchParams();
|
|
129
|
+
qp.append('access_token', publicToken);
|
|
130
|
+
qp.append('geometries', 'geojson');
|
|
131
|
+
qp.append('alternatives', params.alternatives ? 'true' : 'false');
|
|
132
|
+
qp.append(
|
|
133
|
+
'annotations',
|
|
134
|
+
profile === 'mapbox/driving-traffic'
|
|
135
|
+
? 'distance,congestion,speed'
|
|
136
|
+
: 'distance,speed'
|
|
137
|
+
);
|
|
138
|
+
qp.append('overview', 'full');
|
|
139
|
+
|
|
140
|
+
if (params.depart_at) {
|
|
141
|
+
qp.append('depart_at', formatIsoDateTimeClient(params.depart_at));
|
|
142
|
+
} else if (params.arrive_by) {
|
|
143
|
+
qp.append('arrive_by', formatIsoDateTimeClient(params.arrive_by));
|
|
144
|
+
}
|
|
145
|
+
if (params.max_height !== undefined && params.max_height !== null) {
|
|
146
|
+
qp.append('max_height', String(params.max_height));
|
|
147
|
+
}
|
|
148
|
+
if (params.max_width !== undefined && params.max_width !== null) {
|
|
149
|
+
qp.append('max_width', String(params.max_width));
|
|
150
|
+
}
|
|
151
|
+
if (params.max_weight !== undefined && params.max_weight !== null) {
|
|
152
|
+
qp.append('max_weight', String(params.max_weight));
|
|
153
|
+
}
|
|
154
|
+
qp.append('steps', 'true');
|
|
155
|
+
|
|
156
|
+
var queryString = qp.toString();
|
|
157
|
+
if (params.exclude) {
|
|
158
|
+
queryString += '&exclude=' + encodeExcludeClient(params.exclude);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return apiEndpoint + 'directions/v5/' + profile + '/' + encodedCoords + '?' + queryString;
|
|
162
|
+
}
|
|
163
|
+
// Exposed so the parity test (Node vm sandbox) can call this in isolation.
|
|
164
|
+
window.__buildDirectionsApiUrl = buildDirectionsApiUrl;
|
|
165
|
+
|
|
166
|
+
// Params arrive via postMessage and are untrusted: they get interpolated
|
|
167
|
+
// into the request URL, so validate the pieces our encoding does not
|
|
168
|
+
// neutralize. routing_profile is spliced into the URL path unencoded, and
|
|
169
|
+
// encodeExcludeClient only escapes ',', '(', ')' and spaces — characters
|
|
170
|
+
// like '&' or '../' path segments would otherwise let a hostile sibling
|
|
171
|
+
// frame reshape the request. Server-side input is zod-validated before it
|
|
172
|
+
// reaches buildDirectionsRequestUrl; this mirrors those guarantees for
|
|
173
|
+
// the client copy.
|
|
174
|
+
function isSafeDirectionsParams(params) {
|
|
175
|
+
if (!params || !Array.isArray(params.coordinates)) return false;
|
|
176
|
+
if (params.coordinates.length < 2) return false;
|
|
177
|
+
for (var i = 0; i < params.coordinates.length; i++) {
|
|
178
|
+
var c = params.coordinates[i];
|
|
179
|
+
if (!c || typeof c.longitude !== 'number' || !isFinite(c.longitude)) return false;
|
|
180
|
+
if (typeof c.latitude !== 'number' || !isFinite(c.latitude)) return false;
|
|
181
|
+
}
|
|
182
|
+
if (params.routing_profile !== undefined && params.routing_profile !== null) {
|
|
183
|
+
if (typeof params.routing_profile !== 'string') return false;
|
|
184
|
+
if (!/^mapbox\\/[a-z-]+$/.test(params.routing_profile)) return false;
|
|
185
|
+
}
|
|
186
|
+
if (params.exclude !== undefined && params.exclude !== null) {
|
|
187
|
+
if (typeof params.exclude !== 'string') return false;
|
|
188
|
+
if (!/^[A-Za-z0-9_,.() -]+$/.test(params.exclude)) return false;
|
|
189
|
+
}
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function fetchRouteFromDirectionsApi(params) {
|
|
194
|
+
// Every delivery (tool-input notification or baked initial-data) starts
|
|
195
|
+
// a new render cycle, even when the guard below prevents the fetch from
|
|
196
|
+
// actually running — the new call must still invalidate the previous
|
|
197
|
+
// cycle's in-flight callbacks and error-suppression state.
|
|
198
|
+
generation++;
|
|
199
|
+
if (!TOKEN || !isSafeDirectionsParams(params)) return;
|
|
200
|
+
var gen = generation; // captured by the callbacks below
|
|
201
|
+
selfFetchGeneration = gen; // marked only when the fetch actually proceeds
|
|
202
|
+
var url = buildDirectionsApiUrl(params, TOKEN, API_ENDPOINT);
|
|
203
|
+
fetch(url)
|
|
204
|
+
.then(function(res) {
|
|
205
|
+
if (!res.ok) {
|
|
206
|
+
return res
|
|
207
|
+
.json()
|
|
208
|
+
.catch(function() { return null; })
|
|
209
|
+
.then(function(body) {
|
|
210
|
+
var msg =
|
|
211
|
+
body && body.message
|
|
212
|
+
? body.message
|
|
213
|
+
: 'Directions API error (' + res.status + ')';
|
|
214
|
+
throw new Error(msg);
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
return res.json();
|
|
218
|
+
})
|
|
219
|
+
.then(function(data) {
|
|
220
|
+
if (gen !== generation) return; // stale: a newer call started
|
|
221
|
+
if (renderedGeneration === gen) return; // cycle already drawn (tool-result won)
|
|
222
|
+
var route = data && data.routes && data.routes[0];
|
|
223
|
+
var picked = route ? pickRouteGeometry(route) : null;
|
|
224
|
+
if (picked) {
|
|
225
|
+
renderRoute(picked);
|
|
226
|
+
} else {
|
|
227
|
+
showError('Directions API returned no route.');
|
|
228
|
+
}
|
|
229
|
+
})
|
|
230
|
+
.catch(function(err) {
|
|
231
|
+
if (gen !== generation) return;
|
|
232
|
+
if (renderedGeneration === gen) return;
|
|
233
|
+
showError(
|
|
234
|
+
'Could not fetch route: ' + (err && err.message ? err.message : err)
|
|
235
|
+
);
|
|
236
|
+
});
|
|
237
|
+
}
|
|
83
238
|
|
|
84
239
|
// -------------------------------------------------------------------------
|
|
85
240
|
// MCP App postMessage protocol (skipped silently in MCP-UI rawHtml mode)
|
|
@@ -103,6 +258,14 @@ ${initialDataScript}
|
|
|
103
258
|
}
|
|
104
259
|
|
|
105
260
|
window.addEventListener('message', function(event) {
|
|
261
|
+
// Only the embedding host (parent frame) is a legitimate sender. Any
|
|
262
|
+
// frame in the page can obtain this window's reference and postMessage
|
|
263
|
+
// crafted notifications; pinning the source window blocks that while
|
|
264
|
+
// staying host-agnostic — the host's origin is unknowable at
|
|
265
|
+
// HTML-generation time, so an origin allowlist isn't possible for a
|
|
266
|
+
// portable MCP App. (Standalone/top-level, window.parent === window,
|
|
267
|
+
// so self-posted messages still work for manual testing.)
|
|
268
|
+
if (event.source !== window.parent) return;
|
|
106
269
|
var message = event.data;
|
|
107
270
|
if (!message || typeof message !== 'object') return;
|
|
108
271
|
|
|
@@ -113,6 +276,9 @@ ${initialDataScript}
|
|
|
113
276
|
else handlers.resolve(message.result);
|
|
114
277
|
return;
|
|
115
278
|
}
|
|
279
|
+
if (message.method === 'ui/notifications/tool-input' && message.params) {
|
|
280
|
+
fetchRouteFromDirectionsApi(message.params.arguments);
|
|
281
|
+
}
|
|
116
282
|
if (message.method === 'ui/notifications/tool-result' && message.params) {
|
|
117
283
|
handleToolResult(message.params);
|
|
118
284
|
}
|
|
@@ -176,31 +342,32 @@ ${initialDataScript}
|
|
|
176
342
|
initMap();
|
|
177
343
|
|
|
178
344
|
// -------------------------------------------------------------------------
|
|
179
|
-
// Initial data path (MCP-UI rawHtml):
|
|
180
|
-
//
|
|
345
|
+
// Initial data path (MCP-UI rawHtml): the tool call's input params were
|
|
346
|
+
// baked in server-side. Self-fetch the route from the Directions API
|
|
347
|
+
// rather than relying on baked-in geometry from the tool response.
|
|
181
348
|
// -------------------------------------------------------------------------
|
|
182
349
|
function consumeInitialData() {
|
|
183
350
|
var el = document.getElementById('initial-data');
|
|
184
351
|
if (!el || !el.textContent) return;
|
|
185
352
|
try {
|
|
186
353
|
var data = JSON.parse(el.textContent);
|
|
187
|
-
if (!data || !data.
|
|
188
|
-
|
|
189
|
-
var route = pickRouteGeometry({
|
|
190
|
-
geometry: data.geometry,
|
|
191
|
-
distance: data.distance,
|
|
192
|
-
duration: data.duration
|
|
193
|
-
});
|
|
194
|
-
if (route) {
|
|
195
|
-
if (data.summary) route.summary = data.summary;
|
|
196
|
-
drawRoute(route);
|
|
197
|
-
}
|
|
354
|
+
if (!data || !data.params) return;
|
|
355
|
+
fetchRouteFromDirectionsApi(data.params);
|
|
198
356
|
} catch (_) { /* ignore */ }
|
|
199
357
|
}
|
|
200
358
|
|
|
201
359
|
function handleToolResult(result) {
|
|
360
|
+
// A tool-result that isn't paired with this cycle's self-fetch (no
|
|
361
|
+
// tool-input was delivered for it — e.g. hosts that only send
|
|
362
|
+
// tool-result) represents a new tool call, so it starts its own render
|
|
363
|
+
// cycle. A paired result belongs to the cycle its tool-input opened;
|
|
364
|
+
// bumping for it would wrongly invalidate the in-flight self-fetch.
|
|
365
|
+
if (selfFetchGeneration !== generation) generation++;
|
|
202
366
|
var route = extractRoute(result);
|
|
203
367
|
if (route) {
|
|
368
|
+
// Authoritative geometry: always (re)render — drawRoute removes the
|
|
369
|
+
// previous route's layers/markers, which is what lets a host reuse
|
|
370
|
+
// one iframe across sequential directions_tool calls.
|
|
204
371
|
renderRoute(route);
|
|
205
372
|
return;
|
|
206
373
|
}
|
|
@@ -211,28 +378,39 @@ ${initialDataScript}
|
|
|
211
378
|
// MCP Apps host resources/read bridge.
|
|
212
379
|
var tempUri = findTempResourceUri(result);
|
|
213
380
|
if (tempUri) {
|
|
381
|
+
var gen = generation;
|
|
214
382
|
loadingEl.textContent = 'Fetching full route…';
|
|
215
383
|
sendRequest('resources/read', { uri: tempUri }).then(
|
|
216
384
|
function(rr) {
|
|
385
|
+
if (gen !== generation) return; // stale: a newer call started
|
|
217
386
|
var fetched = readResourceJson(rr);
|
|
218
387
|
var fetchedRoute = fetched ? extractRoute({ structuredContent: fetched }) : null;
|
|
219
388
|
if (fetchedRoute) {
|
|
220
389
|
renderRoute(fetchedRoute);
|
|
221
|
-
} else {
|
|
390
|
+
} else if (renderedGeneration !== gen) {
|
|
222
391
|
showError('Could not parse route from the temporary resource.');
|
|
223
392
|
}
|
|
224
393
|
},
|
|
225
394
|
function(err) {
|
|
395
|
+
if (gen !== generation || renderedGeneration === gen) return;
|
|
226
396
|
showError('Could not read temporary resource: ' + (err && err.message ? err.message : err));
|
|
227
397
|
}
|
|
228
398
|
);
|
|
229
399
|
return;
|
|
230
400
|
}
|
|
231
401
|
|
|
402
|
+
// No geometry in this result. Suppress the hard error only when this
|
|
403
|
+
// cycle's self-fetch is handling it (in flight, already rendered, or it
|
|
404
|
+
// already reported its own error via its .catch() handler). An unpaired
|
|
405
|
+
// result opened a fresh cycle above, so a route left over from an
|
|
406
|
+
// earlier call never suppresses this error.
|
|
407
|
+
if (selfFetchGeneration === generation) return;
|
|
408
|
+
|
|
232
409
|
showError('Could not find route data in tool result.');
|
|
233
410
|
}
|
|
234
411
|
|
|
235
412
|
function renderRoute(route) {
|
|
413
|
+
renderedGeneration = generation;
|
|
236
414
|
if (route.summary) {
|
|
237
415
|
summaryEl.textContent = route.summary;
|
|
238
416
|
summaryEl.style.display = 'block';
|
|
@@ -388,6 +566,8 @@ ${initialDataScript}
|
|
|
388
566
|
return;
|
|
389
567
|
}
|
|
390
568
|
|
|
569
|
+
errorEl.style.display = 'none';
|
|
570
|
+
|
|
391
571
|
if (route.summary && summaryEl.style.display === 'none') {
|
|
392
572
|
summaryEl.textContent = route.summary;
|
|
393
573
|
summaryEl.style.display = 'block';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directionsAppHtml.js","sourceRoot":"","sources":["../../../../src/resources/ui-apps/directionsAppHtml.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC
|
|
1
|
+
{"version":3,"file":"directionsAppHtml.js","sourceRoot":"","sources":["../../../../src/resources/ui-apps/directionsAppHtml.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAkB1C,MAAM,UAAU,uBAAuB,CAAC,MAKvC;IACC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC;IAExD,MAAM,iBAAiB,GAAG,WAAW;QACnC,CAAC,CAAC,qDAAqD,eAAe,CAClE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAC5B,WAAW;QACd,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;mDAM0C,SAAS;oDACR,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B3D,iBAAiB;;;;gBAIH,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;uBACpB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8iB1C,CAAC;AACT,CAAC;AAED,SAAS,eAAe,CAAC,CAAS;IAChC,qEAAqE;IACrE,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectionsTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/directions-tool/DirectionsTool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectionsTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/directions-tool/DirectionsTool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EACL,wBAAwB,EAEzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASzD,qBAAa,cAAe,SAAQ,kBAAkB,CACpD,OAAO,qBAAqB,EAC5B,OAAO,wBAAwB,CAChC;IACC,IAAI,SAAqB;IACzB,WAAW,SAM+B;IAC1C,WAAW;;;;;;MAMT;IACF,QAAQ,CAAC,IAAI;;;;;;;;MAQX;gBAEU,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;cAOhC,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,EAC5C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC;CAyQ3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectionsTool.input.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/directions-tool/DirectionsTool.input.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoHxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DirectionsTool.input.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/directions-tool/DirectionsTool.input.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoHxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;iBAsKhC,CAAC"}
|
|
@@ -119,8 +119,12 @@ export const DirectionsInputSchema = z.object({
|
|
|
119
119
|
.optional()
|
|
120
120
|
.default('none')
|
|
121
121
|
.describe('The format of the returned geometry. Options: \n' +
|
|
122
|
-
'- none (default): no geometry object is returned
|
|
123
|
-
'
|
|
122
|
+
'- none (default): no geometry object is returned in the response. The map preview UI ' +
|
|
123
|
+
'still renders the route on its own; use this whenever you do not need the raw ' +
|
|
124
|
+
'coordinates yourself.\n' +
|
|
125
|
+
'- geojson: as GeoJSON LineString (might be very long as there could be a lot of ' +
|
|
126
|
+
'points). Only needed when you (the caller) require the coordinates directly — not ' +
|
|
127
|
+
'required for the map preview to work.'),
|
|
124
128
|
max_height: z
|
|
125
129
|
.number()
|
|
126
130
|
.min(0, 'Vehicle height must be between 0 and 10 meters')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectionsTool.input.schema.js","sourceRoot":"","sources":["../../../../src/tools/directions-tool/DirectionsTool.input.schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DirectionsTool.input.schema.js","sourceRoot":"","sources":["../../../../src/tools/directions-tool/DirectionsTool.input.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
// Copyright (c) Mapbox, Inc.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
import { URLSearchParams } from 'node:url';
|
|
4
3
|
import { randomBytes, randomUUID } from 'node:crypto';
|
|
5
4
|
import { createUIResource } from '@mcp-ui/server';
|
|
6
5
|
import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
|
|
7
6
|
import { cleanResponseData } from './cleanResponseData.js';
|
|
8
|
-
import {
|
|
7
|
+
import { buildDirectionsRequestUrl } from './buildDirectionsRequestUrl.js';
|
|
9
8
|
import { DirectionsInputSchema } from './DirectionsTool.input.schema.js';
|
|
10
9
|
import { DirectionsResponseSchema } from './DirectionsTool.output.schema.js';
|
|
11
10
|
import { temporaryResourceManager } from '../../utils/temporaryResourceManager.js';
|
|
@@ -17,9 +16,11 @@ import { renderDirectionsAppHtml } from '../../resources/ui-apps/directionsAppHt
|
|
|
17
16
|
export class DirectionsTool extends MapboxApiBasedTool {
|
|
18
17
|
name = 'directions_tool';
|
|
19
18
|
description = 'Fetches directions from Mapbox API based on provided coordinates and direction method. ' +
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
19
|
+
'This tool always attaches an interactive map preview UI to its result; the map fetches and ' +
|
|
20
|
+
'renders its own route independently, so it works regardless of the geometries parameter. ' +
|
|
21
|
+
'Use geometries="none" (default) for compact text/data responses (distance, duration, ' +
|
|
22
|
+
'turn-by-turn instructions). Use geometries="geojson" only when you need the raw route ' +
|
|
23
|
+
'coordinates in the response yourself.';
|
|
23
24
|
annotations = {
|
|
24
25
|
title: 'Directions Tool',
|
|
25
26
|
readOnlyHint: true,
|
|
@@ -157,63 +158,11 @@ export class DirectionsTool extends MapboxApiBasedTool {
|
|
|
157
158
|
isError: true
|
|
158
159
|
};
|
|
159
160
|
}
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const queryParams = new URLSearchParams();
|
|
166
|
-
queryParams.append('access_token', accessToken);
|
|
167
|
-
// Only add geometries parameter if not 'none'
|
|
168
|
-
if (input.geometries !== 'none') {
|
|
169
|
-
queryParams.append('geometries', input.geometries);
|
|
170
|
-
}
|
|
171
|
-
queryParams.append('alternatives', input.alternatives.toString());
|
|
172
|
-
// Add annotations parameter
|
|
173
|
-
if (input.routing_profile === 'mapbox/driving-traffic') {
|
|
174
|
-
// congestion is available only when driving
|
|
175
|
-
queryParams.append('annotations', 'distance,congestion,speed');
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
queryParams.append('annotations', 'distance,speed');
|
|
179
|
-
}
|
|
180
|
-
// For annotations to work, overview must be set to 'full'
|
|
181
|
-
queryParams.append('overview', 'full');
|
|
182
|
-
// Add depart_at or arrive_by parameter if provided, converting format if needed
|
|
183
|
-
if (input.depart_at) {
|
|
184
|
-
const formattedDateTime = formatIsoDateTime(input.depart_at);
|
|
185
|
-
queryParams.append('depart_at', formattedDateTime);
|
|
186
|
-
}
|
|
187
|
-
else if (input.arrive_by) {
|
|
188
|
-
const formattedDateTime = formatIsoDateTime(input.arrive_by);
|
|
189
|
-
queryParams.append('arrive_by', formattedDateTime);
|
|
190
|
-
}
|
|
191
|
-
// Add vehicle dimension parameters if provided
|
|
192
|
-
if (input.max_height !== undefined) {
|
|
193
|
-
queryParams.append('max_height', input.max_height.toString());
|
|
194
|
-
}
|
|
195
|
-
if (input.max_width !== undefined) {
|
|
196
|
-
queryParams.append('max_width', input.max_width.toString());
|
|
197
|
-
}
|
|
198
|
-
if (input.max_weight !== undefined) {
|
|
199
|
-
queryParams.append('max_weight', input.max_weight.toString());
|
|
200
|
-
}
|
|
201
|
-
queryParams.append('steps', 'true');
|
|
202
|
-
let queryString = queryParams.toString();
|
|
203
|
-
// Add exclude parameter if provided (ensuring proper encoding of special characters)
|
|
204
|
-
if (input.exclude) {
|
|
205
|
-
// Custom encoding function to match the expected format in tests
|
|
206
|
-
const customEncodeForExclude = (str) => {
|
|
207
|
-
return str
|
|
208
|
-
.replace(/,/g, '%2C') // Encode comma
|
|
209
|
-
.replace(/\(/g, '%28') // Encode opening parenthesis
|
|
210
|
-
.replace(/\)/g, '%29') // Encode closing parenthesis
|
|
211
|
-
.replace(/ /g, '%20'); // Encode space as %20, not +
|
|
212
|
-
};
|
|
213
|
-
const excludeEncoded = customEncodeForExclude(input.exclude);
|
|
214
|
-
queryString += `&exclude=${excludeEncoded}`;
|
|
215
|
-
}
|
|
216
|
-
const url = `${MapboxApiBasedTool.mapboxApiEndpoint}directions/v5/${input.routing_profile}/${encodedCoords}?${queryString}`;
|
|
161
|
+
const url = buildDirectionsRequestUrl({
|
|
162
|
+
input,
|
|
163
|
+
accessToken,
|
|
164
|
+
apiEndpoint: MapboxApiBasedTool.mapboxApiEndpoint
|
|
165
|
+
});
|
|
217
166
|
const response = await this.httpRequest(url);
|
|
218
167
|
if (!response.ok) {
|
|
219
168
|
const errorMessage = await this.getErrorMessage(response);
|
|
@@ -239,6 +188,20 @@ export class DirectionsTool extends MapboxApiBasedTool {
|
|
|
239
188
|
this.log('warning', `DirectionsTool: Response validation failed: ${error}`);
|
|
240
189
|
validatedData = cleanedData;
|
|
241
190
|
}
|
|
191
|
+
let uiResourceBlock;
|
|
192
|
+
if (isMcpUiEnabled()) {
|
|
193
|
+
const inlineHtml = await tryRenderInlineUiHtml(input, accessToken, this.httpRequest);
|
|
194
|
+
if (inlineHtml) {
|
|
195
|
+
uiResourceBlock = createUIResource({
|
|
196
|
+
uri: `ui://mapbox/directions/${randomUUID()}`,
|
|
197
|
+
content: { type: 'rawHtml', htmlString: inlineHtml },
|
|
198
|
+
encoding: 'text',
|
|
199
|
+
uiMetadata: {
|
|
200
|
+
'preferred-frame-size': ['100%', '500px']
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
242
205
|
// Check response size and conditionally create temporary resource
|
|
243
206
|
const RESPONSE_SIZE_THRESHOLD = 50 * 1024; // 50KB
|
|
244
207
|
const responseText = JSON.stringify(validatedData, null, 2);
|
|
@@ -287,8 +250,13 @@ ${responseSize > RESPONSE_SIZE_THRESHOLD ? `\n⚠️ Full response (${Math.round
|
|
|
287
250
|
legs: undefined
|
|
288
251
|
}))
|
|
289
252
|
};
|
|
253
|
+
const content = [
|
|
254
|
+
{ type: 'text', text: summaryText }
|
|
255
|
+
];
|
|
256
|
+
if (uiResourceBlock)
|
|
257
|
+
content.push(uiResourceBlock);
|
|
290
258
|
return {
|
|
291
|
-
content
|
|
259
|
+
content,
|
|
292
260
|
structuredContent: summaryStructuredContent,
|
|
293
261
|
isError: false
|
|
294
262
|
};
|
|
@@ -297,22 +265,8 @@ ${responseSize > RESPONSE_SIZE_THRESHOLD ? `\n⚠️ Full response (${Math.round
|
|
|
297
265
|
const content = [
|
|
298
266
|
{ type: 'text', text: responseText }
|
|
299
267
|
];
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
// carries a renderable GeoJSON geometry — i.e. geometries=geojson.
|
|
303
|
-
if (isMcpUiEnabled()) {
|
|
304
|
-
const inlineHtml = await tryRenderInlineUiHtml(validatedData, accessToken, this.httpRequest);
|
|
305
|
-
if (inlineHtml) {
|
|
306
|
-
content.push(createUIResource({
|
|
307
|
-
uri: `ui://mapbox/directions/${randomUUID()}`,
|
|
308
|
-
content: { type: 'rawHtml', htmlString: inlineHtml },
|
|
309
|
-
encoding: 'text',
|
|
310
|
-
uiMetadata: {
|
|
311
|
-
'preferred-frame-size': ['100%', '500px']
|
|
312
|
-
}
|
|
313
|
-
}));
|
|
314
|
-
}
|
|
315
|
-
}
|
|
268
|
+
if (uiResourceBlock)
|
|
269
|
+
content.push(uiResourceBlock);
|
|
316
270
|
return {
|
|
317
271
|
content,
|
|
318
272
|
structuredContent: validatedData,
|
|
@@ -321,25 +275,14 @@ ${responseSize > RESPONSE_SIZE_THRESHOLD ? `\n⚠️ Full response (${Math.round
|
|
|
321
275
|
}
|
|
322
276
|
}
|
|
323
277
|
/**
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
*
|
|
278
|
+
* Render the same DirectionsAppHtml as the MCP Apps resource, but with the
|
|
279
|
+
* call's input parameters baked in so the iframe can self-fetch the route
|
|
280
|
+
* from the Directions API — MCP-UI clients don't fetch external resources,
|
|
281
|
+
* so this is what makes the map work for them too. Attached unconditionally;
|
|
282
|
+
* the only failure mode is no public token being resolvable, in which case
|
|
283
|
+
* the caller falls back to text-only output.
|
|
329
284
|
*/
|
|
330
|
-
async function tryRenderInlineUiHtml(
|
|
331
|
-
const route = data.routes?.[0];
|
|
332
|
-
const geometry = route?.geometry;
|
|
333
|
-
// Accept either a GeoJSON LineString object or a polyline string — the
|
|
334
|
-
// iframe normalizes both shapes before rendering.
|
|
335
|
-
const hasGeojson = geometry &&
|
|
336
|
-
typeof geometry === 'object' &&
|
|
337
|
-
geometry.type === 'LineString' &&
|
|
338
|
-
Array.isArray(geometry.coordinates);
|
|
339
|
-
const hasPolyline = typeof geometry === 'string' && geometry.length > 0;
|
|
340
|
-
if (!hasGeojson && !hasPolyline) {
|
|
341
|
-
return undefined;
|
|
342
|
-
}
|
|
285
|
+
async function tryRenderInlineUiHtml(input, accessToken, httpRequest) {
|
|
343
286
|
const publicToken = await resolveMapboxPublicToken({
|
|
344
287
|
accessToken,
|
|
345
288
|
apiEndpoint: MapboxApiBasedTool.mapboxApiEndpoint,
|
|
@@ -347,21 +290,21 @@ async function tryRenderInlineUiHtml(data, accessToken, httpRequest) {
|
|
|
347
290
|
});
|
|
348
291
|
if (!publicToken)
|
|
349
292
|
return undefined;
|
|
350
|
-
const summaryParts = [];
|
|
351
|
-
if (typeof route?.distance === 'number') {
|
|
352
|
-
summaryParts.push(`${(route.distance / 1609.34).toFixed(1)} mi`);
|
|
353
|
-
}
|
|
354
|
-
if (typeof route?.duration === 'number') {
|
|
355
|
-
summaryParts.push(`${Math.round(route.duration / 60)} min`);
|
|
356
|
-
}
|
|
357
|
-
const summary = summaryParts.length
|
|
358
|
-
? `Route: ${summaryParts.join(', ')}`
|
|
359
|
-
: 'Route';
|
|
360
293
|
return renderDirectionsAppHtml({
|
|
361
294
|
publicToken,
|
|
295
|
+
apiEndpoint: MapboxApiBasedTool.mapboxApiEndpoint,
|
|
362
296
|
initialData: {
|
|
363
|
-
|
|
364
|
-
|
|
297
|
+
params: {
|
|
298
|
+
coordinates: input.coordinates,
|
|
299
|
+
routing_profile: input.routing_profile,
|
|
300
|
+
alternatives: input.alternatives,
|
|
301
|
+
exclude: input.exclude,
|
|
302
|
+
depart_at: input.depart_at,
|
|
303
|
+
arrive_by: input.arrive_by,
|
|
304
|
+
max_height: input.max_height,
|
|
305
|
+
max_width: input.max_width,
|
|
306
|
+
max_weight: input.max_weight
|
|
307
|
+
}
|
|
365
308
|
}
|
|
366
309
|
});
|
|
367
310
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectionsTool.js","sourceRoot":"","sources":["../../../../src/tools/directions-tool/DirectionsTool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DirectionsTool.js","sourceRoot":"","sources":["../../../../src/tools/directions-tool/DirectionsTool.ts"],"names":[],"mappings":"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"}
|