overpass.ch

Query OpenStreetMap data for the whole planet with the Overpass API, find places by name and look up heights. Minutely updates, history back to 2012.

Hosted MCP Server

npx add-mcp 'https://api.overpass.ch/v1/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

overpass.ch MCP server

mcptry

Hosted Overpass API with an MCP server. AI assistants connected to it query OpenStreetMap data for the whole planet, find places by name, look up heights, and answer from current data.

The data covers every street, shop, building and place mapped in OpenStreetMap and is updated every minute. The Medium and Large plans can also query the map at a past date, back to September 2012.

This repository holds the documentation and the registry entry of the hosted server at https://api.overpass.ch/v1/mcp. There is nothing to install.

Setup

  1. Create a free account and an API key at https://overpass.ch/signup.

  2. Add the server to your assistant, either as a URL with the key in it:

    https://api.overpass.ch/v1/YOUR_API_KEY/mcp
    

    or as https://api.overpass.ch/v1/mcp with the key in the X-API-Key header (or Authorization: Bearer YOUR_API_KEY).

Transport: Streamable HTTP. Protocol versions 2026-07-28 and 2025-03-26 to 2025-11-25. Listing the tools does not need a key. Create a separate key for each assistant, so that you can revoke it on its own.

Claude (web, desktop and mobile apps)

Customize → Connectors → + Add → Add custom connector. Name: overpass.ch. URL: the URL with your key. Authentication: No sign in.

ChatGPT

Open https://chatgpt.com/plugins, select + and Add custom MCP server. Enter a name, the URL with your key under Connection, and no authentication. Confirm the warning and select Create as a plugin. Your ChatGPT plan or workspace has to allow custom MCP servers.

Claude Code

claude mcp add --transport http overpass https://api.overpass.ch/v1/mcp \
  --header "X-API-Key: YOUR_API_KEY"

Cursor

~/.cursor/mcp.json, with the key in the environment variable OVERPASS_KEY:

{
  "mcpServers": {
    "overpass": {
      "url": "https://api.overpass.ch/v1/mcp",
      "headers": { "X-API-Key": "${env:OVERPASS_KEY}" }
    }
  }
}

VS Code

.vscode/mcp.json. VS Code asks for the key the first time and stores it:

{
  "inputs": [
    { "type": "promptString", "id": "overpass-key", "description": "overpass.ch API key", "password": true }
  ],
  "servers": {
    "overpass": {
      "type": "http",
      "url": "https://api.overpass.ch/v1/mcp",
      "headers": { "X-API-Key": "${input:overpass-key}" }
    }
  }
}

Other clients

Other clients that speak MCP over Streamable HTTP take the URL with the key, or the URL without it and the X-API-Key header.

As an Agent Plugin

This repository is also an Agent Plugin: plugin.json and mcp.json add the server overpass at https://api.overpass.ch/v1/mcp. A plugin cannot carry your key, so add the header X-API-Key with your key to the server overpass in the settings of your client. Without it the tools are listed, and every call answers that a key is missing.

Tools

ToolWhat it doesCounts as
overpass_queryRuns an Overpass QL or XML query on the full planet. The answer starts with counts and the date of the data, then one element per line. Answers over 30,000 characters are cut and can be read in parts with offset.1 request
overpass_examplesFinds tested example queries for a topic, from a cookbook of 99 queries.free
geocode_searchPlaces, addresses and points of interest by name, in English, German or French, with an overpass_area_id for searching inside that place.1 geocoding request
geocode_reverseThe address, street, city or country at a point.1 geocoding request
elevation_pointsHeights of points: a 2 m grid in Switzerland and Liechtenstein (swissALTI3D), a 30 m grid elsewhere on land (Copernicus), depths at sea (GEBCO).1 lookup per point
elevation_profileDistance, ascent, descent and heights along a path.1 lookup per sample
account_statusPlan, use this month and the date of the data.free

All tools only read data. Overpass queries through MCP stop after 120 s at most.

Example questions

  • How many pharmacies in Zürich are within 200 m of a tram stop?
  • Which mountain huts in Valais lie above 2,500 m?
  • List every EV charger in the canton of Bern with operator and power, as a table.
  • How many cafés did Lausanne have in 2015, and how many today? (Medium and Large plans)

Plans

Tool calls count like the same calls of the REST API.

PlanPrice a monthOverpass requests a monthQueries at a timeHistory
Free010,000 (30 a minute)1no
SmallCHF/EUR 19 or USD 25100,0002no
MediumCHF/EUR 59 or USD 791 million6yes
LargeCHF/EUR 149 or USD 1993 million10yes

The free plan is for evaluation and development, and for personal, educational and non-profit projects; commercial use needs a paid plan. Every plan includes 100,000 geocoding requests a month. Prices exclude VAT, and a year costs ten months. Details: https://overpass.ch/pricing

FAQ

Do I need an API key? Yes, for tool calls. The free plan works. Listing the tools works without a key.

What happens when a result is very large? The answer says how many elements there were. The assistant can read the next part with offset, raise max_chars up to 200,000, or narrow the query (out count;, out center 50;, a smaller area).

How is this different from MCP servers that use overpass-api.de? The public server overpass-api.de allows about 100 queries a day for anything that runs regularly, refuses scripts without their own User-Agent and bans addresses after repeated 429 errors. overpass.ch identifies you by your API key, publishes its limits and tells the assistant how long to wait when it reaches one.

What is logged? Tool calls are logged like API requests: the id of the key, never the key, and queries only as a hash.

Data and licence

Data © OpenStreetMap contributors, available under the Open Database Licence (https://www.openstreetmap.org/copyright). Heights in Switzerland and Liechtenstein © swisstopo. overpass.ch is operated from Switzerland, with servers in Finland (EU). Contact: https://overpass.ch/contact