A side-by-side look at the Routekit and Tomtom MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Routekit for location services work as a local process; choose Tomtom for location services as a local process. You can also run both side by side in one mcpServers block.
ROUTEKIT_API_KEY.calculate_route, distance_matrix, snap_to_road.geocode, search_poi, reverse_geocode.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Location Services | Location Services |
| Quality signal | 48/100 · Fair | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | ROUTEKIT_API_KEY | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 0 |
| Directory activity | 0 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 12 | 4 |
| Full listing | View Routekit | View Tomtom |
calculate_route- Driving route between points with real road distances and ETAs. Supports waypoints, encoded polyline geometry, turn-by-turn steps, and up to 3 alternative routes.distance_matrix- NxN distance/duration matrix between up to 5000 locations (transparently chunked for large sets, cached for repeated queries).snap_to_road- Snap a raw GPS coordinate to the nearest road segment. Returns the snapped point, distance from the original, and road name.isochrone- Area reachable from a point within N minutes by car. Returns a GeoJSON Polygon useful for coverage analysis, depot placement, and service area definition.geocode- Convert a Brazilian address or place name to latitude/longitude. Restricted to Brazil, in-house geocoder with no third-party dependency. Built-in fuzzy fallback handles abbreviations ("Av" -> "Avenida"), accents, and token drops.geocode_batch- Geocode up to 50 addresses in a single call with parallel execution. Perfect for delivery manifests or client lists.reverse_geocode- Convert lat/lon to a human-readable Brazilian address with components (road, neighborhood, city, state, postcode).compare_routes- Run `optimize_routes` under multiple balance strategies (minimize_vehicles, balance_tasks, minimize_distance) and return a side-by-side comparison with winners per metric.validate_eta- Simulate a pre-defined route in Python and return the real arrival times plus any constraint violations. Use when you already have a fixed order of stops and just need the ETAs.optimize_routes- Advanced VRP solver:balance_mode`minimize_vehicles` (default), `balance_tasks`, or `minimize_distance`matrix_overridesuser-provided per-pair travel time / distance overrides (for toll routes, restricted zones, known detours)geocodeGeocoding: convert an address, place name, or free-text location query into geographic coordinates (latitude/longitude). Returns formatted address, country, lat, lon, type, and match score. Example: geocode({ query: "350 5th Ave, New York" })search_poiSearch for points of interest (POIs) — businesses, landmarks, restaurants, gas stations, etc. — by name or category, optionally near a lat/lon center within a radius. Returns name, category, address, coordinates, phone, url, and distance. Example: search_poi({ query: "coffee", lat: 40.748, lon: -73.985, radius: 1000 })reverse_geocodeReverse geocoding: convert latitude/longitude coordinates into a human-readable street address. Returns the freeform address, country, municipality, street name, postal code, and position. Example: reverse_geocode({ lat: 40.748, lon: -73.985 })routeTraffic-aware routing / directions: calculate the best route between two points and return distance plus travel time computed with live traffic. Reports traffic delay so you get realistic ETAs, not free-flow estimates. Supports car, truck, pedestrian, and bicycle travel modes. Example: route({ from_lat: 40.748, from_lon: -73.985, to_lat: 40.689, to_lon: -74.044 })Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"routekit": {
"command": "npx",
"args": [
"-y",
"routekit-mcp"
],
"env": {
"ROUTEKIT_API_KEY": "YOUR_ROUTEKIT_API_KEY_HERE"
}
}
}
}
{
"mcpServers": {
"tomtom": {
"command": "npx",
"args": [
"-y",
"@pipeworx/mcp-tomtom"
]
}
}
}