Skip to main content
Glama

Fleet Route Optimizer

Server Details

Splits deliveries across vehicles and orders each route: time windows, capacities, road times. Free.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation4/5

optimize_routes, get_route_result, list_route_examples, and get_route_example are mostly distinct. The only real risk is confusing get_route_example with list_route_examples, since the names differ by a single verb, but the descriptions clearly separate 'fetch one full input' from 'list all example names'.

Naming Consistency5/5

All four tools use clean snake_case with a verb prefix (get_, list_, optimize_) followed by a noun. The pattern is predictable and internally consistent.

Tool Count4/5

Four tools is a tight, well-scoped set for a route optimizer: one core solver plus example discovery and async result polling. It sits at the lean end but each tool clearly earns its place.

Completeness4/5

The solve lifecycle is covered: discover/list examples, fetch a full example, run optimize_routes, and poll results via get_route_result. Minor gaps like job cancellation or listing/cleaning past jobs exist, but core workflows are fully supported.

Available Tools

4 tools
get_route_exampleGet an example routing inputA
Read-only
Inspect

Return the full input of one example, in exactly the shape optimize_routes accepts. Edit it (depot, stops, vehicles, windows) to match the user's situation.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoes = Spanish labels.
nameYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely non-redundant behavior: the returned payload is exactly the shape optimize_routes accepts, which tells the agent the output is directly reusable.

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?

Two tight sentences with the output contract front-loaded and the usage instruction second. Nothing is padded or redundant.

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

Completeness4/5

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

No output schema exists, but the description characterizes the return value well enough for downstream use. The remaining gap is that it never tells the agent where valid 'name' values come from, even though list_route_examples is a sibling.

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 coverage is 50%: lang is documented in the schema, but 'name' carries no description anywhere. The parenthetical (depot, stops, vehicles, windows) describes fields of the returned example, not the input parameters, so it doesn't close the gap on what 'name' accepts or where valid values come from.

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?

States a specific verb and resource ('return the full input of one example') and pins the output contract to the sibling optimize_routes. This cleanly distinguishes it from get_route_result (results, not inputs) and list_route_examples (many, not one).

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

Usage Guidelines4/5

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

Gives a clear workflow: fetch the example, then edit depot/stops/vehicles/windows for the user's situation, implying the example feeds optimize_routes. It stops short of explicit when-not-to-use guidance or a pointer to list_route_examples for discovering valid names.

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

get_route_resultGet a route resultA
Read-only
Inspect

Fetch the result of an optimize_routes job that returned status 'running'. Waits up to wait_seconds; call again while status is 'running'. Jobs expire 15 minutes after they finish.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
wait_secondsNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive), so the description's added value is the polling semantics and the 15-minute post-completion expiry — genuinely useful operational context the agent cannot infer from annotations. It stops short of disclosing error/intermediate states or what a completed result contains.

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

Conciseness4/5

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

Three short sentences, front-loaded with the resource and follow-up with the polling and expiry rules; no filler. The opening phrasing ('a job that returned status running') is slightly awkward but does not waste words.

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

Completeness3/5

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

With no output schema, the description never says what the fetched result contains (route geometry, legs, status field), which an agent needs to use the return value. Polling and expiry are covered, but the return payload is a real gap for a 2-parameter async-result tool.

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 coverage is 0%, so the description must carry parameter meaning. It explains that wait_seconds bounds the wait ('Waits up to wait_seconds') but omits the 0–45 constraint, and job_id is only implied by the phrase 'an optimize_routes job'. Partial compensation for a zero-coverage schema.

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 names a specific verb ('Fetch') and resource ('the result of an optimize_routes job') and ties the tool to its sibling optimize_routes, making the async-job relationship explicit. An agent can distinguish this from get_route_example/list_route_examples without opening any schema.

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

Usage Guidelines4/5

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

It gives a clear usage pattern: call while status is 'running', wait up to wait_seconds, then call again. It does not, however, state when to prefer this over the sibling example tools or what to do once the job finishes, so an explicit exclusion is missing.

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

list_route_examplesList example routing problemsA
Read-only
Inspect

List the built-in example routing problems. Use one to see a realistic input, or solve it as-is to show what the tool does.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the agent knows it is a safe, closed-world read. The description adds that the problems are 'built-in' (not user-created), which is modestly useful, but there is no disclosure of return shape or count.

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?

Two sentences, no filler, and the core action ('list the built-in example routing problems') is front-loaded before the usage hint. Every sentence earns its place.

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

Completeness4/5

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

For a zero-parameter, zero-dependency listing tool with annotations covering the safety profile and no output schema to explain, this is nearly complete. The only minor gap is that an agent does not know what fields each listed example carries.

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

Parameters4/5

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

The tool takes no parameters, so per the rubric the baseline is 4. There are no argument names or formats an agent could misinterpret.

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

