Koskamo

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.

OpenStreetMap MCP logo, by cyanheadsCommunity listingLocal stdioSource reviewed; not executedPublished by cyanheads
Vendor documentation

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

Community listingRegistry 0.7.0
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

npmnpx
@cyanheads/openstreetmap-mcp-server package definition
{
  "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.

No tool definitions available.

Connect from your client

Each snippet configures the same source-provided package; replace placeholders before use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Cursor

Merge this local stdio configuration, replace every placeholder environment value, and restart Cursor. Koskamo has not executed this package.
Cursor configuration
{
  "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

Merge this local stdio configuration, replace every placeholder environment value, and restart Cline. Koskamo has not executed this package.
Cline configuration
{
  "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

Merge this local stdio configuration, replace every placeholder environment value, and restart VS Code. Koskamo has not executed this package.
VS Code configuration
{
  "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

Merge this local stdio configuration, replace every placeholder environment value, and restart Claude Desktop. Koskamo has not executed this package.
Claude Desktop configuration
{
  "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.