Moltline Optimize
Vehicle routing, 3-D packing, cutting stock, rostering and knapsack with OR-Tools. 7 of 11 free.
| Endpoint | https://mcp.moltlinestudio.com/optimize (streamable-http) |
|---|---|
| Registry version | 1.2.0 |
| Now | 11 tools · grade D (52) · pin ts_3cde367cb71c921d83850e8be15799fc · protocol 2025-06-18 |
| First / last listed | 2026-11-04 03:34 UTC / 2026-11-04 03:34 UTC |
| Grade over time | 2026-11-04: D (52), 11 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: route_plan route_plan_fleet distance_matrix_haversine pack_bins pack_bins_large cutting_stock_1d cutting_stock_2d roster_shifts knapsack_select validate_problem explain_solution
route_plan | Order up to 12 stops into the shortest single-vehicle route on your distance matrix. FREE.
Typical input {"stops": [{"id": "depot"}, {"id": "A"}, {"id": "B"}],
"matrix": [[0, 5, 9], [5, 0, 4], [9, 4, 0]]} returns {"routes":
[{"vehicle": 0, "stops": [...], "distance": 18.0}], "total_distance":
18.0, "solver_status": "FEASIBLE", "note": "..."}. The matrix is in
your units (km, minutes, cost) and mu params: stops*, matrix*, depot, vehicle_capacity, time_limit_s |
route_plan_fleet | Capacitated, time-windowed routing for a fleet over up to 200 stops. PREMIUM (license).
Typical input {"stops": [{"id": "depot", "window": [480, 1080]},
{"id": "A", "demand": 3, "window": [540, 720], "service_min": 10}, ...],
"matrix": [[...]], "vehicles": [{"id": "van1", "capacity": 10},
{"id": "van2", "capacity": 8, "max_distance": 120}]} returns {"routes":
[{"vehicle": "van1", "stops": [{"id": params: stops*, matrix*, vehicles*, depot, time_matrix, drop_penalty, time_limit_s |
distance_matrix_haversine | Straight-line (great-circle) distance matrix from coordinates. FREE.
Typical input {"points": [{"id": "depot", "lat": 51.5, "lon": -0.12},
{"id": "A", "lat": 51.52, "lon": -0.1}]} returns {"matrix": [[0,
2.6], [2.6, 0]], "unit": "km", "kind": "straight-line (haversine), not
road distance"}. Use when you have no road matrix and a straight-line
approximation is acceptable, or to sanity-check one. N params: points*, unit |
pack_bins | Place up to 20 boxes into containers or pallets with rotation, weight and support rules. FREE.
Typical input {"items": [{"id": "A", "l": 60, "w": 40, "h": 30,
"weight": 12, "qty": 4}], "containers": [{"id": "pallet", "l": 120,
"w": 80, "h": 150, "max_weight": 500, "qty": 2}]} returns
{"containers_used": 1, "containers": [{"placements": [{"id": "A",
"x": 0, "y": 0, "z": 0, "l": 60, "w": 40, "h": 3 params: items*, containers*, rules |
pack_bins_large | Same packer as pack_bins for up to 300 item units and 200 containers. PREMIUM (license).
Typical input {"items": [{"id": "SKU1", "l": 40, "w": 30, "h": 20,
"weight": 5, "qty": 120}, ...], "containers": [{"id": "euro-pallet",
"l": 120, "w": 80, "h": 180, "max_weight": 800, "qty": 10}]} returns
the same shape as pack_bins: containers with placements, fill
percentages, weights and any unplaced units params: items*, containers*, rules |
cutting_stock_1d | Least-waste cut plan for bars, pipes or boards from stock lengths, with saw kerf. FREE.
Typical input {"stock": [{"length": 6000, "cost": 30}], "parts":
[{"length": 2200, "qty": 3}, {"length": 1500, "qty": 4}], "kerf": 3}
returns {"bars": [{"stock_length": 6000, "cuts": [2200, 2200, 1500],
"waste": 94}], "bars_used": 3, "waste_pct": 4.2, "solver_status":
"OPTIMAL"}. Minimises total stock cost (or params: stock*, parts*, kerf, time_limit_s |
cutting_stock_2d | Guillotine cut layouts for rectangular parts from sheets, with kerf and grain. PREMIUM (license).
Typical input {"sheets": [{"id": "ply", "l": 2440, "w": 1220, "qty":
5}], "parts": [{"id": "side", "l": 800, "w": 400, "qty": 6}], "kerf":
3} returns {"sheets_used": 1, "layouts": [{"sheet": "ply", "placements":
[{"id": "side", "x": 0, "y": 0, "l": 800, "w": 400, "rotated": false}],
"fill_pct": 64.5, params: sheets*, parts*, kerf, grain |
roster_shifts | Assign staff to shifts under availability, skills, hour caps and rest gaps. PREMIUM (license).
Typical input {"staff": [{"id": "ana", "skills": ["till"],
"max_hours": 40, "unavailable": ["sat-am"]}, ...], "shifts": [{"id":
"sat-am", "start": "2026-09-12T08:00", "end": "2026-09-12T14:00",
"required": 2, "skill": "till"}, ...], "rules": {"min_rest_hours": 11,
"max_consecutive_days": 6}} returns {"a params: staff*, shifts*, rules, time_limit_s |
knapsack_select | Choose the items that maximise value under one or more capacity limits. FREE.
Typical input {"items": [{"id": "a", "value": 60, "weight": 10, "cost":
120}, {"id": "b", "value": 100, "weight": 20, "cost": 300}], "limits":
{"weight": 25, "cost": 400}} returns {"selected": ["a"], "value": 60,
"used": {"weight": 10, "cost": 120}, "slack": {"weight": 15, "cost":
280}, "solver_status": "OPTIMAL"}. Any params: items*, limits*, time_limit_s |
validate_problem | Check a problem's shape and obvious feasibility before spending solver time. FREE.
Typical input {"type": "route", "problem": {"stops": [...], "matrix":
[[...]], "vehicles": [...]}} returns {"ok": false, "issues": ["total
demand 34 exceeds total capacity 30"], "size": {"stops": 14,
"vehicles": 2}, "tier_hint": "route_plan_fleet (licence) - more than 12
stops"}. Types: route, pack, cut1d, cut2d, r params: type*, problem* |
explain_solution | Plain-language summary of a solution from this server and the constraints that bind. FREE.
Typical input {"solution": <result of route_plan_fleet>} returns
{"summary": "2 vehicles serve 14 stops over 96.4 km; 1 stop unserved",
"binding_constraints": ["van2 is at 100% of capacity", "stop C arrives
at the end of its window"], "status": "FEASIBLE"}. It recognises
results from route_plan, route_plan_ params: solution* |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.