myosm-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Alternative HTTP port | 3000 |
| OSRM_URL | No | Routing endpoint (self-hosted OSRM) | https://router.project-osrm.org |
| OSM_TILE_URL | No | Tile server for the standard style | https://tile.openstreetmap.org/{z}/{x}/{y}.png |
| OVERPASS_URL | No | Overpass API endpoint | https://overpass-api.de/api/interpreter |
| MCP_HTTP_HOST | No | HTTP bind address | 127.0.0.1 |
| MCP_HTTP_PORT | No | HTTP port | 3000 |
| MCP_TRANSPORT | No | Transport: 'stdio' or 'http' | stdio |
| NOMINATIM_URL | No | Geocoding endpoint (self-hosted Nominatim) | https://nominatim.openstreetmap.org |
| OSM_USER_AGENT | No | User-Agent sent to the OSM services | myosm-mcp-server/1.0 (…) |
| MCP_ALLOWED_HOSTS | No | Comma-separated Host header values; enables DNS-rebinding protection | |
| THUNDERFOREST_API_KEY | No | Required for transport, cycle, landscape and outdoor map styles |
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 | {
"listChanged": true
} |
| logging | {} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| geocode_addressA | Convert an address or place name to geographic coordinates with detailed location information. Returns a list of matching locations with coordinates, formatted address, administrative boundaries, OSM type/ID, bounding box and importance ranking. |
| reverse_geocodeA | Convert geographic coordinates to a detailed address and location description, including the administrative hierarchy, postal code and OSM metadata. |
| find_nearby_placesA | Discover points of interest and amenities near a specific location. Results are grouped by OSM category and subcategory — useful for location-based recommendations and proximity-based decision making. |
| get_route_directionsA | Calculate route directions between two geographic points using OSRM. Returns a summary (distance in meters, duration in seconds), optional turn-by-turn directions, the route geometry (GeoJSON) and waypoints. Use steps/overview/annotations to control the response size. |
| search_categoryA | Search for specific types of places within a rectangular geographic area. Filters places by OSM category (e.g., "amenity", "shop") and optional subcategories (e.g., ["restaurant", "cafe"]) and returns their coordinates, names and metadata. |
| suggest_meeting_pointA | Find the optimal meeting place for multiple people coming from different locations: computes the central point and recommends nearby venues of the requested type. |
| explore_areaB | Generate a comprehensive profile of an area: all amenities and features around a point, organized by category and subcategory, plus the address of the center point. |
| find_schools_nearbyA | Locate educational institutions (schools, kindergartens, colleges, universities) near a location, optionally filtered by education level, sorted by distance. |
| analyze_commuteA | Perform a detailed commute analysis between home and work locations, comparing multiple transportation modes with distances, durations and turn-by-turn directions. |
| find_ev_charging_stationsA | Locate electric vehicle charging stations near a location, optionally filtered by connector type and minimum charging power, sorted by distance. |
| analyze_neighborhoodA | Generate a comprehensive neighborhood livability analysis: amenities, transportation, green spaces and services, with per-category scores, a walkability score and an overall neighborhood score. Useful for real estate decisions and relocation planning. |
| find_parking_facilitiesA | Locate parking facilities (lots, garages, street parking) near a location with capacity, fee and access information, sorted by distance. |
| get_map_tileA | Fetch the rendered map tile covering a location so the map layer can be viewed as an image. Styles: "standard" (openstreetmap.org default, no key needed), "transport" (public transport layer), "cycle", "landscape", "outdoor" (Thunderforest styles — require the THUNDERFOREST_API_KEY environment variable). Returns the PNG tile plus tile metadata and attribution. |
| find_public_transportA | Query the public transport layer around a location: stops, stations, platforms and terminals (sorted by distance) plus the transit route lines serving the area (bus, trolleybus, tram, train, subway, light rail, ferry), with ref, operator, network, origin and destination. |
| find_power_infrastructureA | Query the electricity grid layer around a location: power lines (high/low voltage), underground cables, substations and transformers — with voltage, circuits, operator and optional line geometry. Pass power_types to also include towers, poles, switches, converters, etc. Results are sorted by distance. |
| find_power_plantsA | Locate electricity production facilities around a location: power plants (power=plant) and standalone generators such as wind turbines or solar arrays (power=generator). Reports the energy source (solar, wind, hydro, nuclear, gas, ...), method, electrical output and operator, sorted by distance and filterable by source and minimum output. |
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 16 tools
Several tools overlap in purpose, particularly find_nearby_places, explore_area, and analyze_neighborhood, all of which provide comprehensive amenity profiles around a location. While descriptions hint at differences (e.g., scores for livability), an agent could easily select the wrong one. Other specific searches (parking, schools, EV stations) are clearly distinct.
Tool names consistently use lowercase snake_case with a verb_noun structure (find_*, get_*, analyze_*, etc.). The only minor deviation is 'reverse_geocode' which is a standard term, and no camelCase or mixed conventions appear. Overall, the pattern is predictable and readable.
With 16 tools, the server is slightly above the typical 3-15 range but still reasonable for a broad OSM-based location service. Each tool covers a distinct aspect of geographic data (search, routing, utilities, transport), so the count feels appropriate rather than bloated.
The tool surface covers geocoding, reverse geocoding, POI search, routing, neighborhood analysis, map tiles, and specialized infrastructure queries (power, EV, public transport). Minor gaps exist, such as a direct tool for fetching OSM object details by ID, but core workflows are well-supported and no critical dead ends are apparent.