About MCP Server for OSM
An MCP server that gives mapping and routing functions to travel applications and MCP clients, using Nominatim, OSRM, and Overpass. It covers geocoding, routes, distance calculations, and nearby places.
Key features
- 01Address geocoding and reverse lookup
- 02OSM place details lookup
- 03Distance and route calculations
- 04Route steps and distance matrices
- 05Trip optimization and nearby POIs
- 06OpenStreetMap map links
Use cases
- 01Find coordinates for an address
- 02Compare routes and travel times
- 03Locate nearby restaurants or fuel
- 04Plan a route across several stops
MCP support
Exposes Nominatim, OSRM, and Overpass mapping functions as tools for MCP clients. Custom service endpoints can be configured.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Server for OSM
Overview
This is an MCP server for accessing OSM functions: Nominatim (geocoding/reverse/lookup), OSRM (routing/matrix/trip) and Overpass (nearby POI search).
Please note that these are open servers, use them lightly and fairly. For production usage consider installing your own servers and using them. Set custom endpoints via env vars (see below).
Requirements
Node 20+
npm install
Features (v2.0.0, 12 tools)
geocode– address → coords (top result,limit,countrycodes)search_places– query → up to 20 structured resultsreverse_geocode– lat/lon → address (zoom0-18)place_details– OSM lookup byosm_type+osm_iddistanceWithHaversine– straight-line distance (km/mi/m)routeDistance– OSRM distance (driving/walking/cycling)route_details– distance + duration + turn-by-turn stepsdistance_matrix– OSRM table for 2-10 pointsoptimize_trip– OSRM trip (TSP) for 2-10 waypointsfind_nearby_places– Overpass POIs: restaurant, cafe, hotel, fuel, atm, etc. within radiusget_map_link– openstreetmap.org link for coordsabout– server info
Sample prompts: "Give coordinates of New York", "Coffee shops within 1km of (12.97, 77.59)?", "Optimize a trip visiting A, B, C", "Driving route Berlin → Potsdam with steps?".
Env vars
NOMINATIM_BASE_URL=https://nominatim.openstreetmap.org
OSRM_BASE_URL=https://router.project-osrm.org
OVERPASS_BASE_URL=https://overpass-api.de/api/interpreter
[email protected] # optional, for large usage
Installation
To install the dependancies
npm install
Else you can install the dependancy
npm install @modelcontextprotocol/sdk
To enable the MCP server in the workspace we have create a directory and a configuration file in that directory.
mkdir .vscode
cd .vscode
touch mcp.json
Make a directory called .vscode in you working directory, create a file called mcp.json and add the configuration below. Update the paths to you node and your API key
{
"servers": {
"my-mcp-server-bfba9100": {
"type": "stdio",
"command": "/path/to/node",
"args": [
"/path/to/index.js"
],
"env": {
},
}
}
}
Global VScode
Add the configuration file in ~/.vscode to make it accessible across all directories
Cursor
The global and local workspace will work for cursor also. The directories will be called .cursor. You can place the configuration file.
Claude Integration
The MCP server can be added to Claude Desktop app. Find the file claude_desktop_config.json. In MAC they will be available at
` ~/Library/Application\ Support/Claude/claude_desktop_config.json
Using custom Nominatim and OSRM servers
This MCP server can be used with custom Nominatim and OSRM servers, for e.g. your own servers if you choose to host them. This is usually recommended for production use. Change the lines
const NOMINATIM_BASE_URL = "<CUSTOM NOMINATIM SERVER>";
const OSRM_BASE_URL = "<CUSTOM OSRM SERVER>";
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.