About streetmap-port
streetmap-port is a CLI and stdio MCP server for working with OpenStreetMap geography. It handles geocoding, place discovery, object details, and local great-circle distance calculations.
Key features
- 01Forward and reverse geocoding
- 02Search places by name
- 03Find nearby places by category
- 04Look up OSM object details
- 05Calculate local great-circle distances
Use cases
- 01Convert a place name to coordinates
- 02Find nearby places around a point
- 03Retrieve an address from coordinates
- 04Calculate distance between two locations
MCP support
Exposes six MCP tools for geocoding, place search, nearby search, OSM object lookup, and distance calculation. Geocoding and lookup use Nominatim; nearby search uses Overpass.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @reneturcios/streetmap-portLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
6Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Optional maximum number of geocoding results to return; defaults to 5 and is clamped to 1-50. |
| query | string | Yes | Free-form address or place name to geocode to coordinates. |
Details
From the project READMEstreetmap-port
OpenStreetMap geography as a CLI and a stdio MCP server in one bin: geocode a name to coordinates, reverse geocode coordinates to an address, search places, look up an OSM object by type and id, find places of a category near a point, and compute great-circle distances locally.
Geocoding, reverse geocoding and lookup use the public Nominatim
API (with the descriptive User-Agent its usage policy requires);
nearby search uses the public Overpass API. All requests go through
an injectable fetch function, coordinates are validated before any
request is built, and API error payloads are surfaced as errors —
never replaced with invented places. distance_between is a pure
local haversine computation and makes no API call.
Install
npx -y @reneturcios/streetmap-port mcp
CLI
streetmap-port mcp
streetmap-port geocode <query...>
streetmap-port reverse <lat> <lon>
streetmap-port search <query...>
streetmap-port nearby <lat> <lon> [category] [radius-m]
streetmap-port distance <lat1> <lon1> <lat2> <lon2>
streetmap-port --version
Exit codes: 0 success, 1 API/validation error, 2 usage error.
MCP tools
| Tool | Purpose |
|---|---|
geocode_address | Geocode a free-form address or place name to coordinates via the OSM Nominatim API |
reverse_geocode | Reverse geocode coordinates to the nearest address via the OSM Nominatim API |
search_places | Search for places by name via the OSM Nominatim API |
find_nearby | Find places of a category near coordinates via the OSM Overpass API |
get_place_details | Get details of one OSM object (node, way or relation) via the Nominatim lookup API |
distance_between | Compute the great-circle distance in kilometres between two coordinate pairs (local, no API call) |
MCP client config:
{
"mcpServers": {
"streetmap-port": {
"command": "npx",
"args": ["-y", "@reneturcios/streetmap-port", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/streetmap-port # MCP server
docker run --rm ghcr.io/cloudcorprecords/streetmap-port --version
Development
npm install
npm run build
npm test
Data © OpenStreetMap contributors (ODbL). MIT license for the code.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.