@mapbox/mcp-server 0.6.1 → 0.8.1-dev.0
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/README.md +147 -23
- package/dist/commonjs/config/toolConfig.d.ts +10 -0
- package/dist/commonjs/config/toolConfig.d.ts.map +1 -1
- package/dist/commonjs/config/toolConfig.js +36 -0
- package/dist/commonjs/config/toolConfig.js.map +1 -1
- package/dist/commonjs/index.d.ts +1 -1
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +167 -13
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/prompts/BasePrompt.d.ts +40 -0
- package/dist/commonjs/prompts/BasePrompt.d.ts.map +1 -0
- package/dist/commonjs/prompts/BasePrompt.js +38 -0
- package/dist/commonjs/prompts/BasePrompt.js.map +1 -0
- package/dist/commonjs/prompts/FindPlacesNearbyPrompt.d.ts +22 -0
- package/dist/commonjs/prompts/FindPlacesNearbyPrompt.d.ts.map +1 -0
- package/dist/commonjs/prompts/FindPlacesNearbyPrompt.js +65 -0
- package/dist/commonjs/prompts/FindPlacesNearbyPrompt.js.map +1 -0
- package/dist/commonjs/prompts/GetDirectionsPrompt.d.ts +23 -0
- package/dist/commonjs/prompts/GetDirectionsPrompt.d.ts.map +1 -0
- package/dist/commonjs/prompts/GetDirectionsPrompt.js +67 -0
- package/dist/commonjs/prompts/GetDirectionsPrompt.js.map +1 -0
- package/dist/commonjs/prompts/ShowReachableAreasPrompt.d.ts +23 -0
- package/dist/commonjs/prompts/ShowReachableAreasPrompt.d.ts.map +1 -0
- package/dist/commonjs/prompts/ShowReachableAreasPrompt.js +70 -0
- package/dist/commonjs/prompts/ShowReachableAreasPrompt.js.map +1 -0
- package/dist/commonjs/prompts/promptRegistry.d.ts +29 -0
- package/dist/commonjs/prompts/promptRegistry.d.ts.map +1 -0
- package/dist/commonjs/prompts/promptRegistry.js +39 -0
- package/dist/commonjs/prompts/promptRegistry.js.map +1 -0
- package/dist/commonjs/resources/BaseResource.d.ts +28 -0
- package/dist/commonjs/resources/BaseResource.d.ts.map +1 -0
- package/dist/commonjs/resources/BaseResource.js +32 -0
- package/dist/commonjs/resources/BaseResource.js.map +1 -0
- package/dist/commonjs/resources/MapboxApiBasedResource.d.ts +35 -0
- package/dist/commonjs/resources/MapboxApiBasedResource.d.ts.map +1 -0
- package/dist/commonjs/resources/MapboxApiBasedResource.js +88 -0
- package/dist/commonjs/resources/MapboxApiBasedResource.js.map +1 -0
- package/dist/commonjs/resources/category-list/CategoryListResource.d.ts +27 -0
- package/dist/commonjs/resources/category-list/CategoryListResource.d.ts.map +1 -0
- package/dist/commonjs/resources/category-list/CategoryListResource.js +71 -0
- package/dist/commonjs/resources/category-list/CategoryListResource.js.map +1 -0
- package/dist/commonjs/resources/resourceRegistry.d.ts +6 -0
- package/dist/commonjs/resources/resourceRegistry.d.ts.map +1 -0
- package/dist/commonjs/resources/resourceRegistry.js +32 -0
- package/dist/commonjs/resources/resourceRegistry.js.map +1 -0
- package/dist/commonjs/tools/BaseTool.d.ts +7 -0
- package/dist/commonjs/tools/BaseTool.d.ts.map +1 -1
- package/dist/commonjs/tools/BaseTool.js +19 -0
- package/dist/commonjs/tools/BaseTool.js.map +1 -1
- package/dist/commonjs/tools/MapboxApiBasedTool.d.ts.map +1 -1
- package/dist/commonjs/tools/MapboxApiBasedTool.js +1 -1
- package/dist/commonjs/tools/MapboxApiBasedTool.js.map +1 -1
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.js +2 -2
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.js.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +4 -10
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.js +5 -43
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +2 -7
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +204 -204
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js +2 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +66 -66
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +28 -28
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts +28 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.input.schema.d.ts +10 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.input.schema.js +13 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js +141 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.output.schema.d.ts +19 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.output.schema.js +13 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +538 -538
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +17 -17
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.js +6 -30
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +2 -11
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +1514 -623
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +9 -4
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js +26 -7
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
- package/dist/commonjs/tools/toolRegistry.d.ts +2 -1
- package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
- package/dist/commonjs/tools/toolRegistry.js +2 -0
- package/dist/commonjs/tools/toolRegistry.js.map +1 -1
- package/dist/commonjs/tools/version-tool/VersionTool.d.ts.map +1 -1
- package/dist/commonjs/tools/version-tool/VersionTool.js +7 -7
- package/dist/commonjs/tools/version-tool/VersionTool.js.map +1 -1
- package/dist/commonjs/utils/httpPipeline.d.ts +5 -0
- package/dist/commonjs/utils/httpPipeline.d.ts.map +1 -1
- package/dist/commonjs/utils/httpPipeline.js +46 -1
- package/dist/commonjs/utils/httpPipeline.js.map +1 -1
- package/dist/commonjs/utils/tracing.d.ts.map +1 -1
- package/dist/commonjs/utils/tracing.js +17 -0
- package/dist/commonjs/utils/tracing.js.map +1 -1
- package/dist/commonjs/version.json +4 -4
- package/dist/esm/config/toolConfig.d.ts +10 -0
- package/dist/esm/config/toolConfig.d.ts.map +1 -1
- package/dist/esm/config/toolConfig.js +35 -0
- package/dist/esm/config/toolConfig.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +168 -14
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/prompts/BasePrompt.d.ts +40 -0
- package/dist/esm/prompts/BasePrompt.d.ts.map +1 -0
- package/dist/esm/prompts/BasePrompt.js +34 -0
- package/dist/esm/prompts/BasePrompt.js.map +1 -0
- package/dist/esm/prompts/FindPlacesNearbyPrompt.d.ts +22 -0
- package/dist/esm/prompts/FindPlacesNearbyPrompt.d.ts.map +1 -0
- package/dist/esm/prompts/FindPlacesNearbyPrompt.js +61 -0
- package/dist/esm/prompts/FindPlacesNearbyPrompt.js.map +1 -0
- package/dist/esm/prompts/GetDirectionsPrompt.d.ts +23 -0
- package/dist/esm/prompts/GetDirectionsPrompt.d.ts.map +1 -0
- package/dist/esm/prompts/GetDirectionsPrompt.js +63 -0
- package/dist/esm/prompts/GetDirectionsPrompt.js.map +1 -0
- package/dist/esm/prompts/ShowReachableAreasPrompt.d.ts +23 -0
- package/dist/esm/prompts/ShowReachableAreasPrompt.d.ts.map +1 -0
- package/dist/esm/prompts/ShowReachableAreasPrompt.js +66 -0
- package/dist/esm/prompts/ShowReachableAreasPrompt.js.map +1 -0
- package/dist/esm/prompts/promptRegistry.d.ts +29 -0
- package/dist/esm/prompts/promptRegistry.d.ts.map +1 -0
- package/dist/esm/prompts/promptRegistry.js +35 -0
- package/dist/esm/prompts/promptRegistry.js.map +1 -0
- package/dist/esm/resources/BaseResource.d.ts +28 -0
- package/dist/esm/resources/BaseResource.d.ts.map +1 -0
- package/dist/esm/resources/BaseResource.js +28 -0
- package/dist/esm/resources/BaseResource.js.map +1 -0
- package/dist/esm/resources/MapboxApiBasedResource.d.ts +35 -0
- package/dist/esm/resources/MapboxApiBasedResource.d.ts.map +1 -0
- package/dist/esm/resources/MapboxApiBasedResource.js +84 -0
- package/dist/esm/resources/MapboxApiBasedResource.js.map +1 -0
- package/dist/esm/resources/category-list/CategoryListResource.d.ts +27 -0
- package/dist/esm/resources/category-list/CategoryListResource.d.ts.map +1 -0
- package/dist/esm/resources/category-list/CategoryListResource.js +67 -0
- package/dist/esm/resources/category-list/CategoryListResource.js.map +1 -0
- package/dist/esm/resources/resourceRegistry.d.ts +6 -0
- package/dist/esm/resources/resourceRegistry.d.ts.map +1 -0
- package/dist/esm/resources/resourceRegistry.js +27 -0
- package/dist/esm/resources/resourceRegistry.js.map +1 -0
- package/dist/esm/tools/BaseTool.d.ts +7 -0
- package/dist/esm/tools/BaseTool.d.ts.map +1 -1
- package/dist/esm/tools/BaseTool.js +19 -0
- package/dist/esm/tools/BaseTool.js.map +1 -1
- package/dist/esm/tools/MapboxApiBasedTool.d.ts.map +1 -1
- package/dist/esm/tools/MapboxApiBasedTool.js +1 -1
- package/dist/esm/tools/MapboxApiBasedTool.js.map +1 -1
- package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
- package/dist/esm/tools/category-list-tool/CategoryListTool.js +2 -2
- package/dist/esm/tools/category-list-tool/CategoryListTool.js.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +4 -10
- package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.js +5 -43
- package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.js.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.js +2 -7
- package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +204 -204
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js +2 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +66 -66
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +28 -28
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts +28 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.input.schema.d.ts +10 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.input.schema.js +10 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.input.schema.js.map +1 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js +137 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.output.schema.d.ts +19 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.output.schema.js +10 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.output.schema.js.map +1 -0
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +538 -538
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +17 -17
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.js +6 -30
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.js.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +2 -11
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +1514 -623
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +9 -4
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -1
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js +26 -7
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
- package/dist/esm/tools/toolRegistry.d.ts +2 -1
- package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
- package/dist/esm/tools/toolRegistry.js +2 -0
- package/dist/esm/tools/toolRegistry.js.map +1 -1
- package/dist/esm/tools/version-tool/VersionTool.d.ts.map +1 -1
- package/dist/esm/tools/version-tool/VersionTool.js +7 -7
- package/dist/esm/tools/version-tool/VersionTool.js.map +1 -1
- package/dist/esm/utils/httpPipeline.d.ts +5 -0
- package/dist/esm/utils/httpPipeline.d.ts.map +1 -1
- package/dist/esm/utils/httpPipeline.js +44 -0
- package/dist/esm/utils/httpPipeline.js.map +1 -1
- package/dist/esm/utils/tracing.d.ts.map +1 -1
- package/dist/esm/utils/tracing.js +18 -1
- package/dist/esm/utils/tracing.js.map +1 -1
- package/dist/esm/version.json +4 -4
- package/package.json +8 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolConfig.js","sourceRoot":"","sources":["../../../src/config/toolConfig.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;
|
|
1
|
+
{"version":3,"file":"toolConfig.js","sourceRoot":"","sources":["../../../src/config/toolConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,50 +1,186 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// Copyright (c) Mapbox, Inc.
|
|
3
3
|
// Licensed under the MIT License.
|
|
4
|
+
// Load environment variables from .env file if present
|
|
5
|
+
// Use Node.js built-in util.parseEnv() and manually apply to override existing vars
|
|
6
|
+
import { parseEnv } from 'node:util';
|
|
7
|
+
import { readFileSync } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
import { SpanStatusCode } from '@opentelemetry/api';
|
|
4
11
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
12
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
13
|
+
import { ListPromptsRequestSchema, GetPromptRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
6
14
|
import { parseToolConfigFromArgs, filterTools } from './config/toolConfig.js';
|
|
7
15
|
import { getAllTools } from './tools/toolRegistry.js';
|
|
16
|
+
import { getAllResources } from './resources/resourceRegistry.js';
|
|
17
|
+
import { getAllPrompts, getPromptByName } from './prompts/promptRegistry.js';
|
|
8
18
|
import { getVersionInfo } from './utils/versionUtils.js';
|
|
9
|
-
import { initializeTracing, shutdownTracing, isTracingInitialized } from './utils/tracing.js';
|
|
10
|
-
|
|
19
|
+
import { initializeTracing, shutdownTracing, isTracingInitialized, getTracer } from './utils/tracing.js';
|
|
20
|
+
// Load .env from current working directory (where npm run is executed)
|
|
21
|
+
// This happens before tracing is initialized, but we'll add a span when tracing is ready
|
|
22
|
+
const envPath = join(process.cwd(), '.env');
|
|
23
|
+
let envLoadError = null;
|
|
24
|
+
let envLoadedCount = 0;
|
|
25
|
+
if (existsSync(envPath)) {
|
|
26
|
+
try {
|
|
27
|
+
// Read and parse .env file using Node.js built-in parseEnv
|
|
28
|
+
const envFile = readFileSync(envPath, 'utf-8');
|
|
29
|
+
const parsed = parseEnv(envFile);
|
|
30
|
+
// Apply parsed values to process.env (with override)
|
|
31
|
+
// Note: process.loadEnvFile() doesn't override, so we use parseEnv + manual assignment
|
|
32
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
33
|
+
process.env[key] = value;
|
|
34
|
+
envLoadedCount++;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
envLoadError = error instanceof Error ? error : new Error(String(error));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
11
41
|
const versionInfo = getVersionInfo();
|
|
12
42
|
// Parse configuration from command-line arguments
|
|
13
43
|
const config = parseToolConfigFromArgs();
|
|
14
44
|
// Get and filter tools based on configuration
|
|
15
45
|
const allTools = getAllTools();
|
|
16
46
|
const enabledTools = filterTools(allTools, config);
|
|
47
|
+
// Get all resources
|
|
48
|
+
const allResources = getAllResources();
|
|
17
49
|
// Create an MCP server
|
|
18
50
|
const server = new McpServer({
|
|
19
51
|
name: versionInfo.name,
|
|
20
52
|
version: versionInfo.version
|
|
21
53
|
}, {
|
|
22
54
|
capabilities: {
|
|
23
|
-
tools: {}
|
|
55
|
+
tools: {},
|
|
56
|
+
resources: {},
|
|
57
|
+
prompts: {}
|
|
24
58
|
}
|
|
25
59
|
});
|
|
26
60
|
// Register enabled tools to the server
|
|
27
61
|
enabledTools.forEach((tool) => {
|
|
28
62
|
tool.installTo(server);
|
|
29
63
|
});
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
64
|
+
// Register all resources to the server
|
|
65
|
+
allResources.forEach((resource) => {
|
|
66
|
+
resource.installTo(server);
|
|
67
|
+
});
|
|
68
|
+
// Register prompt handlers
|
|
69
|
+
server.server.setRequestHandler(ListPromptsRequestSchema, async () => {
|
|
70
|
+
const allPrompts = getAllPrompts();
|
|
71
|
+
return {
|
|
72
|
+
prompts: allPrompts.map((prompt) => prompt.getMetadata())
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
server.server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
76
|
+
const { name, arguments: args } = request.params;
|
|
77
|
+
const prompt = getPromptByName(name);
|
|
78
|
+
if (!prompt) {
|
|
79
|
+
throw new Error(`Prompt not found: ${name}`);
|
|
35
80
|
}
|
|
36
|
-
|
|
81
|
+
// Convert args to object for easier access
|
|
82
|
+
const argsObj = {};
|
|
83
|
+
if (args && typeof args === 'object') {
|
|
84
|
+
Object.assign(argsObj, args);
|
|
85
|
+
}
|
|
86
|
+
// Get the prompt messages with filled-in arguments
|
|
87
|
+
const messages = prompt.getMessages(argsObj);
|
|
88
|
+
return {
|
|
89
|
+
description: prompt.description,
|
|
90
|
+
messages
|
|
91
|
+
};
|
|
92
|
+
});
|
|
37
93
|
async function main() {
|
|
38
94
|
// Initialize OpenTelemetry tracing if not in test mode
|
|
95
|
+
let tracingInitialized = false;
|
|
39
96
|
if (process.env.NODE_ENV !== 'test' && !process.env.VITEST) {
|
|
40
97
|
try {
|
|
41
98
|
await initializeTracing();
|
|
42
|
-
|
|
99
|
+
tracingInitialized = isTracingInitialized();
|
|
100
|
+
// Record .env loading as a span (retrospectively since it happened before tracing init)
|
|
101
|
+
if (tracingInitialized) {
|
|
102
|
+
const tracer = getTracer();
|
|
103
|
+
const span = tracer.startSpan('config.load_env', {
|
|
104
|
+
attributes: {
|
|
105
|
+
'config.file.path': envPath,
|
|
106
|
+
'config.file.exists': existsSync(envPath),
|
|
107
|
+
'config.vars.loaded': envLoadedCount,
|
|
108
|
+
'operation.type': 'config_load'
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
if (envLoadError) {
|
|
112
|
+
span.recordException(envLoadError);
|
|
113
|
+
span.setStatus({
|
|
114
|
+
code: SpanStatusCode.ERROR,
|
|
115
|
+
message: envLoadError.message
|
|
116
|
+
});
|
|
117
|
+
span.setAttribute('error.type', envLoadError.name);
|
|
118
|
+
span.setAttribute('error.message', envLoadError.message);
|
|
119
|
+
}
|
|
120
|
+
else if (envLoadedCount > 0) {
|
|
121
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
122
|
+
span.setAttribute('config.load.success', true);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// No error, but no variables loaded either (file might be empty or not exist)
|
|
126
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
127
|
+
span.setAttribute('config.load.success', true);
|
|
128
|
+
span.setAttribute('config.load.empty', true);
|
|
129
|
+
}
|
|
130
|
+
span.end();
|
|
131
|
+
}
|
|
43
132
|
}
|
|
44
133
|
catch (error) {
|
|
45
|
-
|
|
134
|
+
// Tracing initialization failed, log it but continue without tracing
|
|
135
|
+
server.server.sendLoggingMessage({
|
|
136
|
+
level: 'warning',
|
|
137
|
+
data: `Failed to initialize tracing: ${error instanceof Error ? error.message : String(error)}`
|
|
138
|
+
});
|
|
46
139
|
}
|
|
47
140
|
}
|
|
141
|
+
// Log tracing status and configuration
|
|
142
|
+
if (tracingInitialized) {
|
|
143
|
+
const tracingConfig = {
|
|
144
|
+
status: 'enabled',
|
|
145
|
+
endpoint: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'not set',
|
|
146
|
+
serviceName: process.env.OTEL_SERVICE_NAME || 'mapbox-mcp-server (default)'
|
|
147
|
+
};
|
|
148
|
+
server.server.sendLoggingMessage({
|
|
149
|
+
level: 'info',
|
|
150
|
+
data: `OpenTelemetry tracing enabled - Endpoint: ${tracingConfig.endpoint}, Service: ${tracingConfig.serviceName}`
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
server.server.sendLoggingMessage({
|
|
155
|
+
level: 'info',
|
|
156
|
+
data: 'OpenTelemetry tracing: disabled'
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
// Send MCP logging message about environment variables
|
|
160
|
+
if (envLoadError) {
|
|
161
|
+
server.server.sendLoggingMessage({
|
|
162
|
+
level: 'warning',
|
|
163
|
+
data: `Warning loading .env file: ${envLoadError.message}`
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
else if (envLoadedCount > 0) {
|
|
167
|
+
server.server.sendLoggingMessage({
|
|
168
|
+
level: 'info',
|
|
169
|
+
data: `Loaded ${envLoadedCount} environment variables from ${envPath}`
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
const relevantEnvVars = Object.freeze({
|
|
173
|
+
MAPBOX_ACCESS_TOKEN: process.env.MAPBOX_ACCESS_TOKEN ? '***' : undefined,
|
|
174
|
+
MAPBOX_API_ENDPOINT: process.env.MAPBOX_API_ENDPOINT,
|
|
175
|
+
OTEL_SERVICE_NAME: process.env.OTEL_SERVICE_NAME,
|
|
176
|
+
OTEL_EXPORTER_OTLP_ENDPOINT: process.env.OTEL_EXPORTER_OTLP_ENDPOINT,
|
|
177
|
+
OTEL_TRACING_ENABLED: process.env.OTEL_TRACING_ENABLED,
|
|
178
|
+
NODE_ENV: process.env.NODE_ENV
|
|
179
|
+
});
|
|
180
|
+
server.server.sendLoggingMessage({
|
|
181
|
+
level: 'debug',
|
|
182
|
+
data: JSON.stringify(relevantEnvVars, null, 2)
|
|
183
|
+
});
|
|
48
184
|
// Start receiving messages on stdin and sending messages on stdout
|
|
49
185
|
const transport = new StdioServerTransport();
|
|
50
186
|
await server.connect(transport);
|
|
@@ -55,13 +191,31 @@ async function shutdown() {
|
|
|
55
191
|
try {
|
|
56
192
|
await shutdownTracing();
|
|
57
193
|
}
|
|
58
|
-
catch (
|
|
59
|
-
|
|
194
|
+
catch (error) {
|
|
195
|
+
// Tracing shutdown failed, log via MCP if server is available
|
|
196
|
+
try {
|
|
197
|
+
server.server.sendLoggingMessage({
|
|
198
|
+
level: 'error',
|
|
199
|
+
data: `Error shutting down tracing: ${error instanceof Error ? error.message : String(error)}`
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
// Server not available, ignore
|
|
204
|
+
}
|
|
60
205
|
}
|
|
61
206
|
process.exit(0);
|
|
62
207
|
}
|
|
63
208
|
function exitWithLog(message, error, code = 1) {
|
|
64
|
-
|
|
209
|
+
// Log error via MCP server if available
|
|
210
|
+
try {
|
|
211
|
+
server.server.sendLoggingMessage({
|
|
212
|
+
level: 'error',
|
|
213
|
+
data: `${message}: ${error instanceof Error ? error.message : String(error)}`
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
// Server not available, ignore
|
|
218
|
+
}
|
|
65
219
|
process.exit(code);
|
|
66
220
|
}
|
|
67
221
|
['SIGINT', 'SIGTERM'].forEach((signal) => {
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type Prompt, type PromptArgument, type PromptMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all MCP prompts.
|
|
4
|
+
*
|
|
5
|
+
* Prompts are pre-built, parameterized workflows that guide multi-step geospatial tasks.
|
|
6
|
+
* They capture domain expertise and best practices for common use cases.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class BasePrompt {
|
|
9
|
+
/**
|
|
10
|
+
* Unique identifier for this prompt (e.g., "find-places-nearby")
|
|
11
|
+
*/
|
|
12
|
+
abstract readonly name: string;
|
|
13
|
+
/**
|
|
14
|
+
* Human-readable description of what this prompt does
|
|
15
|
+
*/
|
|
16
|
+
abstract readonly description: string;
|
|
17
|
+
/**
|
|
18
|
+
* Arguments this prompt accepts
|
|
19
|
+
*/
|
|
20
|
+
abstract readonly arguments: PromptArgument[];
|
|
21
|
+
/**
|
|
22
|
+
* Get the prompt metadata for listing
|
|
23
|
+
*/
|
|
24
|
+
getMetadata(): Prompt;
|
|
25
|
+
/**
|
|
26
|
+
* Generate the prompt messages with filled-in arguments
|
|
27
|
+
*
|
|
28
|
+
* @param args - The argument values provided by the user/agent
|
|
29
|
+
* @returns Array of messages to send to the LLM
|
|
30
|
+
*/
|
|
31
|
+
abstract getMessages(args: Record<string, string>): PromptMessage[];
|
|
32
|
+
/**
|
|
33
|
+
* Validate that all required arguments are provided
|
|
34
|
+
*
|
|
35
|
+
* @param args - The argument values to validate
|
|
36
|
+
* @throws Error if required arguments are missing
|
|
37
|
+
*/
|
|
38
|
+
protected validateArguments(args: Record<string, string>): void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=BasePrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasePrompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/BasePrompt.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,oCAAoC,CAAC;AAE5C;;;;;GAKG;AACH,8BAAsB,UAAU;IAC9B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;IAE9C;;OAEG;IACH,WAAW,IAAI,MAAM;IAQrB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE;IAEnE;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;CAOhE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
/**
|
|
4
|
+
* Base class for all MCP prompts.
|
|
5
|
+
*
|
|
6
|
+
* Prompts are pre-built, parameterized workflows that guide multi-step geospatial tasks.
|
|
7
|
+
* They capture domain expertise and best practices for common use cases.
|
|
8
|
+
*/
|
|
9
|
+
export class BasePrompt {
|
|
10
|
+
/**
|
|
11
|
+
* Get the prompt metadata for listing
|
|
12
|
+
*/
|
|
13
|
+
getMetadata() {
|
|
14
|
+
return {
|
|
15
|
+
name: this.name,
|
|
16
|
+
description: this.description,
|
|
17
|
+
arguments: this.arguments
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Validate that all required arguments are provided
|
|
22
|
+
*
|
|
23
|
+
* @param args - The argument values to validate
|
|
24
|
+
* @throws Error if required arguments are missing
|
|
25
|
+
*/
|
|
26
|
+
validateArguments(args) {
|
|
27
|
+
for (const arg of this.arguments) {
|
|
28
|
+
if (arg.required && !args[arg.name]) {
|
|
29
|
+
throw new Error(`Missing required argument: ${arg.name}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=BasePrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasePrompt.js","sourceRoot":"","sources":["../../../src/prompts/BasePrompt.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAQlC;;;;;GAKG;AACH,MAAM,OAAgB,UAAU;IAgB9B;;OAEG;IACH,WAAW;QACT,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAUD;;;;;OAKG;IACO,iBAAiB,CAAC,IAA4B;QACtD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BasePrompt } from './BasePrompt.js';
|
|
2
|
+
import type { PromptArgument, PromptMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Prompt for finding places near a location with optional map visualization.
|
|
5
|
+
*
|
|
6
|
+
* This prompt guides the agent through:
|
|
7
|
+
* 1. Geocoding the location (if needed)
|
|
8
|
+
* 2. Searching for places by category
|
|
9
|
+
* 3. Formatting results with map visualization
|
|
10
|
+
*
|
|
11
|
+
* Example queries:
|
|
12
|
+
* - "Find coffee shops near downtown Seattle"
|
|
13
|
+
* - "Show me restaurants near 123 Main St"
|
|
14
|
+
* - "What museums are near the Eiffel Tower?"
|
|
15
|
+
*/
|
|
16
|
+
export declare class FindPlacesNearbyPrompt extends BasePrompt {
|
|
17
|
+
readonly name = "find-places-nearby";
|
|
18
|
+
readonly description = "Helps you search for specific types of places near a location with optional map visualization";
|
|
19
|
+
readonly arguments: PromptArgument[];
|
|
20
|
+
getMessages(args: Record<string, string>): PromptMessage[];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=FindPlacesNearbyPrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindPlacesNearbyPrompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/FindPlacesNearbyPrompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;GAYG;AACH,qBAAa,sBAAuB,SAAQ,UAAU;IACpD,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,WAAW,mGAC8E;IAElG,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAkBlC;IAEF,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE;CAyB3D"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { BasePrompt } from './BasePrompt.js';
|
|
4
|
+
/**
|
|
5
|
+
* Prompt for finding places near a location with optional map visualization.
|
|
6
|
+
*
|
|
7
|
+
* This prompt guides the agent through:
|
|
8
|
+
* 1. Geocoding the location (if needed)
|
|
9
|
+
* 2. Searching for places by category
|
|
10
|
+
* 3. Formatting results with map visualization
|
|
11
|
+
*
|
|
12
|
+
* Example queries:
|
|
13
|
+
* - "Find coffee shops near downtown Seattle"
|
|
14
|
+
* - "Show me restaurants near 123 Main St"
|
|
15
|
+
* - "What museums are near the Eiffel Tower?"
|
|
16
|
+
*/
|
|
17
|
+
export class FindPlacesNearbyPrompt extends BasePrompt {
|
|
18
|
+
name = 'find-places-nearby';
|
|
19
|
+
description = 'Helps you search for specific types of places near a location with optional map visualization';
|
|
20
|
+
arguments = [
|
|
21
|
+
{
|
|
22
|
+
name: 'location',
|
|
23
|
+
description: 'The location to search near (address, place name, or coordinates)',
|
|
24
|
+
required: true
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'category',
|
|
28
|
+
description: 'Type of place to search for (e.g., "coffee shops", "restaurants", "museums")',
|
|
29
|
+
required: false
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'radius',
|
|
33
|
+
description: 'Search radius in meters (default: 1000)',
|
|
34
|
+
required: false
|
|
35
|
+
}
|
|
36
|
+
];
|
|
37
|
+
getMessages(args) {
|
|
38
|
+
this.validateArguments(args);
|
|
39
|
+
const { location, category, radius } = args;
|
|
40
|
+
const radiusText = radius ? ` within ${radius} meters` : '';
|
|
41
|
+
const categoryText = category || 'places';
|
|
42
|
+
return [
|
|
43
|
+
{
|
|
44
|
+
role: 'user',
|
|
45
|
+
content: {
|
|
46
|
+
type: 'text',
|
|
47
|
+
text: `Find ${categoryText} near ${location}${radiusText}.
|
|
48
|
+
|
|
49
|
+
Please follow these steps:
|
|
50
|
+
1. If the location is not in coordinate format, geocode it first using search_and_geocode_tool
|
|
51
|
+
2. Use category_search_tool or search_tool to find ${categoryText} near the location
|
|
52
|
+
3. Display the results on a map showing the location and the found places
|
|
53
|
+
4. Provide a summary of the top results with key details (name, address, distance)
|
|
54
|
+
|
|
55
|
+
Make the output clear and actionable.`
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=FindPlacesNearbyPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindPlacesNearbyPrompt.js","sourceRoot":"","sources":["../../../src/prompts/FindPlacesNearbyPrompt.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,sBAAuB,SAAQ,UAAU;IAC3C,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAClB,+FAA+F,CAAC;IAEzF,SAAS,GAAqB;QACrC;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,mEAAmE;YACrE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,8EAA8E;YAChF,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;IAEF,WAAW,CAAC,IAA4B;QACtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,QAAQ,IAAI,QAAQ,CAAC;QAE1C,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ,YAAY,SAAS,QAAQ,GAAG,UAAU;;;;qDAIb,YAAY;;;;sCAI3B;iBAC7B;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BasePrompt } from './BasePrompt.js';
|
|
2
|
+
import type { PromptArgument, PromptMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Prompt for getting turn-by-turn directions between two locations.
|
|
5
|
+
*
|
|
6
|
+
* This prompt guides the agent through:
|
|
7
|
+
* 1. Geocoding start and end locations (if needed)
|
|
8
|
+
* 2. Getting directions via the appropriate routing profile
|
|
9
|
+
* 3. Visualizing the route on a map
|
|
10
|
+
* 4. Providing clear turn-by-turn instructions
|
|
11
|
+
*
|
|
12
|
+
* Example queries:
|
|
13
|
+
* - "Get directions from my office to the airport"
|
|
14
|
+
* - "How do I drive from Seattle to Portland?"
|
|
15
|
+
* - "Walking directions from here to the museum"
|
|
16
|
+
*/
|
|
17
|
+
export declare class GetDirectionsPrompt extends BasePrompt {
|
|
18
|
+
readonly name = "get-directions";
|
|
19
|
+
readonly description = "Provides turn-by-turn directions between two locations with options for different travel modes";
|
|
20
|
+
readonly arguments: PromptArgument[];
|
|
21
|
+
getMessages(args: Record<string, string>): PromptMessage[];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=GetDirectionsPrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetDirectionsPrompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/GetDirectionsPrompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;GAaG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,WAAW,oGAC+E;IAEnG,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAiBlC;IAEF,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE;CA0B3D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { BasePrompt } from './BasePrompt.js';
|
|
4
|
+
/**
|
|
5
|
+
* Prompt for getting turn-by-turn directions between two locations.
|
|
6
|
+
*
|
|
7
|
+
* This prompt guides the agent through:
|
|
8
|
+
* 1. Geocoding start and end locations (if needed)
|
|
9
|
+
* 2. Getting directions via the appropriate routing profile
|
|
10
|
+
* 3. Visualizing the route on a map
|
|
11
|
+
* 4. Providing clear turn-by-turn instructions
|
|
12
|
+
*
|
|
13
|
+
* Example queries:
|
|
14
|
+
* - "Get directions from my office to the airport"
|
|
15
|
+
* - "How do I drive from Seattle to Portland?"
|
|
16
|
+
* - "Walking directions from here to the museum"
|
|
17
|
+
*/
|
|
18
|
+
export class GetDirectionsPrompt extends BasePrompt {
|
|
19
|
+
name = 'get-directions';
|
|
20
|
+
description = 'Provides turn-by-turn directions between two locations with options for different travel modes';
|
|
21
|
+
arguments = [
|
|
22
|
+
{
|
|
23
|
+
name: 'from',
|
|
24
|
+
description: 'Starting location (address, place name, or coordinates)',
|
|
25
|
+
required: true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'to',
|
|
29
|
+
description: 'Destination location (address, place name, or coordinates)',
|
|
30
|
+
required: true
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'mode',
|
|
34
|
+
description: 'Travel mode: driving, walking, or cycling (default: driving)',
|
|
35
|
+
required: false
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
getMessages(args) {
|
|
39
|
+
this.validateArguments(args);
|
|
40
|
+
const { from, to, mode = 'driving' } = args;
|
|
41
|
+
return [
|
|
42
|
+
{
|
|
43
|
+
role: 'user',
|
|
44
|
+
content: {
|
|
45
|
+
type: 'text',
|
|
46
|
+
text: `Get ${mode} directions from ${from} to ${to}.
|
|
47
|
+
|
|
48
|
+
Please follow these steps:
|
|
49
|
+
1. Geocode both the starting point and destination if they're not in coordinate format
|
|
50
|
+
2. Use directions_tool to get the route with profile set to ${mode}
|
|
51
|
+
3. Display the route on a map with clear start and end markers
|
|
52
|
+
4. Provide:
|
|
53
|
+
- Total distance and estimated travel time
|
|
54
|
+
- Turn-by-turn directions (summarized if very long)
|
|
55
|
+
- Any notable features along the route (tolls, ferries, etc.)
|
|
56
|
+
|
|
57
|
+
Format the output to be clear and easy to follow.`
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=GetDirectionsPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetDirectionsPrompt.js","sourceRoot":"","sources":["../../../src/prompts/GetDirectionsPrompt.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IACxC,IAAI,GAAG,gBAAgB,CAAC;IACxB,WAAW,GAClB,gGAAgG,CAAC;IAE1F,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,MAAM;YACZ,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;IAEF,WAAW,CAAC,IAA4B;QACtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;QAE5C,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO,IAAI,oBAAoB,IAAI,OAAO,EAAE;;;;8DAIE,IAAI;;;;;;;kDAOhB;iBACzC;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BasePrompt } from './BasePrompt.js';
|
|
2
|
+
import type { PromptArgument, PromptMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Prompt for visualizing areas reachable within a specified time from a location.
|
|
5
|
+
*
|
|
6
|
+
* This prompt guides the agent through:
|
|
7
|
+
* 1. Geocoding the starting location (if needed)
|
|
8
|
+
* 2. Calculating isochrones for the specified travel time
|
|
9
|
+
* 3. Visualizing the reachable areas on a map
|
|
10
|
+
* 4. Providing context about what the isochrone represents
|
|
11
|
+
*
|
|
12
|
+
* Example queries:
|
|
13
|
+
* - "Show me areas I can reach in 15 minutes from downtown"
|
|
14
|
+
* - "What's the 30-minute driving range from our warehouse?"
|
|
15
|
+
* - "Display my 10-minute walk radius from home"
|
|
16
|
+
*/
|
|
17
|
+
export declare class ShowReachableAreasPrompt extends BasePrompt {
|
|
18
|
+
readonly name = "show-reachable-areas";
|
|
19
|
+
readonly description = "Visualizes areas that can be reached from a location within a specified time using isochrones";
|
|
20
|
+
readonly arguments: PromptArgument[];
|
|
21
|
+
getMessages(args: Record<string, string>): PromptMessage[];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ShowReachableAreasPrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShowReachableAreasPrompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/ShowReachableAreasPrompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;GAaG;AACH,qBAAa,wBAAyB,SAAQ,UAAU;IACtD,QAAQ,CAAC,IAAI,0BAA0B;IACvC,QAAQ,CAAC,WAAW,mGAC8E;IAElG,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAiBlC;IAEF,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE;CA6B3D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { BasePrompt } from './BasePrompt.js';
|
|
4
|
+
/**
|
|
5
|
+
* Prompt for visualizing areas reachable within a specified time from a location.
|
|
6
|
+
*
|
|
7
|
+
* This prompt guides the agent through:
|
|
8
|
+
* 1. Geocoding the starting location (if needed)
|
|
9
|
+
* 2. Calculating isochrones for the specified travel time
|
|
10
|
+
* 3. Visualizing the reachable areas on a map
|
|
11
|
+
* 4. Providing context about what the isochrone represents
|
|
12
|
+
*
|
|
13
|
+
* Example queries:
|
|
14
|
+
* - "Show me areas I can reach in 15 minutes from downtown"
|
|
15
|
+
* - "What's the 30-minute driving range from our warehouse?"
|
|
16
|
+
* - "Display my 10-minute walk radius from home"
|
|
17
|
+
*/
|
|
18
|
+
export class ShowReachableAreasPrompt extends BasePrompt {
|
|
19
|
+
name = 'show-reachable-areas';
|
|
20
|
+
description = 'Visualizes areas that can be reached from a location within a specified time using isochrones';
|
|
21
|
+
arguments = [
|
|
22
|
+
{
|
|
23
|
+
name: 'location',
|
|
24
|
+
description: 'Starting location (address, place name, or coordinates)',
|
|
25
|
+
required: true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'time_minutes',
|
|
29
|
+
description: 'Travel time in minutes (default: 15)',
|
|
30
|
+
required: false
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'mode',
|
|
34
|
+
description: 'Travel mode: driving, walking, or cycling (default: driving)',
|
|
35
|
+
required: false
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
getMessages(args) {
|
|
39
|
+
this.validateArguments(args);
|
|
40
|
+
const { location, time_minutes = '15', mode = 'driving' } = args;
|
|
41
|
+
return [
|
|
42
|
+
{
|
|
43
|
+
role: 'user',
|
|
44
|
+
content: {
|
|
45
|
+
type: 'text',
|
|
46
|
+
text: `Show areas reachable within ${time_minutes} minutes of ${mode} from ${location}.
|
|
47
|
+
|
|
48
|
+
Please follow these steps:
|
|
49
|
+
1. Geocode the location if it's not in coordinate format
|
|
50
|
+
2. Use isochrone_tool to calculate the ${time_minutes}-minute ${mode} isochrone
|
|
51
|
+
3. Visualize the reachable area on a map with:
|
|
52
|
+
- The starting location clearly marked
|
|
53
|
+
- The isochrone polygon showing the reachable area
|
|
54
|
+
- Appropriate styling to make it easy to understand
|
|
55
|
+
4. Provide context explaining:
|
|
56
|
+
- What area is covered (approximate square miles/km)
|
|
57
|
+
- What this means practically (e.g., "You can reach X locations within ${time_minutes} minutes")
|
|
58
|
+
- Any limitations or caveats (traffic conditions, time of day, etc.)
|
|
59
|
+
|
|
60
|
+
Make the visualization clear and the explanation actionable.`
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=ShowReachableAreasPrompt.js.map
|