# ThinAirTelematics/thinair-geo [Health: Active]

**Category:** 🗺️ Location Services  
**Repository:** https://github.com/ThinAirTelematics/thinair-geo  
**GitHub Stars:** 1  
**npm Downloads (last month):** 179  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/thinairtelematics-thinair-geo

## Description
Location & routing intelligence for AI agents — geocoding, truck routing with hazmat/dimension constraints, traffic, weather, isochrones, place search. Full planet coverage. Hosted MCP server with OAuth 2.0 + Bearer auth.

## Tools
Capabilities this server exposes over MCP:

- **geocode** — Convert addresses, place names, or intersections to coordinates
- **reverse_geocode** — Convert coordinates to addresses
- **batch_geocode** — Geocode up to 50 addresses in one call (returns `geojson` FeatureCollection)
- **directions** — Turn-by-turn routing — auto, truck, bicycle, pedestrian, motorcycle
- **isochrone** — Travel-time / -distance reachability polygons (multi-band)
- **traffic** — Real-time traffic conditions
- **weather** — Current conditions and forecasts
- **search_places** — Find nearby POIs by category (gas, charging, food, lodging, …)
- **explore** — Browse cities, neighborhoods, and venues by region
- **geocode_structured** — Geocode from discrete address components (form / CRM fields) instead of free text
- **resolve_intersection** — Resolve a named cross-street (street1 × street2) to a coordinate with a confidence score
- **distance_matrix** — Road distances + travel times for every origin → destination pair (≤ 625 pairs)
- **locate** — Snap a coordinate to the road network — road name, class, speed limit, legality, timezone, point elevation
- **map_match** — Snap a raw GPS trace (2–100 points) to the road-accurate route actually driven
- **trace_attributes** — Per-segment road attributes (names, classes, speed limits, surfaces) along a matched trace
- **geofence_contains** — Point-in-polygon test against a GeoJSON polygon (one boolean per point)
- **place_get** — Look up a place by its stable ThinAir id (`ta_place_…` / `ta_intersection_…`)
- **quota** — Inspect your current plan, daily usage, and remaining capacity (free, never debits)
- **issue_api_key** — Mint a fresh API key for the current tenant (counts as 1 query)

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "thinair-geo": {
    "command": "npx",
    "args": ["-y","@thinairtelematics/geo"]
  }
}
```

## Documentation & README

# ThinAir Geo MCP Server

**Give your AI agent complete geospatial awareness** — geocode addresses and intersections, route across multiple modes (auto, truck, bicycle, pedestrian), check live traffic and weather, draw reachability polygons, and search places. Confidence-scored results so your agent knows when to ask again. 19 tools via MCP.

**19 MCP tools** · Geocoding, routing, traffic, weather, places · Built for fleet-grade workflows

[![npm version](https://img.shields.io/npm/v/@thinairtelematics/geo)](https://www.npmjs.com/package/@thinairtelematics/geo)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![smithery badge](https://smithery.ai/badge/thinair/geo)](https://smithery.ai/servers/thinair/geo)

```console
> geocode "Port of Houston Bayport Terminal"
✓ matched: Bayport Container Terminal
✓ confidence: 0.97
✓ coordinates: 29.6008, -95.0201
```

## Part of ThinAir

ThinAir Geo is the geospatial intelligence layer behind ThinAir fleet workflows: geocoding, routing context, address search, service-area visibility, map intelligence, traffic, weather, and reachability.

## Hosted product vs this repository

- `geo.thinair.co` is the hosted ThinAir product.
- This repository is the thin public MCP package/pointer for developers and AI-agent clients.
- Production use may require a ThinAir account, API key, OAuth connection, or hosted workspace.

## What It Does

ThinAir Geo is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that gives AI agents full-stack geospatial tooling — no API integration required. Coordinates you can actually route from: intersection-level precision with confidence scores, no silent fallbacks (returns an empty result instead of a city-centroid guess when uncertain).

- **Geocoding** — Forward, reverse, intersection, and batch (50/call). Results include `confidence` and `method` so agents can branch on quality.
- **Routing** — Multi-profile: auto, truck, bicycle, pedestrian, motorcycle. 10 truck-specific presets (dry van, flatbed, step-deck, tanker, box truck, auto-carrier, sprinter, double trailer, oversize) with hazmat / dimensions / weight / time-distance constraints native.
- **Traffic** — Real-time conditions for 30+ US metros.
- **Weather** — Current conditions and forecasts.
- **Place Search & Explore** — Nearby POIs, locality discovery with population filtering.
- **Isochrones** — Drive-time / walk-time reachability polygons (multiple bands per call).

## Product Links

- **Product:** https://geo.thinair.co
- **Connect / get key:** https://geo.thinair.co/connect
- **Docs:** https://geo.thinair.co/docs/getting-started
- **Pricing:** https://geo.thinair.co/checkout
- **ThinAir:** https://thinair.co

## Tools

| Tool | Description |
|------|-------------|
| `geocode` | Convert addresses, place names, or intersections to coordinates |
| `reverse_geocode` | Convert coordinates to addresses |
| `batch_geocode` | Geocode up to 50 addresses in one call (returns `geojson` FeatureCollection) |
| `directions` | Turn-by-turn routing — auto, truck, bicycle, pedestrian, motorcycle |
| `isochrone` | Travel-time / -distance reachability polygons (multi-band) |
| `traffic` | Real-time traffic conditions |
| `weather` | Current conditions and forecasts |
| `search_places` | Find nearby POIs by category (gas, charging, food, lodging, …) |
| `explore` | Browse cities, neighborhoods, and venues by region |
| `geocode_structured` | Geocode from discrete address components (form / CRM fields) instead of free text |
| `resolve_intersection` | Resolve a named cross-street (street1 × street2) to a coordinate with a confidence score |
| `distance_matrix` | Road distances + travel times for every origin → destination pair (≤ 625 pairs) |
| `locate` | Snap a coordinate to the road network — road name, class, speed limit, legality, timezone, point elevation |
| `map_match` | Snap a raw GPS trace (2–100 points) to the road-accurate route actually driven |
| `trace_attributes` | Per-segment road attributes (names, classes, speed limits, surfaces) along a matched trace |
| `geofence_contains` | Point-in-polygon test against a GeoJSON polygon (one boolean per point) |
| `place_get` | Look up a place by its stable ThinAir id (`ta_place_…` / `ta_intersection_…`) |
| `quota` | Inspect your current plan, daily usage, and remaining capacity (free, never debits) |
| `issue_api_key` | Mint a fresh API key for the current tenant (counts as 1 query) |

## Truck Vehicle Profiles

Pass any of these as `vehicle_profile` on `directions` or `isochrone` to set dimensions automatically:

| Profile | Dimensions / Use case |
|---------|------------------------|
| `DRY_VAN_53` | 53′ dry van — standard US freight (default) |
| `FLATBED_48` | 48′ flatbed, loaded height 14′ |
| `FLATBED_40` | 40′ flatbed, regional / specialty |
| `STEP_DECK` | Step-deck / drop-deck, 11′3″ upper-deck clearance |
| `TANKER` | Liquid/gas tanker (pair with `hazmat=true`) |
| `BOX_TRUCK_26` | 26′ box truck, local delivery |
| `AUTO_CARRIER` | Car hauler / auto transport |
| `SPRINTER_VAN` | Cargo van, last-mile (9′ tall) |
| `DOUBLE_TRAILER` | Twin 28′ pups, LTL long-haul (92′ total) |
| `OVERSIZE` | Permitted oversize loads — override dimensions per haul |

Individual params (`truck_height`, `truck_weight`, `truck_length`, `axle_count`, etc.) override the preset.

## Quick Start

### Claude Desktop, Cursor, Windsurf — OAuth (recommended, keyless)

Add to your client's MCP config (e.g. `~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "thinair-geo": {
      "url": "https://geo.thinair.co/mcp"
    }
  }
}
```

The OAuth flow completes at first use — no manual token setup required. Free tier: 15 requests/day, no card.

### API key (for non-OAuth clients)

```json
{
  "mcpServers": {
    "thinair-geo": {
      "url": "https://geo.thinair.co/mcp",
      "headers": {
        "Authorization": "Bearer ta_live_..."
      }
    }
  }
}
```

Get a key at https://geo.thinair.co/connect.

### npx (CLI / scripts)

```bash
npx -y @thinairtelematics/geo
```

Prints a config block to stdout for your client. Same OAuth-keyless option as above by default.

## Not for secrets

Do not commit API keys. Use OAuth where supported or pass API keys through your MCP client's secure environment/header configuration.

## npm Package

[npmjs.com/package/@thinairtelematics/geo](https://www.npmjs.com/package/@thinairtelematics/geo)

> Previously published as `thinair-geo` (now deprecated in favor of the scoped package).

## License

MIT © [ThinAir Telematics](https://thinair.co)

