OpenStreetMap MCP server providing precision geospatial tools for LLMs via Model Context Protocol. Features geocoding, routing, nearby places, neighborhood analysis, EV charging stations, and more.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"osmmcp": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
This is a Go OpenStreetMap MCP server. It implements the Model Context Protocol to enable LLMs to interact with geospatial data.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in maps
A Model Context Protocol (MCP) server providing TomTom's location services, search, routing, and traffic data to AI agents.
Real-time BART departures, trip planning, fares, stations, and advisories.
MCP server for the VesselAPI — maritime vessel tracking, port events, emissions, and navigation data
Fair meeting point discovery for AI agents with isochrone-based travel time fairness
MCP Security Weekly
Get CVE alerts and security updates for Osmmcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
This is a Go OpenStreetMap MCP server. It implements the Model Context Protocol to enable LLMs to interact with geospatial data.
Our focus is on precision, performance, maintainability, and ease of integration with MCP desktop clients.
The server provides LLMs with tools to interact with OpenStreetMap data, including:
| Tool Name | Description | Example Parameters |
|---|---|---|
bbox_from_points | Create a bounding box that encompasses all given geographic coordinates | {"points": [{"latitude": 37.7749, "longitude": -122.4194}, {"latitude": 37.8043, "longitude": -122.2711}]} |
centroid_points | Calculate the geographic centroid (mean center) of a set of coordinates | {"points": [{"latitude": 37.7749, "longitude": -122.4194}, {"latitude": 37.8043, "longitude": -122.2711}]} |
enrich_emissions | Enrich route options with CO2 emissions, calorie burn, and cost estimates | {"options": [{"mode": "car", "distance": 5000}, {"mode": "bike", "distance": 4500}]} |
filter_tags | Filter OSM elements by specified tags | {"elements": [...], "tags": {"amenity": ["restaurant", "cafe"]}} |
geocode_address | Convert an address or place name to geographic coordinates | {"address": "1600 Pennsylvania Ave, Washington DC"} |
geo_distance | Calculate the distance between two geographic coordinates | {"from": {"latitude": 37.7749, "longitude": -122.4194}, "to": {"latitude": 37.8043, "longitude": -122.2711}} |
get_map_image | Retrieve and display an OpenStreetMap image for analysis | {"latitude": 37.7749, "longitude": -122.4194, "zoom": 14} |
osm_query_bbox | Query OpenStreetMap data within a bounding box with tag filters | {"bbox": {"minLat": 37.77, "minLon": -122.42, "maxLat": 37.78, "maxLon": -122.41}, "tags": {"amenity": "restaurant"}} |
polyline_decode | Decode an encoded polyline string into a series of geographic coordinates | {"polyline": "a~l~FfynpOnlB_pDhgEhjD"} |
polyline_encode | Encode a series of geographic coordinates into a polyline string | {"points": [{"latitude": 37.7749, "longitude": -122.4194}, {"latitude": 37.8043, "longitude": -122.2711}]} |
reverse_geocode | Convert geographic coordinates to a human-readable address | {"latitude": 38.8977, "longitude": -77.0365} |
route_fetch | Fetch a route between two points using OSRM routing service | {"start": {"latitude": 37.7749, "longitude": -122.4194}, "end": {"latitude": 37.8043, "longitude": -122.2711}, "mode": "car"} |
route_sample | Sample points along a route at specified intervals | {"polyline": "a~l~FfynpOnlB_pDhgEhjD", "interval": 100} |
sort_by_distance | Sort OSM elements by distance from a reference point | {"elements": [...], "ref": {"latitude": 37.7749, "longitude": -122.4194}} |
find_nearby_places | Find points of interest near a specific location | `{"latitude": 37.7749, "longitude": -122.4194, "radius": 1000, "category": "restaurant", |