geocodeLABSCO SUMMARY
Every answer carries a confidence score, and an uncertain one comes back empty rather than approximate.
Most geocoders quietly fall back to a city centroid when they cannot place an address, which is exactly the failure that ruins a route an agent has already committed to. Here results report confidence and method, and a lookup that is not sure returns nothing, so the agent can ask again instead of routing from a guess. The freight side is where the specificity shows: ten named vehicle presets set height, weight and length from one argument, individual parameters override them per haul, and the same profiles apply to isochrones as well as directions. quota never debits, so checking what is left of the free 15 requests a day costs you none of them.
What it is
A hosted geospatial MCP server at https://geo.thinair.co/mcp covering geocoding, multi-modal routing, traffic, weather, place search and reachability polygons, built around fleet workflows. Results carry a confidence score and the method behind them, and an uncertain lookup returns an empty result rather than a city-centroid guess.
What you get
- geocode, reverse_geocode and geocode_structured handle free text, coordinates and discrete form or CRM fields; batch_geocode takes up to 50 addresses per call and answers with a GeoJSON FeatureCollection
- resolve_intersection turns a named cross-street pair into a coordinate with its own confidence score
- directions routes auto, truck, bicycle, pedestrian and motorcycle, with ten truck presets — DRY_VAN_53, FLATBED_48, FLATBED_40, STEP_DECK, TANKER, BOX_TRUCK_26, AUTO_CARRIER, SPRINTER_VAN, DOUBLE_TRAILER and OVERSIZE — and individual parameters such as truck_height or axle_count overriding whichever preset you picked
- isochrone draws travel-time or travel-distance reachability polygons with several bands in one call, and distance_matrix returns road distances and times for up to 625 origin-destination pairs
- locate snaps a coordinate to the road network and reports road name, class, speed limit, legality, timezone and elevation; map_match snaps a raw GPS trace of 2 to 100 points to the route actually driven, and trace_attributes returns per-segment names, classes, speed limits and surfaces
- traffic covers real-time conditions across 30+ US metros, and weather returns current conditions and forecasts
- search_places finds nearby POIs by category — gas, charging, food, lodging — explore browses cities, neighborhoods and venues by region, and place_get retrieves one by its stable ta_place_… or ta_intersection_… id
- geofence_contains runs a point-in-polygon test against a GeoJSON polygon; quota reports plan, daily usage and remaining capacity without debiting anything, and issue_api_key mints a fresh key for the tenant
Requirements
Point a client at https://geo.thinair.co/mcp. Claude Desktop, Cursor and Windsurf complete OAuth at first use with nothing to paste; other clients send Authorization: Bearer ta_live_… or ta_trial_…, and a free key from geo.thinair.co/connect allows 15 requests a day with no card. npx -y @thinairtelematics/geo prints a config block for scripts. MIT.
Setup effort
One command — npx -y @thinairtelematics/geo
USE CASES
Turning messy address data into coordinates you can route from
Up to 50 addresses per call, returned as GeoJSON with a confidence score on each, and structured fields when the data comes from a form rather than free text.
Routing a truck that cannot take every road
Pick the vehicle preset that matches the trailer and let height, weight and length come with it; override any single dimension when the load is unusual.
Working out what a depot can reach in 30 minutes
Reachability polygons with several time bands in one call, and a distance matrix when the question is which of many origins serves which destinations.
Reconstructing a trip from raw GPS points
Snap the trace to the roads actually driven, then read the speed limits, road classes and surfaces along the matched route segment by segment.
Placing an address given as a street corner
Resolve a named intersection to a coordinate with a confidence score, instead of hoping a free-text geocoder interprets "5th and Main" the way you meant.
Checking whether a vehicle is inside a service area
A point-in-polygon test against your own GeoJSON boundary, with live traffic and weather for the same area when the answer is about today rather than geometry.
19 tools
Listed in project docs. Your client may show a different list.
reverse_geocodebatch_geocodedirectionsisochronetrafficweathersearch_placesexploregeocode_structuredresolve_intersectiondistance_matrixlocatemap_matchtrace_attributesgeofence_containsplace_getquotaissue_api_keyBEFORE YOU INSTALL
What to know first
Tools you get
19 tools named in the project's documentation.
Requires
A client that can reach a remote MCP server over HTTP
Where it runs
All 3 documented clients connect to a hosted endpoint.
INSTALLATION
Connect your client
Server setup
npx
npx -y @thinairtelematics/geoHosted endpoint
https://geo.thinair.co/mcpAdd this hosted endpoint to your MCP client, then sign in.
MCP Clients
Cursor
{
"mcpServers": {
"thinair-geo": {
"url": "https://geo.thinair.co/mcp"
}
}
}Windsurf
{
"mcpServers": {
"thinair-geo": {
"serverUrl": "https://geo.thinair.co/mcp"
}
}
}Any MCP client — API key
{
"mcpServers": {
"thinair-geo": {
"url": "https://geo.thinair.co/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}