# io.github.geowire/geowire (npm · @geowirehq/mcp)

Place search, directions, isochrones & area analysis across 10 map providers. No API key to start.

- Trust score: 61/100 (medium)
- Change this week: +39
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@geowirehq/mcp`: 61/100 (this document), [markdown](https://verifymcp.io/servers/geowire-geowire/geowirehq-mcp.md), [page](https://verifymcp.io/servers/geowire-geowire/geowirehq-mcp)

## Channel facts

- Registry: `npm`
- Package: `@geowirehq/mcp`
- Version: `0.6.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 89/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (108 of 112), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (108 of 112), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 7 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1465 tokens (~146/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 67/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add geowire-geowire -- npx -y @geowirehq/mcp
```

### Codex

```bash
codex mcp add geowire-geowire -- npx -y @geowirehq/mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "geowire-geowire": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@geowirehq/mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add geowire-geowire --command npx --arg -y --arg @geowirehq/mcp
```

### Hermes

```yaml
mcp_servers:
  geowire-geowire:
    command: "npx"
    args: ["-y", "@geowirehq/mcp"]
```

### Other

```json
{
  "mcpServers": {
    "geowire-geowire": {
      "command": "npx",
      "args": [
        "-y",
        "@geowirehq/mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 61, +7)

- [security regression] Provenance: fail → unverified
- [security regression] Install scripts: pass → unverified
- [security improvement] Known CVEs: unverified → partial
- [functional regression] Maintenance: pass → unverified
- [functional regression] License: pass → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: Apache-2.0

### 2026-08-01 (score 54, −10)

- [security regression] Known CVEs: partial → unverified
- [functional regression] Dependency health: partial → unverified

### 2026-07-31 (score 64, +58)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −49)

- [security regression] Known CVEs: partial → unverified
- [security regression] Provenance: fail → unverified
- [security regression] Install scripts: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] License: pass → unverified
- [functional regression] Dependency health: partial → unverified
- [functional regression] Maintenance: pass → unverified
- [functional] Licence: Apache-2.0

### 2026-07-29 (score 55, +47)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: Apache-2.0

### 2026-07-28 (score 8, −14)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 22)

First indexed and scored.

## MCP tools (10)

### `search_places` (~197 tokens)

Search for places (businesses, points of interest, landmarks) by a natural-language query, optionally biased to a coordinate (`near`) and/or restricted to a country. Returns places ranked by relevance/distance, each with location, address, contact, opening hours, and its data source(s). Use this for 'find X near Y' requests. Example: {"query": "24-hour pharmacy", "near": {"latitude": 10.7769, "longitude": 106.7009}, "radiusMeters": 2000}. To turn an address into coordinates use geocode_address instead; to look up one known place use get_place.

Input parameters:

- `categories` (array)
- `country` (string)
- `limit` (integer)
- `near` (object)
- `openNow` (boolean)
- `options` (object)
- `query` (string, required)
- `radiusMeters` (number)

### `get_place` (~169 tokens)

Fetch full details for a single place by its provider reference id, in the form 'provider:providerPlaceId' (e.g. 'google:ChIJN1t_tDeuEmsRUsoyG83frY4'), as found in a place's `sources`. Only providers that support getPlace can resolve a reference — currently Google (needs an API key). OpenStreetMap/Nominatim does not, so a 'nominatim:...' reference returns nothing; use search_places or geocode_address for OSM instead. Internal 'gwp_' ids cannot be resolved directly. Example: {"id": "google:ChIJN1t_tDeuEmsRUsoyG83frY4"}.

Input parameters:

- `id` (string, required)
- `options` (object)

### `geocode_address` (~97 tokens)

Convert a street address or place name into geographic coordinates and a normalized address. Use this when you have an address string and need latitude/longitude. Example: {"address": "1600 Amphitheatre Parkway, Mountain View, CA"}. To search for businesses by name/category, use search_places.

Input parameters:

- `address` (string, required)
- `country` (string)
- `limit` (integer)
- `options` (object)

### `reverse_geocode` (~57 tokens)

Convert geographic coordinates into the nearest address / place. Example: {"location": {"latitude": 37.5665, "longitude": 126.9780}}.

Input parameters:

- `location` (object, required)
- `options` (object)

### `get_directions` (~198 tokens)

Get a route (driving directions) between two or more waypoints, with total distance, travel time, and per-leg breakdown. Works with no API key (OpenStreetMap routing via OSRM). Use this for 'how do I get from A to B', 'how far by car', or 'how long to drive' questions. Waypoints are {latitude, longitude} in order (start, [via...], end). Example: {"waypoints": [{"latitude": 37.5665, "longitude": 126.9780}, {"latitude": 37.4979, "longitude": 127.0276}]}. Set geometry:true to also get the route polyline. Note: the public OSRM server supports driving only.

Input parameters:

- `alternatives` (boolean)
- `geometry` (boolean)
- `mode` (string)
- `options` (object)
- `waypoints` (array, required)

### `distance_matrix` (~179 tokens)

Compute a matrix of travel distances and times from each origin to each destination (N origins × M destinations) in one call. No API key needed. Use this to rank/compare many candidates by drive time — e.g. 'which of these 5 stores is closest to the customer' or delivery/logistics assignment. Example: {"origins": [{"latitude": 37.57, "longitude": 126.98}], "destinations": [{"latitude": 37.49, "longitude": 127.02}, {"latitude": 37.51, "longitude": 127.05}]}. rows[i][j] is origins[i] → destinations[j]. Public OSRM supports driving only.

Input parameters:

- `destinations` (array, required)
- `mode` (string)
- `options` (object)
- `origins` (array, required)

### `analyze_area` (~200 tokens)

Analyze a commercial area / neighborhood: given a center point, radius, and business types, return how many of each exist nearby, their density (per km²), rating landscape, and top places. Use this for market/competition questions — 'how saturated is coffee here', 'is this a good spot for a bakery', 'what's the dining scene within 1km'. Example: {"center": {"latitude": 37.4979, "longitude": 127.0276}, "radiusMeters": 1000, "categories": ["cafe", "restaurant", "convenience store"]}. Works with any configured providers; richer with Google/Foursquare (ratings). Not demographic data — it's a place-density/competition view built from live search.

Input parameters:

- `categories` (array, required)
- `center` (object, required)
- `limitPerCategory` (integer)
- `options` (object)
- `radiusMeters` (number, required)

### `get_demographics` (~122 tokens)

Get demographics (population, median age, median household income, households) for the area containing a coordinate. Use this for market context — 'who lives around here', income/age of an area. Requires a demographics provider: US Census (free key, US only). Returns null outside coverage. Example: {"location": {"latitude": 37.7749, "longitude": -122.4194}}. For a full commercial picture combine with analyze_area, which folds this in automatically.

Input parameters:

- `location` (object, required)
- `options` (object)

### `get_isochrone` (~185 tokens)

Compute a travel-time reachability area (isochrone): from an origin, the region reachable within N minutes of driving/walking/cycling, as a GeoJSON polygon + area in km². No API key (OpenStreetMap routing). Use for site selection / catchment questions — 'what's within a 15-minute drive', 'how big is this store's 10-min catchment'. Example: {"origin": {"latitude": 37.7749, "longitude": -122.4194}, "minutes": 15, "mode": "driving"}. It's an approximation (sampled bearings scored by a distance matrix), not a routing-engine isochrone.

Input parameters:

- `bearings` (integer)
- `minutes` (number, required)
- `mode` (string)
- `options` (object)
- `origin` (object, required)

### `list_geo_providers` (~61 tokens)

List the geo data providers currently configured, with their capabilities, enabled state, priority, and required attribution. Use this to understand which data sources are available (e.g. whether Google is configured) before choosing a strategy or explaining coverage. Takes no arguments.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/geowire-geowire/geowirehq-mcp#diagnostics

## Score history

- 2026-08-03: 61
- 2026-08-02: 61
- 2026-08-01: 54
- 2026-07-31: 64
- 2026-07-30: 6
- 2026-07-29: 55
- 2026-07-28: 8
- 2026-07-27: 22

## Links

- npm package: https://www.npmjs.com/package/@geowirehq/mcp
- Socket report: https://socket.dev/npm/package/@geowirehq/mcp
- Repository: https://github.com/geowire/geowire
- Changelog RSS feed: https://verifymcp.io/servers/geowire-geowire/geowirehq-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/geowire-geowire/geowirehq-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/geowire-geowire/geowirehq-mcp
