@mapbox/mcp-server 0.2.4 → 0.4.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 +9 -9
- package/dist/commonjs/config/toolConfig.d.ts +8 -0
- package/dist/commonjs/config/toolConfig.d.ts.map +1 -0
- package/dist/commonjs/config/toolConfig.js +40 -0
- package/dist/commonjs/config/toolConfig.js.map +1 -0
- package/dist/commonjs/index.d.ts +2 -0
- package/dist/{index.d.ts.map → commonjs/index.d.ts.map} +1 -1
- package/dist/commonjs/index.js +38 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/{cjs → commonjs}/package.json +1 -1
- package/dist/{tools → commonjs/tools}/MapboxApiBasedTool.d.ts +6 -5
- package/dist/commonjs/tools/MapboxApiBasedTool.d.ts.map +1 -0
- package/dist/commonjs/tools/MapboxApiBasedTool.js +111 -0
- package/dist/commonjs/tools/MapboxApiBasedTool.js.map +1 -0
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts +28 -0
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts.map +1 -0
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.js +68 -0
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.js.map +1 -0
- package/dist/{tools → commonjs/tools}/category-search-tool/CategorySearchTool.d.ts +6 -5
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -0
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +188 -0
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -0
- package/dist/{tools → commonjs/tools}/directions-tool/DirectionsTool.d.ts +3 -2
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -0
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js +385 -0
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -0
- package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts.map +1 -0
- package/dist/commonjs/tools/directions-tool/cleanResponseData.js +178 -0
- package/dist/commonjs/tools/directions-tool/cleanResponseData.js.map +1 -0
- package/dist/commonjs/tools/directions-tool/formatIsoDateTime.d.ts.map +1 -0
- package/dist/commonjs/tools/directions-tool/formatIsoDateTime.js +21 -0
- package/dist/commonjs/tools/directions-tool/formatIsoDateTime.js.map +1 -0
- package/dist/{tools → commonjs/tools}/forward-geocode-tool/ForwardGeocodeTool.d.ts +5 -4
- package/dist/commonjs/tools/forward-geocode-tool/ForwardGeocodeTool.d.ts.map +1 -0
- package/dist/commonjs/tools/forward-geocode-tool/ForwardGeocodeTool.js +212 -0
- package/dist/commonjs/tools/forward-geocode-tool/ForwardGeocodeTool.js.map +1 -0
- package/dist/{tools → commonjs/tools}/isochrone-tool/IsochroneTool.d.ts +3 -2
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -0
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js +118 -0
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js.map +1 -0
- package/dist/{tools → commonjs/tools}/matrix-tool/MatrixTool.d.ts +3 -2
- package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts.map +1 -0
- package/dist/commonjs/tools/matrix-tool/MatrixTool.js +202 -0
- package/dist/commonjs/tools/matrix-tool/MatrixTool.js.map +1 -0
- package/dist/{tools → commonjs/tools}/poi-search-tool/PoiSearchTool.d.ts +5 -4
- package/dist/commonjs/tools/poi-search-tool/PoiSearchTool.d.ts.map +1 -0
- package/dist/commonjs/tools/poi-search-tool/PoiSearchTool.js +231 -0
- package/dist/commonjs/tools/poi-search-tool/PoiSearchTool.js.map +1 -0
- package/dist/{tools → commonjs/tools}/reverse-geocode-tool/ReverseGeocodeTool.d.ts +5 -4
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -0
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js +148 -0
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -0
- package/dist/{tools → commonjs/tools}/static-map-image-tool/StaticMapImageTool.d.ts +3 -2
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -0
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js +416 -0
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -0
- package/dist/{tools → commonjs/tools}/toolRegistry.d.ts +2 -1
- package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -0
- package/dist/commonjs/tools/toolRegistry.js +37 -0
- package/dist/commonjs/tools/toolRegistry.js.map +1 -0
- package/dist/{tools → commonjs/tools}/version-tool/VersionTool.d.ts +1 -1
- package/dist/commonjs/tools/version-tool/VersionTool.d.ts.map +1 -0
- package/dist/commonjs/tools/version-tool/VersionTool.js +52 -0
- package/dist/commonjs/tools/version-tool/VersionTool.js.map +1 -0
- package/dist/commonjs/utils/fetchRequest.d.ts +38 -0
- package/dist/commonjs/utils/fetchRequest.d.ts.map +1 -0
- package/dist/commonjs/utils/fetchRequest.js +111 -0
- package/dist/commonjs/utils/fetchRequest.js.map +1 -0
- package/dist/commonjs/utils/versionUtils-cjs.cjs.map +1 -0
- package/dist/commonjs/utils/versionUtils-cjs.d.cts.map +1 -0
- package/dist/commonjs/utils/versionUtils.d.ts +9 -0
- package/dist/commonjs/utils/versionUtils.js +46 -0
- package/dist/commonjs/version.json +6 -0
- package/dist/esm/config/toolConfig.d.ts +8 -0
- package/dist/esm/config/toolConfig.d.ts.map +1 -0
- package/dist/esm/config/toolConfig.js +36 -0
- package/dist/esm/config/toolConfig.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +36 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -1
- package/dist/esm/tools/MapboxApiBasedTool.d.ts +83 -0
- package/dist/esm/tools/MapboxApiBasedTool.d.ts.map +1 -0
- package/dist/{tools → esm/tools}/MapboxApiBasedTool.js +20 -13
- package/dist/esm/tools/MapboxApiBasedTool.js.map +1 -0
- package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts +28 -0
- package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts.map +1 -0
- package/dist/esm/tools/category-list-tool/CategoryListTool.js +64 -0
- package/dist/esm/tools/category-list-tool/CategoryListTool.js.map +1 -0
- package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts +89 -0
- package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -0
- package/dist/esm/tools/category-search-tool/CategorySearchTool.js +184 -0
- package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -0
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts +44 -0
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -0
- package/dist/{tools → esm/tools}/directions-tool/DirectionsTool.js +9 -8
- package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -0
- package/dist/esm/tools/directions-tool/cleanResponseData.d.ts +11 -0
- package/dist/esm/tools/directions-tool/cleanResponseData.d.ts.map +1 -0
- package/dist/esm/tools/directions-tool/cleanResponseData.js.map +1 -0
- package/dist/esm/tools/directions-tool/formatIsoDateTime.d.ts +8 -0
- package/dist/esm/tools/directions-tool/formatIsoDateTime.d.ts.map +1 -0
- package/dist/esm/tools/directions-tool/formatIsoDateTime.js.map +1 -0
- package/dist/esm/tools/forward-geocode-tool/ForwardGeocodeTool.d.ts +98 -0
- package/dist/esm/tools/forward-geocode-tool/ForwardGeocodeTool.d.ts.map +1 -0
- package/dist/{tools → esm/tools}/forward-geocode-tool/ForwardGeocodeTool.js +8 -5
- package/dist/esm/tools/forward-geocode-tool/ForwardGeocodeTool.js.map +1 -0
- package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts +60 -0
- package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -0
- package/dist/{tools → esm/tools}/isochrone-tool/IsochroneTool.js +8 -5
- package/dist/esm/tools/isochrone-tool/IsochroneTool.js.map +1 -0
- package/dist/esm/tools/matrix-tool/MatrixTool.d.ts +51 -0
- package/dist/esm/tools/matrix-tool/MatrixTool.d.ts.map +1 -0
- package/dist/{tools → esm/tools}/matrix-tool/MatrixTool.js +8 -5
- package/dist/{tools → esm/tools}/matrix-tool/MatrixTool.js.map +1 -1
- package/dist/esm/tools/poi-search-tool/PoiSearchTool.d.ts +119 -0
- package/dist/esm/tools/poi-search-tool/PoiSearchTool.d.ts.map +1 -0
- package/dist/{tools → esm/tools}/poi-search-tool/PoiSearchTool.js +9 -6
- package/dist/esm/tools/poi-search-tool/PoiSearchTool.js.map +1 -0
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts +46 -0
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -0
- package/dist/{tools → esm/tools}/reverse-geocode-tool/ReverseGeocodeTool.js +8 -5
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -0
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts +179 -0
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -0
- package/dist/{tools → esm/tools}/static-map-image-tool/StaticMapImageTool.js +7 -4
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -0
- package/dist/esm/tools/toolRegistry.d.ts +15 -0
- package/dist/esm/tools/toolRegistry.d.ts.map +1 -0
- package/dist/{tools → esm/tools}/toolRegistry.js +2 -0
- package/dist/esm/tools/toolRegistry.js.map +1 -0
- package/dist/esm/tools/version-tool/VersionTool.d.ts +18 -0
- package/dist/esm/tools/version-tool/VersionTool.d.ts.map +1 -0
- package/dist/{tools → esm/tools}/version-tool/VersionTool.js +2 -4
- package/dist/esm/tools/version-tool/VersionTool.js.map +1 -0
- package/dist/esm/utils/fetchRequest.d.ts +38 -0
- package/dist/esm/utils/fetchRequest.d.ts.map +1 -0
- package/dist/esm/utils/fetchRequest.js +105 -0
- package/dist/esm/utils/fetchRequest.js.map +1 -0
- package/dist/esm/utils/versionUtils.d.ts.map +1 -0
- package/dist/{utils → esm/utils}/versionUtils.js +4 -2
- package/dist/esm/utils/versionUtils.js.map +1 -0
- package/dist/esm/version.json +6 -0
- package/package.json +44 -29
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -25
- package/dist/index.js.map +0 -1
- package/dist/tools/MapboxApiBasedTool.d.ts.map +0 -1
- package/dist/tools/MapboxApiBasedTool.js.map +0 -1
- package/dist/tools/MapboxApiBasedTool.test.d.ts +0 -2
- package/dist/tools/MapboxApiBasedTool.test.d.ts.map +0 -1
- package/dist/tools/MapboxApiBasedTool.test.js +0 -143
- package/dist/tools/MapboxApiBasedTool.test.js.map +0 -1
- package/dist/tools/category-search-tool/CategorySearchTool.d.ts.map +0 -1
- package/dist/tools/category-search-tool/CategorySearchTool.js +0 -666
- package/dist/tools/category-search-tool/CategorySearchTool.js.map +0 -1
- package/dist/tools/category-search-tool/CategorySearchTool.test.d.ts +0 -2
- package/dist/tools/category-search-tool/CategorySearchTool.test.d.ts.map +0 -1
- package/dist/tools/category-search-tool/CategorySearchTool.test.js +0 -369
- package/dist/tools/category-search-tool/CategorySearchTool.test.js.map +0 -1
- package/dist/tools/directions-tool/DirectionsTool.d.ts.map +0 -1
- package/dist/tools/directions-tool/DirectionsTool.js.map +0 -1
- package/dist/tools/directions-tool/DirectionsTool.test.d.ts +0 -2
- package/dist/tools/directions-tool/DirectionsTool.test.d.ts.map +0 -1
- package/dist/tools/directions-tool/DirectionsTool.test.js +0 -822
- package/dist/tools/directions-tool/DirectionsTool.test.js.map +0 -1
- package/dist/tools/directions-tool/cleanResponseData.d.ts.map +0 -1
- package/dist/tools/directions-tool/cleanResponseData.js.map +0 -1
- package/dist/tools/directions-tool/cleanResponseData.test.d.ts +0 -2
- package/dist/tools/directions-tool/cleanResponseData.test.d.ts.map +0 -1
- package/dist/tools/directions-tool/cleanResponseData.test.js +0 -295
- package/dist/tools/directions-tool/cleanResponseData.test.js.map +0 -1
- package/dist/tools/directions-tool/formatIsoDateTime.d.ts.map +0 -1
- package/dist/tools/directions-tool/formatIsoDateTime.js.map +0 -1
- package/dist/tools/directions-tool/formatIsoDateTime.test.d.ts +0 -2
- package/dist/tools/directions-tool/formatIsoDateTime.test.d.ts.map +0 -1
- package/dist/tools/directions-tool/formatIsoDateTime.test.js +0 -26
- package/dist/tools/directions-tool/formatIsoDateTime.test.js.map +0 -1
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.d.ts.map +0 -1
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.js.map +0 -1
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.test.d.ts +0 -2
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.test.d.ts.map +0 -1
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.test.js +0 -415
- package/dist/tools/forward-geocode-tool/ForwardGeocodeTool.test.js.map +0 -1
- package/dist/tools/isochrone-tool/IsochroneTool.d.ts.map +0 -1
- package/dist/tools/isochrone-tool/IsochroneTool.js.map +0 -1
- package/dist/tools/isochrone-tool/IsochroneTool.test.d.ts +0 -2
- package/dist/tools/isochrone-tool/IsochroneTool.test.d.ts.map +0 -1
- package/dist/tools/isochrone-tool/IsochroneTool.test.js +0 -111
- package/dist/tools/isochrone-tool/IsochroneTool.test.js.map +0 -1
- package/dist/tools/matrix-tool/MatrixTool.d.ts.map +0 -1
- package/dist/tools/matrix-tool/MatrixTool.test.d.ts +0 -2
- package/dist/tools/matrix-tool/MatrixTool.test.d.ts.map +0 -1
- package/dist/tools/matrix-tool/MatrixTool.test.js +0 -816
- package/dist/tools/matrix-tool/MatrixTool.test.js.map +0 -1
- package/dist/tools/poi-search-tool/PoiSearchTool.d.ts.map +0 -1
- package/dist/tools/poi-search-tool/PoiSearchTool.js.map +0 -1
- package/dist/tools/poi-search-tool/PoiSearchTool.test.d.ts +0 -2
- package/dist/tools/poi-search-tool/PoiSearchTool.test.d.ts.map +0 -1
- package/dist/tools/poi-search-tool/PoiSearchTool.test.js +0 -418
- package/dist/tools/poi-search-tool/PoiSearchTool.test.js.map +0 -1
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +0 -1
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +0 -1
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.test.d.ts +0 -2
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.test.d.ts.map +0 -1
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.test.js +0 -403
- package/dist/tools/reverse-geocode-tool/ReverseGeocodeTool.test.js.map +0 -1
- package/dist/tools/schema-validation.test.d.ts +0 -2
- package/dist/tools/schema-validation.test.d.ts.map +0 -1
- package/dist/tools/schema-validation.test.js +0 -75
- package/dist/tools/schema-validation.test.js.map +0 -1
- package/dist/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +0 -1
- package/dist/tools/static-map-image-tool/StaticMapImageTool.js.map +0 -1
- package/dist/tools/static-map-image-tool/StaticMapImageTool.test.d.ts +0 -2
- package/dist/tools/static-map-image-tool/StaticMapImageTool.test.d.ts.map +0 -1
- package/dist/tools/static-map-image-tool/StaticMapImageTool.test.js +0 -441
- package/dist/tools/static-map-image-tool/StaticMapImageTool.test.js.map +0 -1
- package/dist/tools/tool-naming-convention.test.d.ts +0 -2
- package/dist/tools/tool-naming-convention.test.d.ts.map +0 -1
- package/dist/tools/tool-naming-convention.test.js +0 -43
- package/dist/tools/tool-naming-convention.test.js.map +0 -1
- package/dist/tools/toolRegistry.d.ts.map +0 -1
- package/dist/tools/toolRegistry.js.map +0 -1
- package/dist/tools/version-tool/VersionTool.d.ts.map +0 -1
- package/dist/tools/version-tool/VersionTool.js.map +0 -1
- package/dist/tools/version-tool/VersionTool.test.d.ts +0 -2
- package/dist/tools/version-tool/VersionTool.test.d.ts.map +0 -1
- package/dist/tools/version-tool/VersionTool.test.js +0 -49
- package/dist/tools/version-tool/VersionTool.test.js.map +0 -1
- package/dist/utils/requestUtils.d.ts +0 -6
- package/dist/utils/requestUtils.d.ts.map +0 -1
- package/dist/utils/requestUtils.js +0 -60
- package/dist/utils/requestUtils.js.map +0 -1
- package/dist/utils/requestUtils.test-helpers.d.ts +0 -3
- package/dist/utils/requestUtils.test-helpers.d.ts.map +0 -1
- package/dist/utils/requestUtils.test-helpers.js +0 -32
- package/dist/utils/requestUtils.test-helpers.js.map +0 -1
- package/dist/utils/requestUtils.test.d.ts +0 -2
- package/dist/utils/requestUtils.test.d.ts.map +0 -1
- package/dist/utils/requestUtils.test.js +0 -115
- package/dist/utils/requestUtils.test.js.map +0 -1
- package/dist/utils/versionUtils.d.ts.map +0 -1
- package/dist/utils/versionUtils.js.map +0 -1
- package/dist/version.json +0 -6
- /package/dist/{tools → commonjs/tools}/directions-tool/cleanResponseData.d.ts +0 -0
- /package/dist/{tools → commonjs/tools}/directions-tool/formatIsoDateTime.d.ts +0 -0
- /package/dist/{tools → esm/tools}/directions-tool/cleanResponseData.js +0 -0
- /package/dist/{tools → esm/tools}/directions-tool/formatIsoDateTime.js +0 -0
- /package/dist/{utils → esm/utils}/versionUtils.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/version-tool/VersionTool.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,WAAW,2DACsC;IAC1D,QAAQ,CAAC,WAAW,iDAAe;IAEnC,OAAO,CAAC,MAAM,CAA0B;IAGlC,GAAG,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC;QACrC,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;SACd,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IAoCF,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc;IAU5C,OAAO,CAAC,GAAG;CAKZ"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VersionTool = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const versionUtils_js_1 = require("../../utils/versionUtils.js");
|
|
6
|
+
const InputSchema = zod_1.z.object({});
|
|
7
|
+
class VersionTool {
|
|
8
|
+
name = 'version_tool';
|
|
9
|
+
description = 'Get the current version information of the MCP server';
|
|
10
|
+
inputSchema = InputSchema;
|
|
11
|
+
server = null;
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
13
|
+
async run(_rawInput) {
|
|
14
|
+
try {
|
|
15
|
+
const versionInfo = (0, versionUtils_js_1.getVersionInfo)();
|
|
16
|
+
const versionText = `MCP Server Version Information:
|
|
17
|
+
- Name: ${versionInfo.name}
|
|
18
|
+
- Version: ${versionInfo.version}
|
|
19
|
+
- SHA: ${versionInfo.sha}
|
|
20
|
+
- Tag: ${versionInfo.tag}
|
|
21
|
+
- Branch: ${versionInfo.branch}`;
|
|
22
|
+
return {
|
|
23
|
+
content: [{ type: 'text', text: versionText }],
|
|
24
|
+
isError: false
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
29
|
+
this.log('error', `${this.name}: Error during execution: ${errorMessage}`);
|
|
30
|
+
return {
|
|
31
|
+
content: [
|
|
32
|
+
{
|
|
33
|
+
type: 'text',
|
|
34
|
+
text: errorMessage
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
isError: true
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
installTo(server) {
|
|
42
|
+
this.server = server;
|
|
43
|
+
return server.tool(this.name, this.description, this.inputSchema.shape, this.run.bind(this));
|
|
44
|
+
}
|
|
45
|
+
log(level, data) {
|
|
46
|
+
if (this.server) {
|
|
47
|
+
this.server.server.sendLoggingMessage({ level, data });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.VersionTool = VersionTool;
|
|
52
|
+
//# sourceMappingURL=VersionTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionTool.js","sourceRoot":"","sources":["../../../../src/tools/version-tool/VersionTool.ts"],"names":[],"mappings":";;;AAIA,6BAAwB;AACxB,iEAA6D;AAE7D,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEjC,MAAa,WAAW;IACb,IAAI,GAAG,cAAc,CAAC;IACtB,WAAW,GAClB,uDAAuD,CAAC;IACjD,WAAW,GAAG,WAAW,CAAC;IAE3B,MAAM,GAAqB,IAAI,CAAC;IAExC,6DAA6D;IAC7D,KAAK,CAAC,GAAG,CAAC,SAAkB;QAO1B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,gCAAc,GAAE,CAAC;YAErC,MAAM,WAAW,GAAG;UAChB,WAAW,CAAC,IAAI;aACb,WAAW,CAAC,OAAO;SACvB,WAAW,CAAC,GAAG;SACf,WAAW,CAAC,GAAG;YACZ,WAAW,CAAC,MAAM,EAAE,CAAC;YAE3B,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;gBAC9C,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEzD,IAAI,CAAC,GAAG,CACN,OAAO,EACP,GAAG,IAAI,CAAC,IAAI,6BAA6B,YAAY,EAAE,CACxD,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,YAAY;qBACnB;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS,CAAC,MAAiB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CACpB,CAAC;IACJ,CAAC;IAEO,GAAG,CAAC,KAA6C,EAAE,IAAS;QAClE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF;AAlED,kCAkEC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export interface FetchPolicy {
|
|
2
|
+
id: string;
|
|
3
|
+
handle(input: string | URL | Request, init: RequestInit, next: typeof fetch): Promise<Response>;
|
|
4
|
+
}
|
|
5
|
+
export declare class PolicyPipeline {
|
|
6
|
+
private policies;
|
|
7
|
+
private fetchImpl;
|
|
8
|
+
constructor(fetchImpl?: typeof fetch);
|
|
9
|
+
usePolicy(policy: FetchPolicy): void;
|
|
10
|
+
removePolicy(policyOrId: FetchPolicy | string): void;
|
|
11
|
+
findPolicyById(id: string): FetchPolicy | undefined;
|
|
12
|
+
listPolicies(): FetchPolicy[];
|
|
13
|
+
fetch(input: string | URL | Request, init?: RequestInit): Promise<Response>;
|
|
14
|
+
}
|
|
15
|
+
export declare class UserAgentPolicy implements FetchPolicy {
|
|
16
|
+
private userAgent;
|
|
17
|
+
id: string;
|
|
18
|
+
constructor(userAgent: string, id?: string);
|
|
19
|
+
handle(input: string | URL | Request, init: RequestInit, next: typeof fetch): Promise<Response>;
|
|
20
|
+
static fromVersionInfo(versionInfo: {
|
|
21
|
+
name: string;
|
|
22
|
+
version: string;
|
|
23
|
+
sha: string;
|
|
24
|
+
tag: string;
|
|
25
|
+
branch: string;
|
|
26
|
+
}, id?: string): UserAgentPolicy;
|
|
27
|
+
}
|
|
28
|
+
export declare class RetryPolicy implements FetchPolicy {
|
|
29
|
+
private maxRetries;
|
|
30
|
+
private baseDelayMs;
|
|
31
|
+
private maxDelayMs;
|
|
32
|
+
id: string;
|
|
33
|
+
constructor(maxRetries?: number, baseDelayMs?: number, maxDelayMs?: number, id?: string);
|
|
34
|
+
handle(input: string | URL | Request, init: RequestInit, next: typeof fetch): Promise<Response>;
|
|
35
|
+
}
|
|
36
|
+
export declare const fetchClient: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
|
|
37
|
+
export declare const systemFetchPipeline: PolicyPipeline;
|
|
38
|
+
//# sourceMappingURL=fetchRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchRequest.d.ts","sourceRoot":"","sources":["../../../src/utils/fetchRequest.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CACJ,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,OAAO,KAAK,GACjB,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAe;gBAEpB,SAAS,CAAC,EAAE,OAAO,KAAK;IAIpC,SAAS,CAAC,MAAM,EAAE,WAAW;IAI7B,YAAY,CAAC,UAAU,EAAE,WAAW,GAAG,MAAM;IAQ7C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAInD,YAAY;IAIN,KAAK,CACT,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC;CAerB;AAED,qBAAa,eAAgB,YAAW,WAAW;IAI/C,OAAO,CAAC,SAAS;IAHnB,EAAE,EAAE,MAAM,CAAC;gBAGD,SAAS,EAAE,MAAM,EACzB,EAAE,CAAC,EAAE,MAAM;IAMP,MAAM,CACV,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,OAAO,KAAK,GACjB,OAAO,CAAC,QAAQ,CAAC;IAmBpB,MAAM,CAAC,eAAe,CACpB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,EACD,EAAE,CAAC,EAAE,MAAM,GACV,eAAe;CAInB;AAED,qBAAa,WAAY,YAAW,WAAW;IAI3C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IALpB,EAAE,EAAE,MAAM,CAAC;gBAGD,UAAU,GAAE,MAAU,EACtB,WAAW,GAAE,MAAY,EACzB,UAAU,GAAE,MAAa,EACjC,EAAE,CAAC,EAAE,MAAM;IAOP,MAAM,CACV,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,OAAO,KAAK,GACjB,OAAO,CAAC,QAAQ,CAAC;CA2BrB;AASD,eAAO,MAAM,WAAW,UA1Hb,MAAM,GAAG,GAAG,GAAG,OAAO,SACvB,WAAW,KAChB,OAAO,CAAC,QAAQ,CAwHmC,CAAC;AACzD,eAAO,MAAM,mBAAmB,gBAAW,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.systemFetchPipeline = exports.fetchClient = exports.RetryPolicy = exports.UserAgentPolicy = exports.PolicyPipeline = void 0;
|
|
4
|
+
const versionUtils_js_1 = require("./versionUtils.js");
|
|
5
|
+
class PolicyPipeline {
|
|
6
|
+
policies = [];
|
|
7
|
+
fetchImpl;
|
|
8
|
+
constructor(fetchImpl) {
|
|
9
|
+
this.fetchImpl = fetchImpl ?? fetch;
|
|
10
|
+
}
|
|
11
|
+
usePolicy(policy) {
|
|
12
|
+
this.policies.push(policy);
|
|
13
|
+
}
|
|
14
|
+
removePolicy(policyOrId) {
|
|
15
|
+
if (typeof policyOrId === 'string') {
|
|
16
|
+
this.policies = this.policies.filter((p) => p.id !== policyOrId);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
this.policies = this.policies.filter((p) => p !== policyOrId);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
findPolicyById(id) {
|
|
23
|
+
return this.policies.find((p) => p.id === id);
|
|
24
|
+
}
|
|
25
|
+
listPolicies() {
|
|
26
|
+
return this.policies;
|
|
27
|
+
}
|
|
28
|
+
async fetch(input, init = {}) {
|
|
29
|
+
const dispatch = async (i, req, options) => {
|
|
30
|
+
if (i < this.policies.length) {
|
|
31
|
+
return this.policies[i].handle(req, options, (nextReq, nextOptions) => dispatch(i + 1, nextReq, nextOptions));
|
|
32
|
+
}
|
|
33
|
+
return this.fetchImpl(req, options); // Use injected fetch
|
|
34
|
+
};
|
|
35
|
+
return dispatch(0, input, init);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.PolicyPipeline = PolicyPipeline;
|
|
39
|
+
class UserAgentPolicy {
|
|
40
|
+
userAgent;
|
|
41
|
+
id;
|
|
42
|
+
constructor(userAgent, id) {
|
|
43
|
+
this.userAgent = userAgent;
|
|
44
|
+
this.id =
|
|
45
|
+
id ??
|
|
46
|
+
`user-agent-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
47
|
+
}
|
|
48
|
+
async handle(input, init, next) {
|
|
49
|
+
let headers;
|
|
50
|
+
if (init.headers instanceof Headers) {
|
|
51
|
+
headers = init.headers;
|
|
52
|
+
if (!headers.has('User-Agent')) {
|
|
53
|
+
headers.set('User-Agent', this.userAgent);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const h = (init.headers ?? {});
|
|
58
|
+
if (!('User-Agent' in h)) {
|
|
59
|
+
h['User-Agent'] = this.userAgent;
|
|
60
|
+
}
|
|
61
|
+
headers = h;
|
|
62
|
+
}
|
|
63
|
+
return next(input, { ...init, headers });
|
|
64
|
+
}
|
|
65
|
+
static fromVersionInfo(versionInfo, id) {
|
|
66
|
+
const userAgent = `${versionInfo.name}/${versionInfo.version} (${versionInfo.branch}, ${versionInfo.tag}, ${versionInfo.sha})`;
|
|
67
|
+
return new UserAgentPolicy(userAgent, id);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.UserAgentPolicy = UserAgentPolicy;
|
|
71
|
+
class RetryPolicy {
|
|
72
|
+
maxRetries;
|
|
73
|
+
baseDelayMs;
|
|
74
|
+
maxDelayMs;
|
|
75
|
+
id;
|
|
76
|
+
constructor(maxRetries = 3, baseDelayMs = 200, maxDelayMs = 2000, id) {
|
|
77
|
+
this.maxRetries = maxRetries;
|
|
78
|
+
this.baseDelayMs = baseDelayMs;
|
|
79
|
+
this.maxDelayMs = maxDelayMs;
|
|
80
|
+
this.id =
|
|
81
|
+
id ??
|
|
82
|
+
`retry-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
83
|
+
}
|
|
84
|
+
async handle(input, init, next) {
|
|
85
|
+
let attempt = 0;
|
|
86
|
+
let lastError;
|
|
87
|
+
while (attempt <= this.maxRetries) {
|
|
88
|
+
const response = await next(input, init);
|
|
89
|
+
if (response.ok || (response.status < 500 && response.status !== 429)) {
|
|
90
|
+
return response;
|
|
91
|
+
}
|
|
92
|
+
// Calculate exponential backoff with jitter
|
|
93
|
+
const expBackoff = Math.min(this.baseDelayMs * 2 ** attempt, this.maxDelayMs);
|
|
94
|
+
const jitter = Math.random() * expBackoff * 0.5;
|
|
95
|
+
const delay = expBackoff + jitter;
|
|
96
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
97
|
+
attempt++;
|
|
98
|
+
lastError = response;
|
|
99
|
+
}
|
|
100
|
+
// If all retries failed, return last response
|
|
101
|
+
return lastError;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.RetryPolicy = RetryPolicy;
|
|
105
|
+
const pipeline = new PolicyPipeline();
|
|
106
|
+
const versionInfo = (0, versionUtils_js_1.getVersionInfo)();
|
|
107
|
+
pipeline.usePolicy(UserAgentPolicy.fromVersionInfo(versionInfo, 'system-user-agent-policy'));
|
|
108
|
+
pipeline.usePolicy(new RetryPolicy(3, 200, 2000, 'system-retry-policy'));
|
|
109
|
+
exports.fetchClient = pipeline.fetch.bind(pipeline);
|
|
110
|
+
exports.systemFetchPipeline = pipeline;
|
|
111
|
+
//# sourceMappingURL=fetchRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchRequest.js","sourceRoot":"","sources":["../../../src/utils/fetchRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionUtils-cjs.cjs","sourceRoot":"","sources":["../../../src/utils/versionUtils-cjs.cts"],"names":[],"mappings":";;;;;AAWA,wCAoCC;AA/CD,2BAAkC;AAClC,gDAAwB;AAUxB,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,mBAAmB,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC;QAE1B,4DAA4D;QAC5D,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACpE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAgB,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;YAC5B,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAC1E,MAAM,WAAW,GAAG,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE5C,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,OAAO;gBACvC,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,SAAS;gBACd,MAAM,EAAE,SAAS;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;YAChB,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionUtils-cjs.d.cts","sourceRoot":"","sources":["../../../src/utils/versionUtils-cjs.cts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,IAAI,WAAW,CAoC5C"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getVersionInfo = getVersionInfo;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
function getVersionInfo() {
|
|
10
|
+
const name = 'Mapbox MCP server';
|
|
11
|
+
try {
|
|
12
|
+
const dirname = __dirname;
|
|
13
|
+
// Try to read from version.json first (for build artifacts)
|
|
14
|
+
const versionJsonPath = path_1.default.resolve(dirname, '..', 'version.json');
|
|
15
|
+
try {
|
|
16
|
+
const versionData = (0, fs_1.readFileSync)(versionJsonPath, 'utf-8');
|
|
17
|
+
const info = JSON.parse(versionData);
|
|
18
|
+
info['name'] = name;
|
|
19
|
+
return info;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// Fall back to package.json
|
|
23
|
+
const packageJsonPath = path_1.default.resolve(dirname, '..', '..', 'package.json');
|
|
24
|
+
const packageData = (0, fs_1.readFileSync)(packageJsonPath, 'utf-8');
|
|
25
|
+
const packageInfo = JSON.parse(packageData);
|
|
26
|
+
return {
|
|
27
|
+
name: name,
|
|
28
|
+
version: packageInfo.version || '0.0.0',
|
|
29
|
+
sha: 'unknown',
|
|
30
|
+
tag: 'unknown',
|
|
31
|
+
branch: 'unknown'
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.warn(`Failed to read version info: ${error}`);
|
|
37
|
+
return {
|
|
38
|
+
name: name,
|
|
39
|
+
version: '0.0.0',
|
|
40
|
+
sha: 'unknown',
|
|
41
|
+
tag: 'unknown',
|
|
42
|
+
branch: 'unknown'
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=versionUtils-cjs.cjs.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ToolInstance } from '../tools/toolRegistry.js';
|
|
2
|
+
export interface ToolConfig {
|
|
3
|
+
enabledTools?: string[];
|
|
4
|
+
disabledTools?: string[];
|
|
5
|
+
}
|
|
6
|
+
export declare function parseToolConfigFromArgs(): ToolConfig;
|
|
7
|
+
export declare function filterTools(tools: readonly ToolInstance[], config: ToolConfig): ToolInstance[];
|
|
8
|
+
//# sourceMappingURL=toolConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolConfig.d.ts","sourceRoot":"","sources":["../../../src/config/toolConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,IAAI,UAAU,CAqBpD;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,MAAM,EAAE,UAAU,GACjB,YAAY,EAAE,CAqBhB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export function parseToolConfigFromArgs() {
|
|
2
|
+
const args = process.argv.slice(2);
|
|
3
|
+
const config = {};
|
|
4
|
+
for (let i = 0; i < args.length; i++) {
|
|
5
|
+
const arg = args[i];
|
|
6
|
+
if (arg === '--enable-tools') {
|
|
7
|
+
const value = args[++i];
|
|
8
|
+
if (value) {
|
|
9
|
+
config.enabledTools = value.split(',').map((t) => t.trim());
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
else if (arg === '--disable-tools') {
|
|
13
|
+
const value = args[++i];
|
|
14
|
+
if (value) {
|
|
15
|
+
config.disabledTools = value.split(',').map((t) => t.trim());
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return config;
|
|
20
|
+
}
|
|
21
|
+
export function filterTools(tools, config) {
|
|
22
|
+
let filteredTools = [...tools];
|
|
23
|
+
// If enabledTools is specified, only those tools should be enabled
|
|
24
|
+
// This takes precedence over disabledTools
|
|
25
|
+
if (config.enabledTools !== undefined) {
|
|
26
|
+
filteredTools = filteredTools.filter((tool) => config.enabledTools.includes(tool.name));
|
|
27
|
+
// Return early since enabledTools takes precedence
|
|
28
|
+
return filteredTools;
|
|
29
|
+
}
|
|
30
|
+
// Apply disabledTools filter only if enabledTools is not specified
|
|
31
|
+
if (config.disabledTools && config.disabledTools.length > 0) {
|
|
32
|
+
filteredTools = filteredTools.filter((tool) => !config.disabledTools.includes(tool.name));
|
|
33
|
+
}
|
|
34
|
+
return filteredTools;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=toolConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolConfig.js","sourceRoot":"","sources":["../../../src/config/toolConfig.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,uBAAuB;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAe,EAAE,CAAC;IAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,KAA8B,EAC9B,MAAkB;IAElB,IAAI,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAE/B,mEAAmE;IACnE,2CAA2C;IAC3C,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5C,MAAM,CAAC,YAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;QACF,mDAAmD;QACnD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,mEAAmE;IACnE,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,aAAa,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
+
import { parseToolConfigFromArgs, filterTools } from './config/toolConfig.js';
|
|
5
|
+
import { getAllTools } from './tools/toolRegistry.js';
|
|
6
|
+
import { getVersionInfo } from './utils/versionUtils.js';
|
|
7
|
+
import 'dotenv/config';
|
|
8
|
+
const versionInfo = getVersionInfo();
|
|
9
|
+
// Parse configuration from command-line arguments
|
|
10
|
+
const config = parseToolConfigFromArgs();
|
|
11
|
+
// Get and filter tools based on configuration
|
|
12
|
+
const allTools = getAllTools();
|
|
13
|
+
const enabledTools = filterTools(allTools, config);
|
|
14
|
+
// Create an MCP server
|
|
15
|
+
const server = new McpServer({
|
|
16
|
+
name: versionInfo.name,
|
|
17
|
+
version: versionInfo.version
|
|
18
|
+
}, {
|
|
19
|
+
capabilities: {
|
|
20
|
+
tools: {}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
// Register enabled tools to the server
|
|
24
|
+
enabledTools.forEach((tool) => {
|
|
25
|
+
tool.installTo(server);
|
|
26
|
+
});
|
|
27
|
+
async function main() {
|
|
28
|
+
// Start receiving messages on stdin and sending messages on stdout
|
|
29
|
+
const transport = new StdioServerTransport();
|
|
30
|
+
await server.connect(transport);
|
|
31
|
+
}
|
|
32
|
+
main().catch((error) => {
|
|
33
|
+
console.error('Fatal error starting MCP server:', error);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,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,eAAe,CAAC;AAEvB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AAErC,kDAAkD;AAClD,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAC;AAEzC,8CAA8C;AAC9C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAC/B,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEnD,uBAAuB;AACvB,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;IACE,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,OAAO,EAAE,WAAW,CAAC,OAAO;CAC7B,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,uCAAuC;AACvC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,mEAAmE;IACnE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;IACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/esm/package.json
CHANGED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
|
|
3
|
+
import { z, ZodTypeAny } from 'zod';
|
|
4
|
+
export declare const OutputSchema: z.ZodObject<{
|
|
5
|
+
content: z.ZodArray<z.ZodUnion<[z.ZodObject<{
|
|
6
|
+
type: z.ZodLiteral<"text">;
|
|
7
|
+
text: z.ZodString;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
type: "text";
|
|
10
|
+
text: string;
|
|
11
|
+
}, {
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
}>, z.ZodObject<{
|
|
15
|
+
type: z.ZodLiteral<"image">;
|
|
16
|
+
data: z.ZodString;
|
|
17
|
+
mimeType: z.ZodString;
|
|
18
|
+
}, "strip", z.ZodTypeAny, {
|
|
19
|
+
type: "image";
|
|
20
|
+
data: string;
|
|
21
|
+
mimeType: string;
|
|
22
|
+
}, {
|
|
23
|
+
type: "image";
|
|
24
|
+
data: string;
|
|
25
|
+
mimeType: string;
|
|
26
|
+
}>]>, "many">;
|
|
27
|
+
isError: z.ZodDefault<z.ZodBoolean>;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
content: ({
|
|
30
|
+
type: "text";
|
|
31
|
+
text: string;
|
|
32
|
+
} | {
|
|
33
|
+
type: "image";
|
|
34
|
+
data: string;
|
|
35
|
+
mimeType: string;
|
|
36
|
+
})[];
|
|
37
|
+
isError: boolean;
|
|
38
|
+
}, {
|
|
39
|
+
content: ({
|
|
40
|
+
type: "text";
|
|
41
|
+
text: string;
|
|
42
|
+
} | {
|
|
43
|
+
type: "image";
|
|
44
|
+
data: string;
|
|
45
|
+
mimeType: string;
|
|
46
|
+
})[];
|
|
47
|
+
isError?: boolean | undefined;
|
|
48
|
+
}>;
|
|
49
|
+
export declare abstract class MapboxApiBasedTool<InputSchema extends ZodTypeAny> {
|
|
50
|
+
abstract readonly name: string;
|
|
51
|
+
abstract readonly description: string;
|
|
52
|
+
readonly inputSchema: InputSchema;
|
|
53
|
+
protected server: McpServer | null;
|
|
54
|
+
static get mapboxAccessToken(): string | undefined;
|
|
55
|
+
static get mapboxApiEndpoint(): string;
|
|
56
|
+
constructor(params: {
|
|
57
|
+
inputSchema: InputSchema;
|
|
58
|
+
});
|
|
59
|
+
/**
|
|
60
|
+
* Validates if a string has the format of a JWT token (header.payload.signature)
|
|
61
|
+
* Docs: https://docs.mapbox.com/api/accounts/tokens/#token-format
|
|
62
|
+
* @param token The token string to validate
|
|
63
|
+
* @returns boolean indicating if the token has valid JWT format
|
|
64
|
+
*/
|
|
65
|
+
private isValidJwtFormat;
|
|
66
|
+
/**
|
|
67
|
+
* Validates and runs the tool logic.
|
|
68
|
+
*/
|
|
69
|
+
run(rawInput: unknown, extra?: RequestHandlerExtra<any, any>): Promise<z.infer<typeof OutputSchema>>;
|
|
70
|
+
/**
|
|
71
|
+
* Tool logic to be implemented by subclasses.
|
|
72
|
+
*/
|
|
73
|
+
protected abstract execute(_input: z.infer<InputSchema>, accessToken: string): Promise<any>;
|
|
74
|
+
/**
|
|
75
|
+
* Installs the tool to the given MCP server.
|
|
76
|
+
*/
|
|
77
|
+
installTo(server: McpServer): RegisteredTool;
|
|
78
|
+
/**
|
|
79
|
+
* Helper method to send logging messages
|
|
80
|
+
*/
|
|
81
|
+
protected log(level: 'debug' | 'info' | 'warning' | 'error', data: any): void;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=MapboxApiBasedTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MapboxApiBasedTool.d.ts","sourceRoot":"","sources":["../../../src/tools/MapboxApiBasedTool.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEpC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAevB,CAAC;AAEH,8BAAsB,kBAAkB,CAAC,WAAW,SAAS,UAAU;IACrE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAE1C,MAAM,KAAK,iBAAiB,uBAE3B;IAED,MAAM,KAAK,iBAAiB,WAE3B;gBAEW,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;IAIhD;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACG,GAAG,CACP,QAAQ,EAAE,OAAO,EACjB,KAAK,CAAC,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,GACpC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;IA4DxC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,CACxB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc;IAU5C;;OAEG;IACH,SAAS,CAAC,GAAG,CACX,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,EAC7C,IAAI,EAAE,GAAG,GACR,IAAI;CAKR"}
|
|
@@ -16,8 +16,12 @@ export const OutputSchema = z.object({
|
|
|
16
16
|
export class MapboxApiBasedTool {
|
|
17
17
|
inputSchema;
|
|
18
18
|
server = null;
|
|
19
|
-
static
|
|
20
|
-
|
|
19
|
+
static get mapboxAccessToken() {
|
|
20
|
+
return process.env.MAPBOX_ACCESS_TOKEN;
|
|
21
|
+
}
|
|
22
|
+
static get mapboxApiEndpoint() {
|
|
23
|
+
return process.env.MAPBOX_API_ENDPOINT || 'https://api.mapbox.com/';
|
|
24
|
+
}
|
|
21
25
|
constructor(params) {
|
|
22
26
|
this.inputSchema = params.inputSchema;
|
|
23
27
|
}
|
|
@@ -38,17 +42,23 @@ export class MapboxApiBasedTool {
|
|
|
38
42
|
/**
|
|
39
43
|
* Validates and runs the tool logic.
|
|
40
44
|
*/
|
|
41
|
-
async run(rawInput) {
|
|
45
|
+
async run(rawInput, extra) {
|
|
42
46
|
try {
|
|
43
|
-
if
|
|
44
|
-
|
|
47
|
+
// First check if token is provided via authentication context
|
|
48
|
+
// Check both standard token field and accessToken in extra for compatibility
|
|
49
|
+
// In the streamableHttp, the authInfo is injected into extra from `req.auth`
|
|
50
|
+
// https://github.com/modelcontextprotocol/typescript-sdk/blob/main/src/server/streamableHttp.ts#L405
|
|
51
|
+
const authToken = extra?.authInfo?.token;
|
|
52
|
+
const accessToken = authToken || MapboxApiBasedTool.mapboxAccessToken;
|
|
53
|
+
if (!accessToken) {
|
|
54
|
+
throw new Error('No access token available. Please provide via Bearer auth or MAPBOX_ACCESS_TOKEN env var');
|
|
45
55
|
}
|
|
46
56
|
// Validate that the token has the correct JWT format
|
|
47
|
-
if (!this.isValidJwtFormat(
|
|
48
|
-
throw new Error('
|
|
57
|
+
if (!this.isValidJwtFormat(accessToken)) {
|
|
58
|
+
throw new Error('Access token is not in valid JWT format');
|
|
49
59
|
}
|
|
50
60
|
const input = this.inputSchema.parse(rawInput);
|
|
51
|
-
const result = await this.execute(input);
|
|
61
|
+
const result = await this.execute(input, accessToken);
|
|
52
62
|
// Check if result is already a content object (image or text)
|
|
53
63
|
if (result &&
|
|
54
64
|
typeof result === 'object' &&
|
|
@@ -67,14 +77,11 @@ export class MapboxApiBasedTool {
|
|
|
67
77
|
catch (error) {
|
|
68
78
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
69
79
|
this.log('error', `${this.name}: Error during execution: ${errorMessage}`);
|
|
70
|
-
const isVerboseErrors = process.env.VERBOSE_ERRORS === 'true';
|
|
71
80
|
return {
|
|
72
81
|
content: [
|
|
73
82
|
{
|
|
74
83
|
type: 'text',
|
|
75
|
-
text:
|
|
76
|
-
? errorMessage
|
|
77
|
-
: 'Internal error has occurred.'
|
|
84
|
+
text: errorMessage
|
|
78
85
|
}
|
|
79
86
|
],
|
|
80
87
|
isError: true
|
|
@@ -86,7 +93,7 @@ export class MapboxApiBasedTool {
|
|
|
86
93
|
*/
|
|
87
94
|
installTo(server) {
|
|
88
95
|
this.server = server;
|
|
89
|
-
return server.tool(this.name, this.description, this.inputSchema.shape, this.run
|
|
96
|
+
return server.tool(this.name, this.description, this.inputSchema.shape, (args, extra) => this.run(args, extra));
|
|
90
97
|
}
|
|
91
98
|
/**
|
|
92
99
|
* Helper method to send logging messages
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MapboxApiBasedTool.js","sourceRoot":"","sources":["../../../src/tools/MapboxApiBasedTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
|
|
3
|
+
declare const CategoryListInputSchema: z.ZodObject<{
|
|
4
|
+
language: z.ZodOptional<z.ZodString>;
|
|
5
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
6
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
offset: number;
|
|
9
|
+
language?: string | undefined;
|
|
10
|
+
limit?: number | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
language?: string | undefined;
|
|
13
|
+
limit?: number | undefined;
|
|
14
|
+
offset?: number | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
type CategoryListInput = z.infer<typeof CategoryListInputSchema>;
|
|
17
|
+
/**
|
|
18
|
+
* Tool for retrieving the list of supported categories from Mapbox Search API
|
|
19
|
+
*/
|
|
20
|
+
export declare class CategoryListTool extends MapboxApiBasedTool<typeof CategoryListInputSchema> {
|
|
21
|
+
private fetchImpl;
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
constructor(fetchImpl?: typeof fetch);
|
|
25
|
+
protected execute(input: CategoryListInput, accessToken: string): Promise<any>;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=CategoryListTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryListTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/category-list-tool/CategoryListTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D,QAAA,MAAM,uBAAuB;;;;;;;;;;;;EAqB3B,CAAC;AAEH,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAajE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB,CACtD,OAAO,uBAAuB,CAC/B;IAKa,OAAO,CAAC,SAAS;IAJ7B,IAAI,SAAwB;IAC5B,WAAW,SACiU;gBAExT,SAAS,GAAE,OAAO,KAAmB;cAIzC,OAAO,CACrB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC;CA2ChB"}
|