Skip to main content

OSM Edit MCP

MCP Badge PyPI CI Python License

Find places in OpenStreetMap, preview new POI nodes, and review road edits from your local GPX surveys through an MCP-compatible assistant.

Alpha, review-first: nothing is edited automatically. Road changes need an authenticated OSM account, an exact preview and separate confirmation. The safe profile also supports reviewed POI node creation with duplicate inspection and exact coordinate/tag readback.

Fastest start

You need Python 3.10+, uv, and an MCP client that supports local stdio servers. No repository clone, Docker, API key or Valhalla installation is needed for place search.

Add this server to your client's MCP configuration (merge it with any existing servers), then reconnect:

{
  "mcpServers": {
    "osm-edit": {
      "command": "uvx",
      "args": ["osm-edit-mcp"],
      "env": {
        "OSM_TOOL_PROFILE": "discovery"
      }
    }
  }
}

The client downloads the released package on first launch and starts it for you. This profile exposes only three read-only place-search tools and needs no OAuth. Searches use public OSM services and send the search area/query to them.

Try asking your assistant:

Find museums and parks within 1 km of Matenadaran in Yerevan. Show OSM links.

Clients with a configuration form: command uvx, argument osm-edit-mcp, environment OSM_TOOL_PROFILE=discovery. If the client cannot find uvx, use its absolute path. See client setup or Hermes setup.

You can also start the server from a terminal:

uvx osm-edit-mcp

It waits for an MCP client; it is not an interactive terminal app or website. The bare command uses the default full profile, unlike the discovery-only configuration above.

GPX and editing: what else needs setup?

Keep the same command and args; replace the server's env above with:

{
  "OSM_TOOL_PROFILE": "full",
  "OSM_USE_DEV_API": "true",
  "OSM_WRITE_PROFILE": "safe",
  "OSM_REQUIRE_HOST_CONFIRMATION": "true"
}

Reconnect, then call get_edit_capabilities to check the selected API and authentication status. This enables GPX tools and the review-first workflow on the development sandbox; it does not log you in or authorize an edit.

To make edits: register a development OSM OAuth app and authenticate it with the source checkout's oauth_auth.py --dev helper, following the authentication guide. Keep credentials in a private file, not in this JSON or chat. Once the guide's private file contains the profile/API settings, replace env with only OSM_EDIT_MCP_ENV_FILE pointing to that file; do not leave conflicting settings in both places. Preview the proposal, review it, and confirm its exact digest. Real-map edits need a separate production app/configuration, development acceptance first, and an MCP host that supports confirmation (elicitation).

What you want to do What to configure, and why
Inspect a GPX and preview a selected section No OAuth. Set OSM_TRACK_IMPORT_DIR to your private GPX folder, or supply inline GPX XML.
Find candidate roads Uses the selected editing API. The dev sandbox is not a copy of the real map.
Preview a road-edit diff Set up OSM OAuth: the proposal is bound to your account and API target even before any write.
Apply an edit Review the exact proposal and confirm its digest separately in the MCP client. Production needs a host that supports elicitation.
Optionally match a track to a routing graph Run local Valhalla with regional routing tiles. Skip this if you do not need matching; nothing installs it automatically.

A selected-track preview is not an OSM edit proposal. Start with the working GPX example. Before editing, follow the OAuth and production guide. Never treat one GPS trace as ground truth.

Detailed guides

Full guide and examples · Nearby search · Optional Valhalla · Troubleshooting · Changelog

Contributing and license

Contributing · Security · MIT license. OSM edits must also follow community guidelines and source-licensing requirements.

Metadata

Release files for osm-edit-mcp 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for osm-edit-mcp 0.3.0
File Size Uploaded
osm_edit_mcp-0.3.0.tar.gz 153.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for osm-edit-mcp 0.3.0
File Interpreter ABI Platform
osm_edit_mcp-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 251.6 kB

Release files / osm_edit_mcp-0.3.0.tar.gz

Download URL osm_edit_mcp-0.3.0.tar.gz
Size 153.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5652af6b60c5edc753399ac1893a06d29e1d804e0d7fa70bb1bedad2fd2be5b5
BLAKE2b-256 checksum
How to use checksums
6bc3700ce708718303b907ccdd418d8bc54e88bed6a6ca400116b5e3451afd69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release files / osm_edit_mcp-0.3.0-py3-none-any.whl

Download URL osm_edit_mcp-0.3.0-py3-none-any.whl
Size 97.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
89b5bd73830be985c5d1a2d824c7e5f7a0fef1f12370d667087af4969caefafc
BLAKE2b-256 checksum
How to use checksums
2f684ade39af81f3835da4ee4d4ddad131306957833e33d3aac5e0523c894688
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page