OpenStreetMap Overpass

live GeoOpen Data

Programmatic queries against OpenStreetMap. Raw Overpass QL plus helpers for "POIs near a point" and "all matches in a bbox". No auth.

3 tools
0ms auth
free tier 50 calls/day

Tools

query required: qql

Raw Overpass QL query against OSM.

Parameters
Name Type Description
qql req string Overpass QL query
Try it
pois_near required: latitude, longitude, tag

POIs in a radius around a lat/lon, filtered by OSM tag.

Parameters
Name Type Description
latitude req number Center latitude
longitude req number Center longitude
radius_m opt number 1-10000 metres (default 1000)
tag req string OSM tag (e.g., "amenity=cafe", "shop", "tourism=museum")
limit opt number Max results (1-500, default 100)
Try it
places_in_bbox required: south, west, north, east, tag

POIs inside a bounding box.

Parameters
Name Type Description
south req number Min latitude
west req number Min longitude
north req number Max latitude
east req number Max longitude
tag req string OSM tag filter
limit opt number Max results (1-1000, default 200)
Try it

Test with curl

The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/overpass/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/overpass/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"query","arguments":{"qql": "example"}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("query", {"qql":"example"});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("programmatic queries against openstreetmap");