Skip to main content
Glama
skywinder

OSM Edit MCP Server

by skywinder

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
API_KEYNoSecurity API key for remote deployment and API access authentication.
LOG_LEVELNoLogging verbosity level (e.g., INFO, DEBUG, WARNING, ERROR).INFO
OSM_USE_DEV_APINoUse the OpenStreetMap development API (true) or production API (false).true
OSM_DEV_CLIENT_IDNoOAuth 2 Client ID for the OpenStreetMap development server, required for write operations.
OSM_DEV_CLIENT_SECRETNoOAuth 2 Client Secret for the OpenStreetMap development server, required for write operations.
RATE_LIMIT_PER_MINUTENoAPI rate limiting configuration defining how many requests per minute are allowed.

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_osm_nodeA

Get an OSM node by ID.

Args: node_id: The ID of the node to retrieve

Returns: Dictionary containing node data including coordinates and tags

get_osm_wayA

Get an OSM way by ID.

Args: way_id: The ID of the way to retrieve

Returns: Dictionary containing way data including nodes and tags

get_osm_relationA

Get an OSM relation by ID.

Args: relation_id: The ID of the relation to retrieve

Returns: Dictionary containing relation data including members and tags

get_osm_elements_in_areaA

Get OSM elements within a bounding box.

Args: bbox: Bounding box as "min_lon,min_lat,max_lon,max_lat"

Returns: Dictionary containing all elements in the area

get_changesetB

Get information about a changeset.

Args: changeset_id: The ID of the changeset to retrieve

Returns: Dictionary containing changeset information

get_server_infoA

Get information about the OSM Edit MCP server.

Returns: Dictionary containing server configuration and status

check_authenticationA

Check authentication status and get current user information.

Returns: Dictionary containing authentication status and user info

find_nearby_amenitiesA

Find nearby amenities around a location using Overpass API.

Args: lat: Latitude coordinate lon: Longitude coordinate radius_meters: Search radius in meters (default: 1000) amenity_type: Type of amenity to search for (restaurant, cafe, hospital, etc.)

Returns: Dictionary containing nearby amenities with their details

validate_coordinatesB

Validate coordinates and provide information about the location.

Args: lat: Latitude coordinate lon: Longitude coordinate

Returns: Dictionary containing validation results and location information

get_place_infoB

Get information about a place by name using OSM Nominatim.

Args: place_name: Name of the place to search for

Returns: Dictionary containing place information and coordinates

search_osm_elementsA

Search for OSM elements using Overpass API with a text query.

Args: query: Search query (e.g., "coffee shop", "hospital", "park") element_type: Type of element to search for (node, way, relation, or all)

Returns: Dictionary containing search results

parse_natural_language_osm_requestA

Parse a natural language request into structured OSM data.

Args: request: Natural language request for OSM operations

Returns: Dictionary containing parsed components of the request

validate_osm_dataA

Validate OSM data for quality assurance before uploading.

Args: data: Dictionary containing OSM data to validate (tags, coordinates, etc.)

Returns: Dictionary containing validation results and suggestions

get_changeset_historyB

Get changeset history for analysis and tracking.

Args: user_id: Optional user ID to filter changesets limit: Maximum number of changesets to return

Returns: Dictionary containing changeset history

export_osm_dataA

Export OSM data from a bounding box in various formats.

Args: bbox: Bounding box as "min_lon,min_lat,max_lon,max_lat" format: Export format (json, xml, geojson) include_metadata: Whether to include metadata like changeset info

Returns: Dictionary containing exported data

get_osm_statisticsA

Get statistics and analytics for OSM data in a bounding box.

Args: bbox: Bounding box as "min_lon,min_lat,max_lon,max_lat"

Returns: Dictionary containing comprehensive statistics

smart_geocodeB

Enhanced geocoding with address parsing and multiple search strategies.

Args: address_or_description: Full address or location description

Returns: Dictionary containing geocoding results with multiple candidates

analyze_gpx_trackB

Inspect a GPX file and list its independently selectable track segments.

create_track_selectionC

Select one continuous subsection of an analyzed GPX without copying it.

match_track_selectionB

Map-match a selected GPX subsection using the configured local Valhalla.

suggest_track_road_candidatesB

Suggest nearby OSM highway ways without selecting or modifying any way.

preview_track_road_editB

Build a non-writing GeoJSON and element diff preview for a road edit.

apply_osm_editB

Apply a reviewed proposal after a separate client-host confirmation.

apply_track_road_editC

Apply an exact dev-API digest after separate host confirmation.

get_edit_capabilitiesC

Describe the active safety profile and optional local services.

inspect_map_contextC

Return stable OSM IDs, versions, tags and GeoJSON for a small bbox.

list_edit_proposalsA

List local proposal metadata without exposing raw GPX coordinates.

verify_osm_editA

Re-fetch every element recorded in an applied proposal receipt.

Prompts

Interactive templates invoked by user choice

NameDescription
review_gpx_road_editPrepare a non-writing GPX-to-OSM road-edit proposal for explicit human review.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 28 tools

Disambiguation3/5

Several tools overlap in their query surface: get_osm_elements_in_area, export_osm_data, and get_osm_statistics all operate on a bbox, while get_place_info, smart_geocode, and search_osm_elements cover adjacent geocoding/search tasks. The descriptions help separate them, but an agent could easily pick the wrong one.

Naming Consistency5/5

All tool names are lowercase snake_case and follow a clear verb_noun pattern (get_osm_node, create_track_selection, apply_osm_edit, verify_osm_edit). The longer names like parse_natural_language_osm_request are verbose but still fit the same convention.

Tool Count2/5

With 28 tools, the surface is heavy for an editing server and exceeds the 25-tool threshold. Many read/search/geocode helpers could be consolidated, and the GPX workflow adds a second large sub-domain on top of the core OSM editing flow.

Completeness4/5

The set covers a full edit workflow: discover, validate, propose, apply, and verify, along with GPX track analysis and export. It lacks explicit element-level create/update/delete and changeset management tools, but those seem intentionally funneled through apply_osm_edit.

Maintenance

ActivityMaintained
ResponsivenessNo issues