Purpose4/5

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

States a specific verb and resource: 'List the built-in example routing problems.' This is clearly distinguishable from the singular get_route_example sibling, though the distinction is left implicit rather than stated.

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 second sentence gives an implied workflow ('use one to see a realistic input, or solve it as-is'), which hints at how it pairs with the solve/get tools. However, it never names get_route_example as the alternative or states when this list is preferable to just fetching a known example.

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

optimize_routesOptimize delivery routesA
Read-only
Inspect

Plan routes for one or more vehicles from one depot and return, per vehicle, the stop order with arrival times and load so far, plus stops that could not be served, totals, Google Maps links and warnings. Uses real road driving times. Solves take 10-60 s (more when many addresses must be looked up). Pass either example or the fields below. If the result has status 'running', call get_route_result with its job_id. Minimal example: {"depot": {"address": "1600 Pennsylvania Ave NW, Washington, DC 20500"}, "stops": [{"id": "Ana", "address": "..."}, {"id": "Bob", "lat": 38.9, "lon": -77.03, "window_open": "09:00", "window_close": "12:00", "service_minutes": 10}], "vehicles": 2}. Omitted: capacity = unlimited, no time windows, 1 vehicle, stops are dropped only when they cannot be served at all. Call get_route_example for complete, realistic inputs.

ParametersJSON Schema
NameRequiredDescriptionDefault
depotNoWhere every vehicle starts and ends. Needs an address or lat+lon.
stopsNoThe places to visit (not the depot). Each needs an address or lat+lon.
countryNoWhich geocoder reads the addresses: US (US Census, then OpenStreetMap) or OTHER (OpenStreetMap). Default US.
exampleNoSolve this built-in example instead of passing the fields below.
vehiclesNoEither a number of identical vehicles (unlimited capacity), or one object per vehicle.
parametersNoOptional engine settings: SearchParametersTimeLimit (seconds, default 30, max 60), NoImprovementSeconds (20), RouteTimeLimit (minutes, default 1440), DroppedOrderCost (100000 = serve every stop that can be served), MinuteCost (1), LatePenaltyPerMinute (0 = windows are hard), MaxWaitMinutes (1440), MinimumDriveTime (5).
wait_secondsNoHow long to wait for the solve inside this call (default 25).
previous_routesNoRe-optimize from existing routes: one list of stop ids (or 1-based stop numbers) per vehicle, in visiting order. The solver starts from these and improves them; new stops are fitted in.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark this readOnly/non-destructive/openWorld, and the description adds substantial context beyond that: solves take 10-60s and longer with many geocodes, real road driving times are used, and the defaults for omitted fields (unlimited capacity, no time windows, 1 vehicle, drop-only-when-unservable) are spelled out. The async 'running' status contract is disclosed, which annotations cannot convey.

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

Conciseness4/5

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

Front-loaded with the output contract and solve-time expectations, then defaults, then the async fallback. The embedded JSON example is dense but earns its place by demonstrating the required nesting; the sentence count is proportionate to an 8-parameter nested schema.

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?

There is no output schema, so the description carries the return-value burden and does so fully: stop order, arrival times, load so far, unserved stops, totals, Maps links, warnings. Combined with solve-time and async guidance, an agent has everything needed to call and interpret this tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description goes further by summarizing the defaults applied when fields are omitted and by supplying a minimal worked example that shows the nesting of depot/stops/vehicles. It does not explain the more advanced knobs (capacity2/3, previous_routes, parameters), so it stops short of a 5.

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 concrete verb and resource ('Plan routes for one or more vehicles from one depot') and specifies the output shape per vehicle, so the agent knows exactly what the tool produces. It is clearly distinguishable from the sibling helpers get_route_example and get_route_result.

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

Usage Guidelines5/5

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

Explicit routing logic is given: pass either `example` or the fields below, call get_route_example for complete realistic inputs, and if the result has status 'running' call get_route_result with its job_id. The async handoff and the alternative-sourcing paths are both named, leaving nothing to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • First observedget_route_example
    • First observedget_route_result
    • First observedlist_route_examples
    • First observedoptimize_routes

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Route optimization API for Brazil with tools for geocoding, distance matrices, isochrones, and advanced vehicle routing, supporting constraints like time windows, skills, and multi-profile fleets.
    65 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to submit asynchronous last-mile fleet optimizations that assign stops to vehicles and sequence routes from a depot, then retrieve status, summaries, ordered stop sequences, or unassigned ids. Supports hundreds to thousands of stops with optional weight, volume and time-window constraints, with results retained for 24 hours.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    AI-powered route optimization MCP server for heavy vehicles and logistics. Calculate truck-optimized routes, predict traffic congestion with LSTM neural networks, compute toll costs, fuel costs and CO2 emissions, find truck stops and check weather along any European route.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources