{"_comment":"Only one wallet type is needed. LND is recommended for speed. NWC is easiest to set up but slower.","_tip":"Don't have a wallet yet? Deploy an LND node via bolthub.ai/nodes, or get a free NWC connection from coinos.io. You can also use Alby MCP or Fewsats MCP instead of this bridge -- see https://bolthub.ai/start-earning","mcpServers":{"routeplanner-api":{"command":"npx","args":["@bolthub/mcp","--gateway","https://routeplanner.gw.bolthub.ai/"],"env":{"LND_REST_HOST":"<recommended -- fastest, <200ms>","LND_MACAROON":"<hex-encoded admin macaroon>","LNBITS_URL":"<fast, <300ms>","LNBITS_ADMIN_KEY":"<lnbits-admin-key>","NWC_URI":"<easiest setup -- slower, 1-3s>"}}},"tools":[{"name":"routeplanner_post_origin_v1_routes_cluster","description":"Splits a set of stops into balanced groups, using straight-line distance by default or real road-network distance when requested. Useful for building delivery territories or zones, or for dividing a large job across vehicles. Returns each group with its stop ids, load totals, and centroid, plus any stops that could not be placed.\n\nEither set how many groups you want, or send vehicles with capacities so the groups respect them (send one or the other, not both). You can pick a grouping strategy, balance the workload evenly across groups, and provide an optional depot. Road-aware grouping supports up to 50 stops; straight-line grouping supports larger sets.\n\n**Request body**\n\n- `stops` *(array, required)* - The stops to group, as latitude/longitude points (two or more). Each may carry demand (items, weight, volume), a priority, and a time window.\n- `num_clusters` *(integer)* - How many groups to split the stops into. Provide this or vehicles, not both.\n- `vehicles` *(array)* - A fleet to pack the stops into, each with an optional capacity and stop limit. Provide this or num_clusters, not both.\n- `strategy` *(string: balanced | fill_vehicle_first | min_vehicles | zone_based | time_window | fairness)* - How to group the stops (for example, balanced even distribution, or filling each vehicle in turn).\n- `balance_workload` *(boolean)* - Distribute the stops more evenly across the groups.\n- `depot` *(object)* - Optional common start location for the groups.\n- `road_aware` *(boolean)* - Group by real road-network distance instead of straight-line. Supports up to 50 stops.","url":"https://routeplanner.gw.bolthub.ai/origin/v1/routes/cluster","method":"POST","exampleInput":{"stops":[{"id":"a","lat":-27.4698,"lng":153.0251},{"id":"b","lat":-27.4818,"lng":153.0107},{"id":"c","lat":-27.456,"lng":153.0394},{"id":"d","lat":-27.5,"lng":153.01}],"num_clusters":2},"inputSchema":{"type":"object","properties":{"body":{"type":"object","description":"JSON request body"},"query":{"type":"string","description":"Query parameters as key=value&key2=value2"}}}},{"name":"routeplanner_post_origin_v1_routes_directions","description":"Computes a drivable route through a list of points in the order given, over the real road network. Returns the total distance and duration, the route geometry as a GeoJSON line, a bounding box, and, when requested, turn-by-turn steps.\n\nSend two or more waypoints as latitude/longitude pairs; they are visited in the given order and not re-sequenced. You can pick a vehicle type, supply vehicle dimensions and a hazardous-goods flag so heavy-vehicle road restrictions are applied, choose whether to optimise for time, distance, or fuel, route against current traffic, and set the language for step text.\n\n**Request body**\n\n- `waypoints` *(array, required)* - The points to route through, in order, as latitude/longitude pairs (two or more). They are not re-sequenced.\n- `vehicle_type` *(string: car | van | truck | bike)* - Vehicle profile used for routing. Trucks follow heavy-vehicle road restrictions.\n- `vehicle` *(object)* - Optional vehicle dimensions and load flags (height, width, length, weight, axle load, hazardous goods) used to apply road restrictions.\n- `optimize_for` *(string: time | distance | fuel)* - What to optimise the route for: travel time, distance, or fuel.\n- `geometry` *(string: full | simplified | none)* - Route-shape detail. The default, simplified, thins the line to about 20 m tolerance, so a long route is a few thousand points instead of tens of thousands; full returns every vertex; none omits the geometry field while keeping distance, duration, bounding box, and steps.\n- `steps` *(boolean)* - Include turn-by-turn step instructions in the response.\n- `traffic` *(boolean)* - Route against current traffic conditions.\n- `locale` *(string)* - Language for step instruction text (for example, en).","url":"https://routeplanner.gw.bolthub.ai/origin/v1/routes/directions","method":"POST","exampleInput":{"steps":true,"vehicle":{"weight_kg":26000,"height_meters":4.2},"geometry":"simplified","waypoints":[{"lat":-27.4698,"lng":153.0251},{"lat":-27.456,"lng":153.0394}],"optimize_for":"time","vehicle_type":"truck"},"inputSchema":{"type":"object","properties":{"body":{"type":"object","description":"JSON request body"},"query":{"type":"string","description":"Query parameters as key=value&key2=value2"}}}},{"name":"routeplanner_post_origin_v1_routes_matrix","description":"Computes a travel-time and travel-distance matrix between a set of points, using real road-network routing rather than straight-line estimates. Returns two grids indexed [from][to]: one of distances in meters and one of durations in seconds.\n\nSend two or more points as latitude/longitude pairs. You can pick a vehicle type whose road rules are respected (for example, trucks follow heavy-vehicle restrictions), choose whether to measure by time or distance, and optionally measure against current traffic. The response is a full grid: every point is measured against every other point.\n\n**Request body**\n\n- `points` *(array, required)* - The points to measure between, as latitude/longitude pairs (two or more). The result is a grid of every point to every other point.\n- `vehicle_type` *(string: car | van | truck | bike)* - Vehicle profile used for routing. Trucks follow heavy-vehicle road restrictions.\n- `optimize_for` *(string: time | distance)* - Whether the matrix is measured for travel time or travel distance.\n- `traffic` *(boolean)* - Measure durations against current traffic conditions.","url":"https://routeplanner.gw.bolthub.ai/origin/v1/routes/matrix","method":"POST","exampleInput":{"points":[{"lat":-27.4698,"lng":153.0251},{"lat":-27.4818,"lng":153.0107},{"lat":-27.456,"lng":153.0394}],"optimize_for":"time","vehicle_type":"truck"},"inputSchema":{"type":"object","properties":{"body":{"type":"object","description":"JSON request body"},"query":{"type":"string","description":"Query parameters as key=value&key2=value2"}}}},{"name":"routeplanner_post_origin_v1_routes_navigate","description":"Computes turn-by-turn navigation through a list of waypoints in the order given, over the real road network. Returns a route with step-by-step maneuvers, banner and voice instruction text, and the route geometry, in the same shape a Mapbox Navigation SDK consumes, so it can be followed directly.\n\nSend two or more waypoints as latitude/longitude pairs; they are visited in order. You can pick a vehicle type whose road rules are respected (for example, trucks follow heavy-vehicle restrictions) and set the language for instruction text.\n\n**Request body**\n\n- `waypoints` *(array, required)* - The points to navigate through, in order, as latitude/longitude pairs (two or more).\n- `vehicle_type` *(string: car | van | truck | bike)* - Vehicle profile used for routing. Trucks follow heavy-vehicle road restrictions.\n- `locale` *(string)* - Language for instruction text (for example, en).","url":"https://routeplanner.gw.bolthub.ai/origin/v1/routes/navigate","method":"POST","exampleInput":{"waypoints":[{"lat":-27.4698,"lng":153.0251},{"lat":-27.456,"lng":153.0394}],"vehicle_type":"truck"},"inputSchema":{"type":"object","properties":{"body":{"type":"object","description":"JSON request body"},"query":{"type":"string","description":"Query parameters as key=value&key2=value2"}}}},{"name":"routeplanner_post_origin_v1_routes_optimize","description":"Computes the most efficient visiting order for one vehicle across a set of stops, using real road-network travel times and distances rather than straight-line estimates. Returns the stops re-sequenced into the optimal order, the drivable route geometry that connects them, and the total distance and duration.\n\nSend two or more stops as latitude/longitude points. You can optionally set a start and end location, choose what to optimise for (time, distance, or fuel), and pick a vehicle type whose road rules are respected (for example, trucks follow heavy-vehicle restrictions). Per-stop time windows and service durations are honoured when provided. With a start and no end the route returns to the start; giving an end produces an open route.\n\n**Request body**\n\n- `stops` *(array, required)* - Locations to visit, as latitude/longitude points (two or more). Each stop may also carry an address, name, time window, and service duration.\n- `start` *(object)* - Optional location the route starts from.\n- `end` *(object)* - Optional location the route ends at. Omit it to return to the start.\n- `optimize_for` *(string: time | distance | fuel)* - What to optimise the route for: travel time, distance, or fuel.\n- `vehicle_type` *(string: car | van | truck | bike)* - Vehicle profile used for routing. Trucks follow heavy-vehicle road restrictions.","url":"https://routeplanner.gw.bolthub.ai/origin/v1/routes/optimize","method":"POST","exampleInput":{"start":{"lat":-27.4698,"lng":153.0251},"stops":[{"lat":-27.4698,"lng":153.0251,"address":"100 Eagle St"},{"lat":-27.4818,"lng":153.0107,"address":"South Bank"},{"lat":-27.456,"lng":153.0394,"address":"Fortitude Valley"}],"optimize_for":"time","vehicle_type":"van"},"inputSchema":{"type":"object","properties":{"body":{"type":"object","description":"JSON request body"},"query":{"type":"string","description":"Query parameters as key=value&key2=value2"}}}},{"name":"routeplanner_post_origin_v1_routes_optimizefleet","description":"Assigns a set of stops across multiple vehicles and computes an efficient route for each, using real road-network travel times and distances. Returns the per-vehicle assignments, each vehicle's ordered route and drivable geometry, any stops that could not be assigned, and summary totals.\n\nSend the stops and the fleet of vehicles in one request. Vehicle capacities (items, weight, or volume) and per-vehicle stop limits are respected, and stops that fit nowhere come back as unassigned rather than failing the request. An optional shared start and end act as a common depot for the fleet, and per-stop time windows are honoured. Route geometry is returned only when you ask for it.\n\n**Request body**\n\n- `stops` *(array, required)* - Locations to visit. Each stop may carry demand (items, weight, volume), a time window, a service duration, and a priority.\n- `vehicles` *(array, required)* - The fleet. Each vehicle may set a type, a capacity, and a maximum number of stops.\n- `start` *(object)* - Optional shared start location acting as a common depot for the fleet.\n- `end` *(object)* - Optional shared end location for the fleet.\n- `options` *(object)* - Optimization options: objective, workload balancing, time-window handling, return-to-start, and whether to include route geometry.","url":"https://routeplanner.gw.bolthub.ai/origin/v1/routes/optimize-fleet","method":"POST","exampleInput":{"start":{"lat":-27.4698,"lng":153.0251},"stops":[{"id":"s1","lat":-27.4698,"lng":153.0251,"items":2},{"id":"s2","lat":-27.4818,"lng":153.0107,"items":1},{"id":"s3","lat":-27.456,"lng":153.0394,"items":3},{"id":"s4","lat":-27.5,"lng":153.01,"items":1}],"options":{"optimize_for":"time","balance_workload":true},"vehicles":[{"id":"van-1","type":"van","capacity":{"items":4}},{"id":"van-2","type":"van","capacity":{"items":4}}]},"inputSchema":{"type":"object","properties":{"body":{"type":"object","description":"JSON request body"},"query":{"type":"string","description":"Query parameters as key=value&key2=value2"}}}},{"name":"routeplanner_post_origin_v1_routes_reachable","description":"Computes the area reachable from a point within a travel-time or travel-distance budget, over the real road network. Returns GeoJSON polygons, one per band, outlining everywhere you could get to within the budget.\n\nSend a center point and either a number of minutes or a number of meters. You can pick a vehicle type whose road rules are respected (for example, trucks follow heavy-vehicle restrictions), and request several nested bands at once. Useful for service-area coverage, site selection, and delivery-zone checks.\n\n**Request body**\n\n- `center` *(object, required)* - The point to measure reachability from, as a latitude/longitude pair.\n- `minutes` *(number)* - Travel-time budget in minutes. Provide this or meters, not both.\n- `meters` *(number)* - Travel-distance budget in meters. Provide this or minutes, not both.\n- `buckets` *(integer)* - Number of nested bands to return (for example, 3 returns three rings).\n- `vehicle_type` *(string: car | van | truck | bike)* - Vehicle profile used for routing. Trucks follow heavy-vehicle road restrictions.","url":"https://routeplanner.gw.bolthub.ai/origin/v1/routes/reachable","method":"POST","exampleInput":{"center":{"lat":-27.4698,"lng":153.0251},"buckets":3,"minutes":30,"vehicle_type":"truck"},"inputSchema":{"type":"object","properties":{"body":{"type":"object","description":"JSON request body"},"query":{"type":"string","description":"Query parameters as key=value&key2=value2"}}}}],"metadata":{"name":"RoutePlanner.io","description":null,"tags":[],"gateway":"https://routeplanner.gw.bolthub.ai/","discoveryUrl":"https://routeplanner.gw.bolthub.ai/.well-known/l402-gateway.json","openApiUrl":"https://routeplanner.gw.bolthub.ai/.well-known/openapi.json"}}