Skip to main content
Glama
dinesh7wd

mcp-server-geo-optimizer

by dinesh7wd

Distance matrix

distance_matrix
Read-onlyIdempotent

Compute distances in km and travel times in minutes from multiple origins to destinations, up to 2500 pairs, via straight-line or OSRM road routing.

Instructions

Compute distances (km) and travel times (minutes) from each origin (rows) to each destination (columns). At most 2500 cells per request. haversine is local; osrm calls the configured OSRM server.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNohaversine = straight-line km with minutes at averageSpeedKmh; osrm = road km/minutes from the OSRM serverhaversine
originsYesOrigin locations (1-100). origins x destinations must not exceed 2500 cells
destinationsNoDestination locations (1-100). Omit for an origins x origins matrix
averageSpeedKmhNoSpeed in km/h for haversine durations. Defaults to HAVERSINE_SPEED_KMH (40)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the bar is lower. The description usefully adds the cell cap and the key behavioral distinction that haversine is computed locally while osrm depends on a configured external server, which explains the openWorldHint and implies latency/availability differences.

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, zero padding. The output shape (rows/columns, units) is front-loaded, followed by the constraint and the mode distinction.

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?

With no output schema, the description carries the return-value burden and does so by naming units (km, minutes) and matrix orientation. It stops short of describing the response structure/ordering or error behavior for oversized requests, but is otherwise sufficient.

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 mode, origins, destinations, and averageSpeedKmh are all fully documented in the schema itself. The description only restates the mode semantics and cell cap, adding no syntax or format detail beyond the structured fields, so baseline 3 applies.

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 ('compute distances and travel times') plus the exact matrix orientation (origins = rows, destinations = columns). This clearly distinguishes it from siblings like geocode, optimize_route, and cluster_points.

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?

Mentions the 2500-cell cap and contrasts haversine (local) with osrm (network call), which hints at when each mode applies. However, it never states when to choose this tool over optimize_route or when to omit destinations, leaving usage largely implied.

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