GeoWire is an open-source geospatial intelligence gateway designed to provide AI agents with real-world location intelligence. It sits between AI agents and map/place data providers (such as OpenStreetMap, Google, Yelp, Foursquare, US Census, as well as users' own data), exposing this data through a single MCP server, REST API, CLI, and SDK. Its core features include place search, geocoding, routing and distance matrix, business area analysis (density, ratings, demographics), and support for provider fallback, multi-provider merging and deduplication, cost budgeting, and a policy engine that enforces each provider's caching/attribution terms.
Key capabilities:
- Place search and geocoding: supports searching by name, address, landmark, as well as category-word searches (such as "coffee", "pharmacy").
- Routing and distance matrix: provides keyless route planning and distance calculation via OSRM.
- Isochrones: computes travel-time isochrones, helping agents rank candidate locations by driving time and answer questions such as "what is within a 15-minute drive of a certain address".
- Business area analysis: a single analyze_area call can turn a point + radius into a business-area interpretation, including category density, competition, ratings landscape, and (US) demographic data.
- Multi-provider merging and deduplication: merges your own store data, Google, OSM, etc. into a single deduplicated record, and labels the source of each field (e.g., name from your own data, rating from Google, coordinates from OSM).
- Policy engine: enforces each provider's caching and attribution terms, for example, Google raw data is not cached.
How to use:
- MCP: add GeoWire to the MCP client configuration in Claude Desktop or Cursor, and it can be used within 30 seconds. No API key is required; by default it uses OpenStreetMap and OSRM routing. You can add GOOGLE_MAPS_API_KEY, YELP_API_KEY, or CENSUS_API_KEY to get ratings, reviews, opening hours, and demographic data.
- CLI: supports one-off searches and server mode; adding --json to any command returns the full response (results + source metadata).
- Docker: you can self-host the server, or use docker compose up; API documentation is located at /docs.
- SDK: supports embedded use, with a TypeScript SDK guide provided.
- REST API: all features can be called via REST, with optional Bearer authentication (set GEOWIRE_API_KEYS).
Use cases:
- AI agents need real-world location intelligence, such as finding places, planning routes, and analyzing business areas.
- Applications that need to merge data from multiple map providers and track field provenance.
- Geospatial data integration that requires cost control and policy compliance.
- Supports regional providers such as South Korea (Kakao/Naver) and China (Baidu); Baidu returns BD-09 coordinates, and GeoWire automatically converts them to WGS84.
Limitations and notes:
- OpenStreetMap, as the zero-key default provider, performs well for place names, addresses, and landmarks, but is weak for category words, ratings, and opening hours.
- For US/Western business data, it is recommended to add Google, Yelp, or Foursquare keys (BYOK).
- Routing runs keylessly via OSRM; US demographic data comes from Census (free key).
- Version v0.1 is a "usable" scope, and some features may not yet be included.
- The code uses the Apache-2.0 license, but the use of third-party map/place data providers is subject to their respective terms. OSM data uses the ODbL license.
- Reviews/photos are providers' original content, and the policy engine enforces each provider's storage terms.
GeoWire has been published on npm; MCP, REST, CLI, and SDK are all available, supporting 10 providers and 8 operations.