@mapbox/mcp-server 0.16.1-dev → 0.17.0-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/commonjs/index.js +14 -14
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/prompts/BasePrompt.d.ts +1 -1
- package/dist/commonjs/prompts/BasePrompt.d.ts.map +1 -1
- package/dist/commonjs/prompts/FindPlacesNearbyPrompt.d.ts +1 -1
- package/dist/commonjs/prompts/FindPlacesNearbyPrompt.d.ts.map +1 -1
- package/dist/commonjs/prompts/GetDirectionsPrompt.d.ts +1 -1
- package/dist/commonjs/prompts/GetDirectionsPrompt.d.ts.map +1 -1
- package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts +1 -1
- package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts.map +1 -1
- package/dist/commonjs/prompts/ShowReachableAreasPrompt.d.ts +1 -1
- package/dist/commonjs/prompts/ShowReachableAreasPrompt.d.ts.map +1 -1
- package/dist/commonjs/resources/BaseResource.d.ts +2 -4
- package/dist/commonjs/resources/BaseResource.d.ts.map +1 -1
- package/dist/commonjs/resources/BaseResource.js +4 -4
- package/dist/commonjs/resources/BaseResource.js.map +1 -1
- package/dist/commonjs/resources/MapboxApiBasedResource.d.ts +2 -3
- package/dist/commonjs/resources/MapboxApiBasedResource.d.ts.map +1 -1
- package/dist/commonjs/resources/MapboxApiBasedResource.js +1 -1
- package/dist/commonjs/resources/MapboxApiBasedResource.js.map +1 -1
- package/dist/commonjs/resources/category-list/CategoryListResource.d.ts +1 -1
- package/dist/commonjs/resources/category-list/CategoryListResource.d.ts.map +1 -1
- package/dist/commonjs/resources/compute/ComputeResource.d.ts +2 -3
- package/dist/commonjs/resources/compute/ComputeResource.d.ts.map +1 -1
- package/dist/commonjs/resources/compute/ComputeResource.js.map +1 -1
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.d.ts +2 -3
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.d.ts.map +1 -1
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.js.map +1 -1
- package/dist/commonjs/resources/place-photo/PlacePhotoResource.d.ts +1 -1
- package/dist/commonjs/resources/place-photo/PlacePhotoResource.d.ts.map +1 -1
- package/dist/commonjs/resources/temporary/TemporaryDataResource.d.ts +2 -3
- package/dist/commonjs/resources/temporary/TemporaryDataResource.d.ts.map +1 -1
- package/dist/commonjs/resources/temporary/TemporaryDataResource.js +1 -1
- package/dist/commonjs/resources/temporary/TemporaryDataResource.js.map +1 -1
- package/dist/commonjs/resources/tool-response/ToolResponseResource.d.ts +1 -1
- package/dist/commonjs/resources/tool-response/ToolResponseResource.d.ts.map +1 -1
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.d.ts +2 -3
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.d.ts.map +1 -1
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.js +1 -1
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.js.map +1 -1
- package/dist/commonjs/resources/version/VersionResource.d.ts +1 -1
- package/dist/commonjs/resources/version/VersionResource.d.ts.map +1 -1
- package/dist/commonjs/tools/BaseTool.d.ts +2 -4
- package/dist/commonjs/tools/BaseTool.d.ts.map +1 -1
- package/dist/commonjs/tools/BaseTool.js +19 -4
- package/dist/commonjs/tools/BaseTool.js.map +1 -1
- package/dist/commonjs/tools/MapboxApiBasedTool.d.ts +2 -3
- package/dist/commonjs/tools/MapboxApiBasedTool.d.ts.map +1 -1
- package/dist/commonjs/tools/MapboxApiBasedTool.js +2 -4
- package/dist/commonjs/tools/MapboxApiBasedTool.js.map +1 -1
- package/dist/commonjs/tools/area-tool/AreaTool.d.ts +1 -1
- package/dist/commonjs/tools/area-tool/AreaTool.d.ts.map +1 -1
- package/dist/commonjs/tools/area-tool/AreaTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts +1 -1
- package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts.map +1 -1
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts +1 -1
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -1
- package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts +1 -1
- package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts.map +1 -1
- package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts +1 -1
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts +1 -1
- package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts.map +1 -1
- package/dist/commonjs/tools/convex-tool/ConvexTool.d.ts +1 -1
- package/dist/commonjs/tools/convex-tool/ConvexTool.d.ts.map +1 -1
- package/dist/commonjs/tools/destination-tool/DestinationTool.d.ts +1 -1
- package/dist/commonjs/tools/destination-tool/DestinationTool.d.ts.map +1 -1
- package/dist/commonjs/tools/destination-tool/DestinationTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.d.ts +1 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts +4 -0
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js +19 -3
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js +7 -2
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts +1 -0
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js +15 -2
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts +3 -3
- package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/cleanResponseData.js +33 -20
- package/dist/commonjs/tools/directions-tool/cleanResponseData.js.map +1 -1
- package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts +1 -1
- package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts.map +1 -1
- package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.d.ts +2 -2
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.d.ts +38 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.d.ts.map +1 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.input.schema.d.ts +41 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.input.schema.js +65 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.js +229 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.js.map +1 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.output.schema.d.ts +23 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.output.schema.js +37 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.d.ts +1 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.d.ts.map +1 -1
- package/dist/commonjs/tools/index.d.ts +4 -0
- package/dist/commonjs/tools/index.d.ts.map +1 -1
- package/dist/commonjs/tools/index.js +6 -1
- package/dist/commonjs/tools/index.js.map +1 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.d.ts +1 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.d.ts.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
- package/dist/commonjs/tools/length-tool/LengthTool.d.ts +1 -1
- package/dist/commonjs/tools/length-tool/LengthTool.d.ts.map +1 -1
- package/dist/commonjs/tools/length-tool/LengthTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/lenientOutputSchema.d.ts +16 -0
- package/dist/commonjs/tools/lenientOutputSchema.d.ts.map +1 -0
- package/dist/commonjs/tools/lenientOutputSchema.js +36 -0
- package/dist/commonjs/tools/lenientOutputSchema.js.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.d.ts +35 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.d.ts.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.d.ts +12 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.js +22 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.js +196 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.js.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.d.ts +25 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.js +29 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts +1 -1
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -1
- package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts +1 -1
- package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts +1 -1
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts.map +1 -1
- package/dist/commonjs/tools/nearest-point-on-line-tool/NearestPointOnLineTool.d.ts +1 -1
- package/dist/commonjs/tools/nearest-point-on-line-tool/NearestPointOnLineTool.d.ts.map +1 -1
- package/dist/commonjs/tools/nearest-point-on-line-tool/NearestPointOnLineTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/nearest-point-tool/NearestPointTool.d.ts +1 -1
- package/dist/commonjs/tools/nearest-point-tool/NearestPointTool.d.ts.map +1 -1
- package/dist/commonjs/tools/nearest-point-tool/NearestPointTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts.map +1 -1
- package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.d.ts +1 -1
- package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.d.ts.map +1 -1
- package/dist/commonjs/tools/points-within-polygon-tool/PointsWithinPolygonTool.d.ts +1 -1
- package/dist/commonjs/tools/points-within-polygon-tool/PointsWithinPolygonTool.d.ts.map +1 -1
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts +2 -3
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts.map +1 -1
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.js +2 -4
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.js.map +1 -1
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts +2 -3
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js +2 -6
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts +1 -1
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts.map +1 -1
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts +1 -1
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
- package/dist/commonjs/tools/toolRegistry.d.ts +4 -2
- package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
- package/dist/commonjs/tools/toolRegistry.js +4 -0
- package/dist/commonjs/tools/toolRegistry.js.map +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.d.ts +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.d.ts.map +1 -1
- package/dist/commonjs/tools/validateOutput.d.ts +1 -1
- package/dist/commonjs/tools/validateOutput.d.ts.map +1 -1
- package/dist/commonjs/utils/directionsRef.d.ts.map +1 -1
- package/dist/commonjs/utils/directionsRef.js +3 -0
- package/dist/commonjs/utils/directionsRef.js.map +1 -1
- package/dist/commonjs/utils/index.js +2 -2
- package/dist/commonjs/utils/index.js.map +1 -1
- package/dist/commonjs/utils/jsonSchema2020.d.ts +8 -14
- package/dist/commonjs/utils/jsonSchema2020.d.ts.map +1 -1
- package/dist/commonjs/utils/jsonSchema2020.js +8 -40
- package/dist/commonjs/utils/jsonSchema2020.js.map +1 -1
- package/dist/commonjs/utils/serverInstructions.d.ts.map +1 -1
- package/dist/commonjs/utils/serverInstructions.js +3 -0
- package/dist/commonjs/utils/serverInstructions.js.map +1 -1
- package/dist/commonjs/utils/urlSafety.d.ts.map +1 -1
- package/dist/commonjs/utils/urlSafety.js +4 -3
- package/dist/commonjs/utils/urlSafety.js.map +1 -1
- package/dist/commonjs/version.json +3 -3
- package/dist/esm/index.js +9 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/prompts/BasePrompt.d.ts +1 -1
- package/dist/esm/prompts/BasePrompt.d.ts.map +1 -1
- package/dist/esm/prompts/FindPlacesNearbyPrompt.d.ts +1 -1
- package/dist/esm/prompts/FindPlacesNearbyPrompt.d.ts.map +1 -1
- package/dist/esm/prompts/GetDirectionsPrompt.d.ts +1 -1
- package/dist/esm/prompts/GetDirectionsPrompt.d.ts.map +1 -1
- package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts +1 -1
- package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts.map +1 -1
- package/dist/esm/prompts/ShowReachableAreasPrompt.d.ts +1 -1
- package/dist/esm/prompts/ShowReachableAreasPrompt.d.ts.map +1 -1
- package/dist/esm/resources/BaseResource.d.ts +2 -4
- package/dist/esm/resources/BaseResource.d.ts.map +1 -1
- package/dist/esm/resources/BaseResource.js +3 -3
- package/dist/esm/resources/BaseResource.js.map +1 -1
- package/dist/esm/resources/MapboxApiBasedResource.d.ts +2 -3
- package/dist/esm/resources/MapboxApiBasedResource.d.ts.map +1 -1
- package/dist/esm/resources/MapboxApiBasedResource.js +1 -1
- package/dist/esm/resources/MapboxApiBasedResource.js.map +1 -1
- package/dist/esm/resources/category-list/CategoryListResource.d.ts +1 -1
- package/dist/esm/resources/category-list/CategoryListResource.d.ts.map +1 -1
- package/dist/esm/resources/compute/ComputeResource.d.ts +2 -3
- package/dist/esm/resources/compute/ComputeResource.d.ts.map +1 -1
- package/dist/esm/resources/compute/ComputeResource.js.map +1 -1
- package/dist/esm/resources/inline-payload/InlinePayloadResource.d.ts +2 -3
- package/dist/esm/resources/inline-payload/InlinePayloadResource.d.ts.map +1 -1
- package/dist/esm/resources/inline-payload/InlinePayloadResource.js.map +1 -1
- package/dist/esm/resources/place-photo/PlacePhotoResource.d.ts +1 -1
- package/dist/esm/resources/place-photo/PlacePhotoResource.d.ts.map +1 -1
- package/dist/esm/resources/temporary/TemporaryDataResource.d.ts +2 -3
- package/dist/esm/resources/temporary/TemporaryDataResource.d.ts.map +1 -1
- package/dist/esm/resources/temporary/TemporaryDataResource.js +1 -1
- package/dist/esm/resources/temporary/TemporaryDataResource.js.map +1 -1
- package/dist/esm/resources/tool-response/ToolResponseResource.d.ts +1 -1
- package/dist/esm/resources/tool-response/ToolResponseResource.d.ts.map +1 -1
- package/dist/esm/resources/ui-apps/MapAppUIResource.d.ts +2 -3
- package/dist/esm/resources/ui-apps/MapAppUIResource.d.ts.map +1 -1
- package/dist/esm/resources/ui-apps/MapAppUIResource.js +1 -1
- package/dist/esm/resources/ui-apps/MapAppUIResource.js.map +1 -1
- package/dist/esm/resources/version/VersionResource.d.ts +1 -1
- package/dist/esm/resources/version/VersionResource.d.ts.map +1 -1
- package/dist/esm/tools/BaseTool.d.ts +2 -4
- package/dist/esm/tools/BaseTool.d.ts.map +1 -1
- package/dist/esm/tools/BaseTool.js +19 -4
- package/dist/esm/tools/BaseTool.js.map +1 -1
- package/dist/esm/tools/MapboxApiBasedTool.d.ts +2 -3
- package/dist/esm/tools/MapboxApiBasedTool.d.ts.map +1 -1
- package/dist/esm/tools/MapboxApiBasedTool.js +2 -4
- package/dist/esm/tools/MapboxApiBasedTool.js.map +1 -1
- package/dist/esm/tools/area-tool/AreaTool.d.ts +1 -1
- package/dist/esm/tools/area-tool/AreaTool.d.ts.map +1 -1
- package/dist/esm/tools/area-tool/AreaTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/bearing-tool/BearingTool.d.ts +1 -1
- package/dist/esm/tools/bearing-tool/BearingTool.d.ts.map +1 -1
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts +1 -1
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -1
- package/dist/esm/tools/buffer-tool/BufferTool.d.ts +1 -1
- package/dist/esm/tools/buffer-tool/BufferTool.d.ts.map +1 -1
- package/dist/esm/tools/buffer-tool/BufferTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts +1 -1
- package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/esm/tools/centroid-tool/CentroidTool.d.ts +1 -1
- package/dist/esm/tools/centroid-tool/CentroidTool.d.ts.map +1 -1
- package/dist/esm/tools/convex-tool/ConvexTool.d.ts +1 -1
- package/dist/esm/tools/convex-tool/ConvexTool.d.ts.map +1 -1
- package/dist/esm/tools/destination-tool/DestinationTool.d.ts +1 -1
- package/dist/esm/tools/destination-tool/DestinationTool.d.ts.map +1 -1
- package/dist/esm/tools/destination-tool/DestinationTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.d.ts +1 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts +4 -0
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js +19 -3
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.js +7 -2
- package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts +1 -0
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js +15 -2
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -1
- package/dist/esm/tools/directions-tool/cleanResponseData.d.ts +3 -3
- package/dist/esm/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/cleanResponseData.js +33 -20
- package/dist/esm/tools/directions-tool/cleanResponseData.js.map +1 -1
- package/dist/esm/tools/distance-tool/DistanceTool.d.ts +1 -1
- package/dist/esm/tools/distance-tool/DistanceTool.d.ts.map +1 -1
- package/dist/esm/tools/distance-tool/DistanceTool.input.schema.d.ts +2 -2
- package/dist/esm/tools/feedback-tool/FeedbackTool.d.ts +38 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.d.ts.map +1 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.input.schema.d.ts +41 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.input.schema.js +62 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.input.schema.js.map +1 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.js +225 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.js.map +1 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.output.schema.d.ts +23 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.output.schema.js +34 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.output.schema.js.map +1 -0
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.d.ts +1 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.d.ts.map +1 -1
- package/dist/esm/tools/index.d.ts +4 -0
- package/dist/esm/tools/index.d.ts.map +1 -1
- package/dist/esm/tools/index.js +4 -0
- package/dist/esm/tools/index.js.map +1 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.d.ts +1 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.d.ts.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +3 -3
- package/dist/esm/tools/length-tool/LengthTool.d.ts +1 -1
- package/dist/esm/tools/length-tool/LengthTool.d.ts.map +1 -1
- package/dist/esm/tools/length-tool/LengthTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/lenientOutputSchema.d.ts +16 -0
- package/dist/esm/tools/lenientOutputSchema.d.ts.map +1 -0
- package/dist/esm/tools/lenientOutputSchema.js +33 -0
- package/dist/esm/tools/lenientOutputSchema.js.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.d.ts +35 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.d.ts.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.d.ts +12 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.js +16 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.js.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.js +191 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.js.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.d.ts +25 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.js +26 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.js.map +1 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/matrix-tool/MatrixTool.d.ts +1 -1
- package/dist/esm/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
- package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts +1 -1
- package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts.map +1 -1
- package/dist/esm/tools/nearest-point-on-line-tool/NearestPointOnLineTool.d.ts +1 -1
- package/dist/esm/tools/nearest-point-on-line-tool/NearestPointOnLineTool.d.ts.map +1 -1
- package/dist/esm/tools/nearest-point-on-line-tool/NearestPointOnLineTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/nearest-point-tool/NearestPointTool.d.ts +1 -1
- package/dist/esm/tools/nearest-point-tool/NearestPointTool.d.ts.map +1 -1
- package/dist/esm/tools/nearest-point-tool/NearestPointTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/place-details-tool/PlaceDetailsTool.d.ts +1 -1
- package/dist/esm/tools/place-details-tool/PlaceDetailsTool.d.ts.map +1 -1
- package/dist/esm/tools/points-within-polygon-tool/PointsWithinPolygonTool.d.ts +1 -1
- package/dist/esm/tools/points-within-polygon-tool/PointsWithinPolygonTool.d.ts.map +1 -1
- package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts +2 -3
- package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts.map +1 -1
- package/dist/esm/tools/render-map-tool/RenderMapTool.js +2 -4
- package/dist/esm/tools/render-map-tool/RenderMapTool.js.map +1 -1
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts +2 -3
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js +2 -6
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
- package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts +1 -1
- package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts.map +1 -1
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts +1 -1
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
- package/dist/esm/tools/toolRegistry.d.ts +4 -2
- package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
- package/dist/esm/tools/toolRegistry.js +4 -0
- package/dist/esm/tools/toolRegistry.js.map +1 -1
- package/dist/esm/tools/union-tool/UnionTool.d.ts +1 -1
- package/dist/esm/tools/union-tool/UnionTool.d.ts.map +1 -1
- package/dist/esm/tools/validateOutput.d.ts +1 -1
- package/dist/esm/tools/validateOutput.d.ts.map +1 -1
- package/dist/esm/utils/directionsRef.d.ts.map +1 -1
- package/dist/esm/utils/directionsRef.js +3 -0
- package/dist/esm/utils/directionsRef.js.map +1 -1
- package/dist/esm/utils/index.js +2 -2
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/jsonSchema2020.d.ts +8 -14
- package/dist/esm/utils/jsonSchema2020.d.ts.map +1 -1
- package/dist/esm/utils/jsonSchema2020.js +8 -40
- package/dist/esm/utils/jsonSchema2020.js.map +1 -1
- package/dist/esm/utils/serverInstructions.d.ts.map +1 -1
- package/dist/esm/utils/serverInstructions.js +3 -0
- package/dist/esm/utils/serverInstructions.js.map +1 -1
- package/dist/esm/utils/urlSafety.d.ts.map +1 -1
- package/dist/esm/utils/urlSafety.js +4 -3
- package/dist/esm/utils/urlSafety.js.map +1 -1
- package/dist/esm/version.json +3 -3
- package/package.json +7 -3
- package/patches/README.md +10 -34
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts +0 -10
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts.map +0 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +0 -93
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +0 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js +0 -186
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +0 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js +0 -332
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js.map +0 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +0 -34
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +0 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js +0 -109
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts +0 -10
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +0 -93
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js +0 -180
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js +0 -329
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +0 -34
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js +0 -106
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +0 -1
- package/patches/@modelcontextprotocol+sdk+1.30.0.patch +0 -66
|
@@ -1,329 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Mapbox, Inc.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
import { OptimizationV2InputSchema } from './OptimizationV2Tool.input.schema.js';
|
|
4
|
-
import { OptimizationV2OutputSchema } from './OptimizationV2Tool.output.schema.js';
|
|
5
|
-
/**
|
|
6
|
-
* OptimizationV2Tool - Advanced route optimization using Mapbox Optimization API V2 (BETA)
|
|
7
|
-
*
|
|
8
|
-
* ⚠️ IMPORTANT: This tool uses the V2 API which is currently in beta and requires early access.
|
|
9
|
-
* The tool is not registered by default. To enable it, add it to the toolRegistry.
|
|
10
|
-
*
|
|
11
|
-
* V2 Features:
|
|
12
|
-
* - Time window constraints for services and shipments
|
|
13
|
-
* - Vehicle capacity limits for multiple resource types
|
|
14
|
-
* - Driver shifts with earliest start and latest end times
|
|
15
|
-
* - Pickup and dropoff constraints for shipment handling
|
|
16
|
-
* - Vehicle capabilities requirements (e.g., refrigeration, ladder)
|
|
17
|
-
* - Loading policies (FIFO, LIFO, or any order)
|
|
18
|
-
* - Mandated breaks for vehicles
|
|
19
|
-
*
|
|
20
|
-
* API documentation: https://docs.mapbox.com/api/navigation/optimization/
|
|
21
|
-
*/
|
|
22
|
-
/**
|
|
23
|
-
* Helper function to validate JWT format
|
|
24
|
-
*/
|
|
25
|
-
function isValidJwtFormat(token) {
|
|
26
|
-
const parts = token.split('.');
|
|
27
|
-
if (parts.length !== 3)
|
|
28
|
-
return false;
|
|
29
|
-
return parts.every((part) => part.length > 0);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Helper function to get Mapbox API endpoint
|
|
33
|
-
*/
|
|
34
|
-
function getMapboxApiEndpoint() {
|
|
35
|
-
return process.env.MAPBOX_API_ENDPOINT || 'https://api.mapbox.com/';
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Core function to submit optimization job to Mapbox API
|
|
39
|
-
*/
|
|
40
|
-
async function submitOptimizationJob(input, accessToken, httpRequest) {
|
|
41
|
-
// Validate: If vehicles are provided, at least one service or shipment is required
|
|
42
|
-
if (input.vehicles && input.vehicles.length > 0) {
|
|
43
|
-
const hasServices = input.services && input.services.length > 0;
|
|
44
|
-
const hasShipments = input.shipments && input.shipments.length > 0;
|
|
45
|
-
if (!hasServices && !hasShipments) {
|
|
46
|
-
throw new Error('When vehicles are provided, at least one service or shipment is required');
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
// Convert simplified input to Optimization API v2 format
|
|
50
|
-
// Create locations array with auto-generated names
|
|
51
|
-
const locations = input.coordinates.map((coord, index) => ({
|
|
52
|
-
name: `location-${index}`,
|
|
53
|
-
coordinates: [coord.longitude, coord.latitude]
|
|
54
|
-
}));
|
|
55
|
-
// If vehicles are not provided, create a default vehicle
|
|
56
|
-
let vehicles;
|
|
57
|
-
let services;
|
|
58
|
-
let shipments;
|
|
59
|
-
if (!input.vehicles || input.vehicles.length === 0) {
|
|
60
|
-
// Simplified mode: auto-generate vehicle and services from coordinates
|
|
61
|
-
vehicles = [
|
|
62
|
-
{
|
|
63
|
-
name: 'vehicle-1',
|
|
64
|
-
routing_profile: input.profile,
|
|
65
|
-
start_location: 'location-0', // Start at first location
|
|
66
|
-
end_location: 'location-0' // Return to first location
|
|
67
|
-
}
|
|
68
|
-
];
|
|
69
|
-
// Create services for all locations except the first (which is start/end)
|
|
70
|
-
services = input.coordinates.slice(1).map((_, index) => ({
|
|
71
|
-
name: `service-${index + 1}`,
|
|
72
|
-
location: `location-${index + 1}`,
|
|
73
|
-
duration: 0 // No service time by default
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
// Advanced mode: use provided vehicles, services, and shipments
|
|
78
|
-
vehicles = input.vehicles;
|
|
79
|
-
services = input.services || [];
|
|
80
|
-
shipments = input.shipments;
|
|
81
|
-
}
|
|
82
|
-
// Build request body
|
|
83
|
-
const requestBody = {
|
|
84
|
-
version: 1,
|
|
85
|
-
locations,
|
|
86
|
-
vehicles,
|
|
87
|
-
services
|
|
88
|
-
};
|
|
89
|
-
if (shipments && shipments.length > 0) {
|
|
90
|
-
requestBody.shipments = shipments;
|
|
91
|
-
}
|
|
92
|
-
// Step 1: POST to create optimization job
|
|
93
|
-
const postUrl = `${getMapboxApiEndpoint()}optimized-trips/v2?access_token=${accessToken}`;
|
|
94
|
-
const postResponse = await httpRequest(postUrl, {
|
|
95
|
-
method: 'POST',
|
|
96
|
-
headers: { 'Content-Type': 'application/json' },
|
|
97
|
-
body: JSON.stringify(requestBody)
|
|
98
|
-
});
|
|
99
|
-
if (!postResponse.ok) {
|
|
100
|
-
const errorText = await postResponse.text();
|
|
101
|
-
let errorMessage = `Request failed with status ${postResponse.status}: ${postResponse.statusText}`;
|
|
102
|
-
try {
|
|
103
|
-
const errorJson = JSON.parse(errorText);
|
|
104
|
-
if (errorJson.message) {
|
|
105
|
-
errorMessage = `${errorMessage} - ${errorJson.message}`;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
catch {
|
|
109
|
-
// If parsing fails, use the raw text
|
|
110
|
-
if (errorText) {
|
|
111
|
-
errorMessage = `${errorMessage} - ${errorText}`;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
throw new Error(errorMessage);
|
|
115
|
-
}
|
|
116
|
-
const postData = (await postResponse.json());
|
|
117
|
-
return {
|
|
118
|
-
jobId: postData.id,
|
|
119
|
-
status: postData.status
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Core function to poll optimization job status
|
|
124
|
-
*/
|
|
125
|
-
async function pollOptimizationJob(jobId, accessToken, httpRequest) {
|
|
126
|
-
const getUrl = `${getMapboxApiEndpoint()}optimized-trips/v2/${jobId}?access_token=${accessToken}`;
|
|
127
|
-
const getResponse = await httpRequest(getUrl);
|
|
128
|
-
if (!getResponse.ok) {
|
|
129
|
-
if (getResponse.status === 404) {
|
|
130
|
-
return {
|
|
131
|
-
status: 404,
|
|
132
|
-
error: `Optimization job ${jobId} not found`
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
return {
|
|
136
|
-
status: getResponse.status,
|
|
137
|
-
error: `Request failed with status ${getResponse.status}: ${getResponse.statusText}`
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
// HTTP 200 means the optimization is complete
|
|
141
|
-
if (getResponse.status === 200) {
|
|
142
|
-
const result = (await getResponse.json());
|
|
143
|
-
return {
|
|
144
|
-
status: 200,
|
|
145
|
-
data: result
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
// HTTP 202 means still processing
|
|
149
|
-
return {
|
|
150
|
-
status: 202
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Background polling function that runs until job completes
|
|
155
|
-
*/
|
|
156
|
-
async function backgroundPollOptimizationJob(jobId, accessToken, httpRequest, taskStore, taskId, maxAttempts, pollingInterval) {
|
|
157
|
-
let attempts = 0;
|
|
158
|
-
while (attempts < maxAttempts) {
|
|
159
|
-
try {
|
|
160
|
-
const pollResult = await pollOptimizationJob(jobId, accessToken, httpRequest);
|
|
161
|
-
if (pollResult.status === 200 && pollResult.data) {
|
|
162
|
-
// Job completed successfully
|
|
163
|
-
try {
|
|
164
|
-
const validatedData = OptimizationV2OutputSchema.parse(pollResult.data);
|
|
165
|
-
await taskStore.storeTaskResult(taskId, 'completed', {
|
|
166
|
-
content: [
|
|
167
|
-
{ type: 'text', text: JSON.stringify(validatedData, null, 2) }
|
|
168
|
-
],
|
|
169
|
-
structuredContent: validatedData
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
catch {
|
|
173
|
-
// If validation fails, return raw result anyway
|
|
174
|
-
await taskStore.storeTaskResult(taskId, 'completed', {
|
|
175
|
-
content: [
|
|
176
|
-
{ type: 'text', text: JSON.stringify(pollResult.data, null, 2) }
|
|
177
|
-
],
|
|
178
|
-
structuredContent: pollResult.data
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
else if (pollResult.error) {
|
|
184
|
-
// Job failed or not found
|
|
185
|
-
await taskStore.storeTaskResult(taskId, 'failed', {
|
|
186
|
-
content: [{ type: 'text', text: pollResult.error }],
|
|
187
|
-
isError: true
|
|
188
|
-
});
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
// Still processing (status 202), update task status
|
|
192
|
-
await taskStore.updateTaskStatus(taskId, 'working', `Processing optimization job (attempt ${attempts + 1}/${maxAttempts})`);
|
|
193
|
-
// Wait before next poll
|
|
194
|
-
await new Promise((resolve) => setTimeout(resolve, pollingInterval));
|
|
195
|
-
attempts++;
|
|
196
|
-
}
|
|
197
|
-
catch (error) {
|
|
198
|
-
// Error during polling
|
|
199
|
-
await taskStore.storeTaskResult(taskId, 'failed', {
|
|
200
|
-
content: [
|
|
201
|
-
{
|
|
202
|
-
type: 'text',
|
|
203
|
-
text: `Error polling optimization job: ${error instanceof Error ? error.message : String(error)}`
|
|
204
|
-
}
|
|
205
|
-
],
|
|
206
|
-
isError: true
|
|
207
|
-
});
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
// Timed out
|
|
212
|
-
await taskStore.storeTaskResult(taskId, 'failed', {
|
|
213
|
-
content: [
|
|
214
|
-
{
|
|
215
|
-
type: 'text',
|
|
216
|
-
text: `Optimization timed out after ${maxAttempts} attempts. Job ID: ${jobId}. You can check the status later using the job ID.`
|
|
217
|
-
}
|
|
218
|
-
],
|
|
219
|
-
isError: true
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Register the Optimization V2 tool as a task-based tool
|
|
224
|
-
*
|
|
225
|
-
* ⚠️ BETA: This tool uses the V2 API which requires early access.
|
|
226
|
-
* Not registered by default - call this function manually to enable.
|
|
227
|
-
*/
|
|
228
|
-
export function registerOptimizationV2Task(server, httpRequest) {
|
|
229
|
-
server.experimental.tasks.registerToolTask('optimization_v2_tool', {
|
|
230
|
-
title: 'Optimization Tool V2 (Beta)',
|
|
231
|
-
description: 'Solves vehicle routing problems using the Mapbox Optimization API v2 (Beta). ' +
|
|
232
|
-
'This is a long-running async task that submits an optimization job and polls for results. ' +
|
|
233
|
-
'Supports up to 1000 coordinates in {longitude, latitude} format. ' +
|
|
234
|
-
'Returns optimized routes with stops, ETAs, and dropped items. ' +
|
|
235
|
-
'\n\n' +
|
|
236
|
-
'USAGE MODES:\n' +
|
|
237
|
-
'1. SIMPLIFIED MODE (recommended for basic routing): Provide only "coordinates" and optionally "profile". ' +
|
|
238
|
-
'The tool will automatically create a default vehicle that visits all locations in optimized order, ' +
|
|
239
|
-
'starting and ending at the first coordinate.\n' +
|
|
240
|
-
'2. ADVANCED MODE (for complex scenarios): If you specify "vehicles", you MUST also provide either ' +
|
|
241
|
-
'"services" (single stops like deliveries or pickups) or "shipments" (paired pickup/dropoff tasks). ' +
|
|
242
|
-
'Each service/shipment defines a stop that vehicles must visit.\n' +
|
|
243
|
-
'\n' +
|
|
244
|
-
'KEY CONCEPTS:\n' +
|
|
245
|
-
'- "services": Individual stops at locations (e.g., deliver package to address A, pick up at coffee shop B)\n' +
|
|
246
|
-
'- "shipments": Paired pickup/delivery tasks (e.g., pick up from warehouse, deliver to customer)\n' +
|
|
247
|
-
'- "vehicles": Routing agents with optional constraints like time windows, capacities, and capabilities\n' +
|
|
248
|
-
'\n' +
|
|
249
|
-
'LOCATION NAMING (CRITICAL):\n' +
|
|
250
|
-
'The tool auto-generates STRING location names from your coordinates array as "location-0", "location-1", "location-2", etc. ' +
|
|
251
|
-
'When creating services, shipments, or vehicles, you MUST reference these auto-generated STRINGS (NOT integers, NOT array indices):\n' +
|
|
252
|
-
'- coordinates[0] → use STRING "location-0" (NOT integer 0)\n' +
|
|
253
|
-
'\n' +
|
|
254
|
-
'EXAMPLES:\n' +
|
|
255
|
-
'✓ CORRECT: service.location = "location-2" (string)\n' +
|
|
256
|
-
'✗ WRONG: service.location = 2 (integer)\n' +
|
|
257
|
-
'\n' +
|
|
258
|
-
'IMPORTANT: This is an async task. The task will start immediately but results will be available later via task polling.',
|
|
259
|
-
inputSchema: OptimizationV2InputSchema,
|
|
260
|
-
outputSchema: OptimizationV2OutputSchema,
|
|
261
|
-
annotations: {
|
|
262
|
-
title: 'Optimization Tool',
|
|
263
|
-
readOnlyHint: true,
|
|
264
|
-
destructiveHint: false,
|
|
265
|
-
idempotentHint: false,
|
|
266
|
-
openWorldHint: true
|
|
267
|
-
}
|
|
268
|
-
}, {
|
|
269
|
-
async createTask(args, extra) {
|
|
270
|
-
// Validate input
|
|
271
|
-
const input = OptimizationV2InputSchema.parse(args);
|
|
272
|
-
// Get and validate access token (from environment only for now)
|
|
273
|
-
const accessToken = process.env.MAPBOX_ACCESS_TOKEN ||
|
|
274
|
-
extra.authInfo?.token;
|
|
275
|
-
if (!accessToken) {
|
|
276
|
-
throw new Error('No access token available. Please provide via Bearer auth or MAPBOX_ACCESS_TOKEN env var');
|
|
277
|
-
}
|
|
278
|
-
if (!isValidJwtFormat(accessToken)) {
|
|
279
|
-
throw new Error('Access token is not in valid JWT format');
|
|
280
|
-
}
|
|
281
|
-
// Create the task
|
|
282
|
-
const task = await extra.taskStore.createTask({
|
|
283
|
-
ttl: 300000 // 5 minutes TTL
|
|
284
|
-
});
|
|
285
|
-
// Submit optimization job to Mapbox API
|
|
286
|
-
try {
|
|
287
|
-
const { jobId } = await submitOptimizationJob(input, accessToken, httpRequest);
|
|
288
|
-
// Start background polling (fire and forget)
|
|
289
|
-
const maxAttempts = input.max_polling_attempts ?? 10;
|
|
290
|
-
const pollingInterval = input.polling_interval_ms ?? 1000;
|
|
291
|
-
// Don't await this - let it run in the background
|
|
292
|
-
void backgroundPollOptimizationJob(jobId, accessToken, httpRequest, extra.taskStore, task.taskId, maxAttempts, pollingInterval);
|
|
293
|
-
// Update task status to show it's working
|
|
294
|
-
await extra.taskStore.updateTaskStatus(task.taskId, 'working', `Optimization job submitted: ${jobId}`);
|
|
295
|
-
// Return CreateTaskResult with the created task
|
|
296
|
-
return {
|
|
297
|
-
task
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
catch (error) {
|
|
301
|
-
// Failed to submit job, mark task as failed
|
|
302
|
-
await extra.taskStore.storeTaskResult(task.taskId, 'failed', {
|
|
303
|
-
content: [
|
|
304
|
-
{
|
|
305
|
-
type: 'text',
|
|
306
|
-
text: `Failed to submit optimization job: ${error instanceof Error ? error.message : String(error)}`
|
|
307
|
-
}
|
|
308
|
-
],
|
|
309
|
-
isError: true
|
|
310
|
-
});
|
|
311
|
-
throw error;
|
|
312
|
-
}
|
|
313
|
-
},
|
|
314
|
-
async getTask(_args, extra) {
|
|
315
|
-
const task = await extra.taskStore.getTask(extra.taskId);
|
|
316
|
-
if (!task) {
|
|
317
|
-
throw new Error(`Task ${extra.taskId} not found`);
|
|
318
|
-
}
|
|
319
|
-
return task;
|
|
320
|
-
},
|
|
321
|
-
async getTaskResult(_args, extra) {
|
|
322
|
-
const result = await extra.taskStore.getTaskResult(extra.taskId);
|
|
323
|
-
// taskStore.getTaskResult returns a Result type, but we know we stored a CallToolResult
|
|
324
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
325
|
-
return result;
|
|
326
|
-
}
|
|
327
|
-
});
|
|
328
|
-
}
|
|
329
|
-
//# sourceMappingURL=OptimizationV2Tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OptimizationV2Tool.js","sourceRoot":"","sources":["../../../../src/tools/optimization-tool/OptimizationV2Tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
/**
|
|
3
|
-
* Output schema for OptimizationV2Tool (V2 API - Beta)
|
|
4
|
-
* Uses passthrough to be flexible with API response variations
|
|
5
|
-
*/
|
|
6
|
-
export declare const OptimizationV2OutputSchema: z.ZodObject<{
|
|
7
|
-
version: z.ZodOptional<z.ZodNumber>;
|
|
8
|
-
dropped: z.ZodOptional<z.ZodObject<{
|
|
9
|
-
services: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
10
|
-
shipments: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
11
|
-
}, z.core.$loose>>;
|
|
12
|
-
routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13
|
-
vehicle: z.ZodString;
|
|
14
|
-
stops: z.ZodArray<z.ZodObject<{
|
|
15
|
-
type: z.ZodString;
|
|
16
|
-
location: z.ZodString;
|
|
17
|
-
eta: z.ZodOptional<z.ZodString>;
|
|
18
|
-
odometer: z.ZodOptional<z.ZodNumber>;
|
|
19
|
-
wait: z.ZodOptional<z.ZodNumber>;
|
|
20
|
-
duration: z.ZodOptional<z.ZodNumber>;
|
|
21
|
-
services: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
22
|
-
pickups: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
|
-
dropoffs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
24
|
-
}, z.core.$loose>>;
|
|
25
|
-
}, z.core.$loose>>>;
|
|
26
|
-
code: z.ZodOptional<z.ZodString>;
|
|
27
|
-
message: z.ZodOptional<z.ZodString>;
|
|
28
|
-
ref: z.ZodOptional<z.ZodString>;
|
|
29
|
-
}, z.core.$loose>;
|
|
30
|
-
/**
|
|
31
|
-
* Type inference for OptimizationV2Output
|
|
32
|
-
*/
|
|
33
|
-
export type OptimizationV2Output = z.infer<typeof OptimizationV2OutputSchema>;
|
|
34
|
-
//# sourceMappingURL=OptimizationV2Tool.output.schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OptimizationV2Tool.output.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/optimization-tool/OptimizationV2Tool.output.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyFxB;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;iBAqCvB,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Mapbox, Inc.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
import { z } from 'zod';
|
|
4
|
-
/**
|
|
5
|
-
* Stop schema for route stops
|
|
6
|
-
* Made flexible to handle various API response formats
|
|
7
|
-
*/
|
|
8
|
-
const stopSchema = z
|
|
9
|
-
.object({
|
|
10
|
-
type: z
|
|
11
|
-
.string()
|
|
12
|
-
.describe('Type of stop. Known values include "start" (vehicle begins), "service" (perform service), "pickup"/"dropoff" (shipment handling), "break" (vehicle break), "end" (vehicle finishes). Additional values may be returned as the API evolves.'),
|
|
13
|
-
location: z
|
|
14
|
-
.string()
|
|
15
|
-
.describe('Location name for this stop (e.g., "location-0", "location-1")'),
|
|
16
|
-
eta: z
|
|
17
|
-
.string()
|
|
18
|
-
.optional()
|
|
19
|
-
.describe('Estimated time of arrival in ISO 8601 format (e.g., "2023-07-22T14:29:23-07:00")'),
|
|
20
|
-
odometer: z
|
|
21
|
-
.number()
|
|
22
|
-
.optional()
|
|
23
|
-
.describe('Total distance traveled to reach this stop in meters'),
|
|
24
|
-
wait: z
|
|
25
|
-
.number()
|
|
26
|
-
.optional()
|
|
27
|
-
.describe('Wait time at this stop in seconds before proceeding'),
|
|
28
|
-
duration: z
|
|
29
|
-
.number()
|
|
30
|
-
.optional()
|
|
31
|
-
.describe('Duration of service/activity at this stop in seconds'),
|
|
32
|
-
services: z
|
|
33
|
-
.array(z.string())
|
|
34
|
-
.optional()
|
|
35
|
-
.describe('Array of service names fulfilled at this stop'),
|
|
36
|
-
pickups: z
|
|
37
|
-
.array(z.string())
|
|
38
|
-
.optional()
|
|
39
|
-
.describe('Array of shipment names picked up at this stop'),
|
|
40
|
-
dropoffs: z
|
|
41
|
-
.array(z.string())
|
|
42
|
-
.optional()
|
|
43
|
-
.describe('Array of shipment names dropped off at this stop')
|
|
44
|
-
})
|
|
45
|
-
.passthrough(); // Allow additional fields from API
|
|
46
|
-
/**
|
|
47
|
-
* Route schema
|
|
48
|
-
*/
|
|
49
|
-
const routeSchema = z
|
|
50
|
-
.object({
|
|
51
|
-
vehicle: z
|
|
52
|
-
.string()
|
|
53
|
-
.describe('Vehicle name for this route (matches the vehicle name from input)'),
|
|
54
|
-
stops: z
|
|
55
|
-
.array(stopSchema)
|
|
56
|
-
.describe('Ordered sequence of stops for this vehicle, from start to end. Includes all services, pickups, dropoffs, and breaks in optimized order.')
|
|
57
|
-
})
|
|
58
|
-
.passthrough(); // Allow additional fields from API
|
|
59
|
-
/**
|
|
60
|
-
* Dropped items schema
|
|
61
|
-
*/
|
|
62
|
-
const droppedSchema = z
|
|
63
|
-
.object({
|
|
64
|
-
services: z
|
|
65
|
-
.array(z.string())
|
|
66
|
-
.optional()
|
|
67
|
-
.describe('Array of service names that could not be fulfilled due to constraints (e.g., time windows, capacity, capabilities)'),
|
|
68
|
-
shipments: z
|
|
69
|
-
.array(z.string())
|
|
70
|
-
.optional()
|
|
71
|
-
.describe('Array of shipment names that could not be fulfilled due to constraints (e.g., time windows, capacity, capabilities)')
|
|
72
|
-
})
|
|
73
|
-
.passthrough(); // Allow additional fields from API
|
|
74
|
-
/**
|
|
75
|
-
* Output schema for OptimizationV2Tool (V2 API - Beta)
|
|
76
|
-
* Uses passthrough to be flexible with API response variations
|
|
77
|
-
*/
|
|
78
|
-
export const OptimizationV2OutputSchema = z
|
|
79
|
-
.object({
|
|
80
|
-
version: z
|
|
81
|
-
.number()
|
|
82
|
-
.optional()
|
|
83
|
-
.describe('API version number (always 1 for Optimization API v2)'),
|
|
84
|
-
dropped: droppedSchema
|
|
85
|
-
.optional()
|
|
86
|
-
.describe('Items that could not be fulfilled in the optimization. If present, contains arrays of service/shipment names that were dropped.'),
|
|
87
|
-
routes: z
|
|
88
|
-
.array(routeSchema)
|
|
89
|
-
.optional()
|
|
90
|
-
.describe('Array of optimized routes, one per vehicle. Each route contains the vehicle name and an ordered sequence of stops. May be undefined if optimization fails completely.'),
|
|
91
|
-
// Error response fields from API
|
|
92
|
-
code: z
|
|
93
|
-
.string()
|
|
94
|
-
.optional()
|
|
95
|
-
.describe('Error code from API (e.g., "internal_error"). Present only when the API returns an error response.'),
|
|
96
|
-
message: z
|
|
97
|
-
.string()
|
|
98
|
-
.optional()
|
|
99
|
-
.describe('Human-readable error message from API. Present only when the API returns an error response.'),
|
|
100
|
-
ref: z
|
|
101
|
-
.string()
|
|
102
|
-
.optional()
|
|
103
|
-
.describe('Reference ID for the error from API. Present only when the API returns an error response.')
|
|
104
|
-
})
|
|
105
|
-
.passthrough(); // Allow additional fields from API
|
|
106
|
-
//# sourceMappingURL=OptimizationV2Tool.output.schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OptimizationV2Tool.output.schema.js","sourceRoot":"","sources":["../../../../src/tools/optimization-tool/OptimizationV2Tool.output.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,CACP,4OAA4O,CAC7O;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CACP,gEAAgE,CACjE;IACH,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,kFAAkF,CACnF;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;IACnE,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;IAClE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;IACnE,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;CAChE,CAAC;KACD,WAAW,EAAE,CAAC,CAAC,mCAAmC;AAErD;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CACP,mEAAmE,CACpE;IACH,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,UAAU,CAAC;SACjB,QAAQ,CACP,yIAAyI,CAC1I;CACJ,CAAC;KACD,WAAW,EAAE,CAAC,CAAC,mCAAmC;AAErD;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,oHAAoH,CACrH;IACH,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,qHAAqH,CACtH;CACJ,CAAC;KACD,WAAW,EAAE,CAAC,CAAC,mCAAmC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACpE,OAAO,EAAE,aAAa;SACnB,QAAQ,EAAE;SACV,QAAQ,CACP,iIAAiI,CAClI;IACH,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,WAAW,CAAC;SAClB,QAAQ,EAAE;SACV,QAAQ,CACP,uKAAuK,CACxK;IACH,iCAAiC;IACjC,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,oGAAoG,CACrG;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,6FAA6F,CAC9F;IACH,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,2FAA2F,CAC5F;CACJ,CAAC;KACD,WAAW,EAAE,CAAC,CAAC,mCAAmC"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
diff --git a/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js b/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js
|
|
2
|
-
index 9e1c874..2de8d57 100644
|
|
3
|
-
--- a/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js
|
|
4
|
-
+++ b/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js
|
|
5
|
-
@@ -197,15 +197,20 @@ class McpServer {
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
if (!result.structuredContent) {
|
|
9
|
-
- throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Output validation error: Tool ${toolName} has an output schema but no structured content was provided`);
|
|
10
|
-
+ // Log warning but don't throw - allow tools to omit structured content
|
|
11
|
-
+ console.warn(`[MCP SDK Patch] Output validation warning: Tool ${toolName} has an output schema but no structured content was provided`);
|
|
12
|
-
}
|
|
13
|
-
- // if the tool has an output schema, validate structured content
|
|
14
|
-
- const outputObj = (0, zod_compat_js_1.normalizeObjectSchema)(tool.outputSchema);
|
|
15
|
-
- const parseResult = await (0, zod_compat_js_1.safeParseAsync)(outputObj, result.structuredContent);
|
|
16
|
-
- if (!parseResult.success) {
|
|
17
|
-
- const error = 'error' in parseResult ? parseResult.error : 'Unknown error';
|
|
18
|
-
- const errorMessage = (0, zod_compat_js_1.getParseErrorMessage)(error);
|
|
19
|
-
- throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Output validation error: Invalid structured content for tool ${toolName}: ${errorMessage}`);
|
|
20
|
-
+ else {
|
|
21
|
-
+ // if the tool has an output schema, validate structured content
|
|
22
|
-
+ const outputObj = (0, zod_compat_js_1.normalizeObjectSchema)(tool.outputSchema);
|
|
23
|
-
+ const parseResult = await (0, zod_compat_js_1.safeParseAsync)(outputObj, result.structuredContent);
|
|
24
|
-
+ if (!parseResult.success) {
|
|
25
|
-
+ const error = 'error' in parseResult ? parseResult.error : 'Unknown error';
|
|
26
|
-
+ const errorMessage = (0, zod_compat_js_1.getParseErrorMessage)(error);
|
|
27
|
-
+ // Log warning but don't throw - allow schema mismatches
|
|
28
|
-
+ console.warn(`[MCP SDK Patch] Output validation warning: Invalid structured content for tool ${toolName}: ${errorMessage}`);
|
|
29
|
-
+ // Keep the structuredContent despite validation failure
|
|
30
|
-
+ }
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
diff --git a/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js b/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
|
|
35
|
-
index 2314d88..94aaef1 100644
|
|
36
|
-
--- a/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
|
|
37
|
-
+++ b/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
|
|
38
|
-
@@ -194,15 +194,20 @@ export class McpServer {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
if (!result.structuredContent) {
|
|
42
|
-
- throw new McpError(ErrorCode.InvalidParams, `Output validation error: Tool ${toolName} has an output schema but no structured content was provided`);
|
|
43
|
-
+ // Log warning but don't throw - allow tools to omit structured content
|
|
44
|
-
+ console.warn(`[MCP SDK Patch] Output validation warning: Tool ${toolName} has an output schema but no structured content was provided`);
|
|
45
|
-
}
|
|
46
|
-
- // if the tool has an output schema, validate structured content
|
|
47
|
-
- const outputObj = normalizeObjectSchema(tool.outputSchema);
|
|
48
|
-
- const parseResult = await safeParseAsync(outputObj, result.structuredContent);
|
|
49
|
-
- if (!parseResult.success) {
|
|
50
|
-
- const error = 'error' in parseResult ? parseResult.error : 'Unknown error';
|
|
51
|
-
- const errorMessage = getParseErrorMessage(error);
|
|
52
|
-
- throw new McpError(ErrorCode.InvalidParams, `Output validation error: Invalid structured content for tool ${toolName}: ${errorMessage}`);
|
|
53
|
-
+ else {
|
|
54
|
-
+ // if the tool has an output schema, validate structured content
|
|
55
|
-
+ const outputObj = normalizeObjectSchema(tool.outputSchema);
|
|
56
|
-
+ const parseResult = await safeParseAsync(outputObj, result.structuredContent);
|
|
57
|
-
+ if (!parseResult.success) {
|
|
58
|
-
+ const error = 'error' in parseResult ? parseResult.error : 'Unknown error';
|
|
59
|
-
+ const errorMessage = getParseErrorMessage(error);
|
|
60
|
-
+ // Log warning but don't throw - allow schema mismatches
|
|
61
|
-
+ console.warn(`[MCP SDK Patch] Output validation warning: Invalid structured content for tool ${toolName}: ${errorMessage}`);
|
|
62
|
-
+ // Keep the structuredContent despite validation failure
|
|
63
|
-
+ }
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|