OpenStreetMap MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_locationC | Search for locations, addresses, or places using Nominatim geocoding service |
| reverse_geocodeB | Get address information from coordinates (reverse geocoding) |
| search_structuredC | Search using structured address components |
| get_place_detailsC | Get detailed information about a specific OSM place |
| search_poisC | Search for Points of Interest (POIs) using Overpass API |
| find_amenities_nearbyC | Find amenities near a specific location |
| get_elements_in_boundsB | Get all OSM elements within a bounding box |
| search_by_tagsC | Search for OSM elements by specific tags |
| get_route_dataC | Get road/path data for routing between two points |
| execute_overpass_queryC | Execute a custom Overpass QL query |
| get_osrm_routeB | Get detailed route with turn-by-turn directions using OSRM |
| get_distance_matrixC | Calculate distance and duration matrix between multiple points |
| snap_to_roadsB | Snap coordinates to nearest road segments |
| optimize_routeB | Solve Traveling Salesman Problem to find optimal route through all points |
| map_match_gpsC | Map-match GPS traces to road network |
| calculate_isochroneA | Calculate travel time isochrone (areas reachable within time limit) using Valhalla |
| get_changesetC | Get detailed information about a specific changeset |
| search_changesetsC | Search for changesets with various filters |
| get_changeset_diffC | Get the diff/changes for a specific changeset |
| osmose_search_issuesC | Search for OSMOSE quality assurance issues with various filters |
| osmose_get_issue_detailsC | Get detailed information about a specific OSMOSE issue |
| osmose_get_issues_by_countryC | Get OSMOSE issues in a specific country |
| osmose_get_issues_by_userC | Get OSMOSE issues last modified by a specific user |
| osmose_get_statsB | Get OSMOSE statistics (issue counts by level, type, etc.) |
| osmose_get_itemsB | Get available OSMOSE issue categories/items |
| search_highways_smartC | Smart highway search using Taginfo-enhanced queries for major roads, motorways, etc. |
| search_pois_smartC | Smart POI search using Taginfo-enhanced queries for restaurants, shops, tourism, etc. |
| get_tag_suggestionsC | Get OSM tag suggestions and autocomplete based on Taginfo statistics |
| get_tag_statsB | Get usage statistics for OSM tags from Taginfo |
| validate_osm_tagC | Validate if an OSM tag combination is commonly used and get suggestions |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 30 tools
Most tools have distinct purposes, but there is some overlap that could cause confusion. For example, 'search_pois' and 'search_pois_smart' both search for POIs, and 'get_osrm_route' and 'get_route_data' both handle routing, though their descriptions differentiate them slightly. Overall, the descriptions help clarify boundaries, but agents might need to carefully choose between similar tools.
Tool names follow a highly consistent snake_case pattern with clear verb_noun structures, such as 'calculate_isochrone', 'execute_overpass_query', and 'search_location'. This consistency makes the tool set predictable and easy to navigate, with no deviations in naming conventions.
With 30 tools, the count is on the high side for an MCP server, bordering on heavy. While OpenStreetMap is a broad domain, this many tools might overwhelm agents or indicate potential redundancy. It feels slightly excessive compared to well-scoped servers, but it's not extreme.
The tool set provides comprehensive coverage for OpenStreetMap operations, including geocoding, routing, data querying, quality assurance (OSMOSE), and tag management. It supports CRUD-like actions for OSM elements and changesets, with no obvious gaps that would hinder agent workflows in this domain.