OpenStreetMap MCP
An MCP server that enables agents to interact with OpenStreetMap data through Nominatim and the Overpass API. It provides tools for geocoding addresses, reverse geocoding coordinates, looking up OSM objects by ID, and querying spatial features by radius, bounding box, or raw Overpass QL queries.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Geocode place names or addresses to coordinates
- Reverse geocode coordinates to nearest address
- Query OSM features within a radius or bounding box
- Run raw Overpass QL queries for complex spatial data
Source and maintenance
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
@cyanheads/openstreetmap-mcp-server 0.7.0
{
"version": "0.7.0",
"transport": "stdio",
"identifier": "@cyanheads/openstreetmap-mcp-server",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "OSM_NOMINATIM_BASE_URL",
"format": "string",
"default": "https://nominatim.openstreetmap.org",
"description": "Nominatim API base URL. Override to use a private or mirror instance."
},
{
"name": "OSM_USER_AGENT",
"format": "string",
"default": "openstreetmap-mcp-server/0.7.0",
"description": "User-Agent sent to Nominatim and Overpass. Required by usage policy."
},
{
"name": "OSM_OVERPASS_BASE_URL",
"format": "string",
"description": "Overpass API endpoint URL. When set, pins every query to this one endpoint and disables mirror failover; OSM_OVERPASS_MAX_CONCURRENCY sizes it and a |N suffix is rejected. Leave unset to use OSM_OVERPASS_ENDPOINTS."
},
{
"name": "OSM_OVERPASS_ENDPOINTS",
"format": "string",
"default": "https://overpass-api.de/api/interpreter",
"description": "Comma-separated ordered list of Overpass endpoints. A failure advances to the next entry within the same tool call; a single entry means no failover. An entry written url|N gets N slots of its own and adds capacity, for an instance whose operator allows parallel queries, never a public FOSSGIS server; an unsuffixed later entry is failover only. Write a | inside a URL as %7C. Verify a mirror's usage policy, data coverage, and freshness before adding it. Ignored when OSM_OVERPASS_BASE_URL is set."
},
{
"name": "OSM_OVERPASS_MAX_CONCURRENCY",
"format": "number",
"default": "1",
"description": "Concurrent Overpass queries per endpoint: OSM_OVERPASS_BASE_URL, and every OSM_OVERPASS_ENDPOINTS entry not sized with |N. With no |N entry it is also the most queries in flight across all endpoints. A query waits at most 30 seconds in total for a slot, then fails with pacer_shed and a retryAfter. The default of 1 follows the public FOSSGIS instances, which allow one query in flight per user; raise it only for an instance whose operator allows parallel queries, such as a private or paid one."
},
{
"name": "MCP_LOG_LEVEL",
"format": "string",
"default": "info",
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"openstreetmap-mcp": {
"command": "npx",
"args": [
"-y",
"@cyanheads/openstreetmap-mcp-server@0.7.0"
],
"env": {
"OSM_NOMINATIM_BASE_URL": "<YOUR_OSM_NOMINATIM_BASE_URL>",
"OSM_USER_AGENT": "<YOUR_OSM_USER_AGENT>",
"OSM_OVERPASS_BASE_URL": "<YOUR_OSM_OVERPASS_BASE_URL>",
"OSM_OVERPASS_ENDPOINTS": "<YOUR_OSM_OVERPASS_ENDPOINTS>",
"OSM_OVERPASS_MAX_CONCURRENCY": "<YOUR_OSM_OVERPASS_MAX_CONCURRENCY>",
"MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>"
}
}
}
}Cline
{
"mcpServers": {
"openstreetmap-mcp": {
"command": "npx",
"args": [
"-y",
"@cyanheads/openstreetmap-mcp-server@0.7.0"
],
"env": {
"OSM_NOMINATIM_BASE_URL": "<YOUR_OSM_NOMINATIM_BASE_URL>",
"OSM_USER_AGENT": "<YOUR_OSM_USER_AGENT>",
"OSM_OVERPASS_BASE_URL": "<YOUR_OSM_OVERPASS_BASE_URL>",
"OSM_OVERPASS_ENDPOINTS": "<YOUR_OSM_OVERPASS_ENDPOINTS>",
"OSM_OVERPASS_MAX_CONCURRENCY": "<YOUR_OSM_OVERPASS_MAX_CONCURRENCY>",
"MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>"
}
}
}
}VS Code
{
"servers": {
"openstreetmap-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/openstreetmap-mcp-server@0.7.0"
],
"env": {
"OSM_NOMINATIM_BASE_URL": "<YOUR_OSM_NOMINATIM_BASE_URL>",
"OSM_USER_AGENT": "<YOUR_OSM_USER_AGENT>",
"OSM_OVERPASS_BASE_URL": "<YOUR_OSM_OVERPASS_BASE_URL>",
"OSM_OVERPASS_ENDPOINTS": "<YOUR_OSM_OVERPASS_ENDPOINTS>",
"OSM_OVERPASS_MAX_CONCURRENCY": "<YOUR_OSM_OVERPASS_MAX_CONCURRENCY>",
"MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"openstreetmap-mcp": {
"command": "npx",
"args": [
"-y",
"@cyanheads/openstreetmap-mcp-server@0.7.0"
],
"env": {
"OSM_NOMINATIM_BASE_URL": "<YOUR_OSM_NOMINATIM_BASE_URL>",
"OSM_USER_AGENT": "<YOUR_OSM_USER_AGENT>",
"OSM_OVERPASS_BASE_URL": "<YOUR_OSM_OVERPASS_BASE_URL>",
"OSM_OVERPASS_ENDPOINTS": "<YOUR_OSM_OVERPASS_ENDPOINTS>",
"OSM_OVERPASS_MAX_CONCURRENCY": "<YOUR_OSM_OVERPASS_MAX_CONCURRENCY>",
"MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>"
}
}
}
}Let your agent find its tools
Find servers like OpenStreetMap MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.