Skip to main content
Glama
dinesh7wd

mcp-server-geo-optimizer

by dinesh7wd

Optimize route

optimize_route
Read-onlyIdempotent

Compute optimized stop order for one or more vehicles, respecting capacity and time windows, and return per-vehicle routes with arrival, wait, departure, distance, and unassigned stops.

Instructions

Order stops for one or more vehicles (TSP/VRP) starting at waypoints[startIndex], with optional capacity and time windows in minutes after route start. Returns per-vehicle stop order (waypoint indices) with arrival/wait/departure minutes, distance in km, time-window violations and unassigned stops. Uses straight-line distances unless useOsrm is true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
closedNotrue = every vehicle returns to the depot; false = routes end at their last stop
useOsrmNoUse OSRM road distances and durations instead of straight-line estimates (network call)
capacityNoPer-vehicle capacity in the same unit as waypoint demand. Omit for unlimited
waypointsYesStops including the depot at startIndex (2-200). With useOsrm the limit is OSRM_MAX_TABLE_SIZE (default 100)
startIndexNoIndex in waypoints of the depot where every route starts; must be less than waypoints.length
vehicleCountNoNumber of vehicles. Stops are split into balanced angular sectors around the depot
averageSpeedKmhNoAverage speed in km/h used for travel times when useOsrm is false

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false, so the safety profile is covered. The description adds behavioral context beyond annotations: it names the algorithm class (TSP/VRP), explains the distance model ('straight-line distances unless useOsrm is true'), and describes return contents including violations and unassigned stops.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences are tightly packed with useful information and front-loaded with the core operation. Each sentence earns its place: the first states purpose and constraints, the second enumerates return values, and the third clarifies the distance model.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although there is no output schema, the description explicitly enumerates the return fields: per-vehicle stop order, arrival/wait/departure minutes, distance in km, time-window violations, and unassigned stops. Combined with a fully described input schema and annotations covering safety, the definition gives an agent enough to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description synthesizes some parameter relationships, such as starting at waypoints[startIndex] and time windows being in minutes after route start, but it does not add significant syntax or format detail beyond what the schema already provides for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Order stops for one or more vehicles (TSP/VRP) starting at waypoints[startIndex]', which clearly identifies route optimization rather than geocoding, distance calculation, clustering, or other sibling functions. It also specifies the algorithm domain and starting constraint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when the tool is useful by mentioning optional capacity and time windows, but it does not explicitly state when to choose this over alternatives such as distance_matrix or cluster_points, nor does it provide when-not-to-use guidance. Usage is therefore inferred rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.