Geocode, reverse-geocode, autocomplete, route and search places.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Address autocomplete — suggest completed addresses/places for a partial query, ideal for as-you-type inputs. Geoapify REST: GET /v1/geocode/autocomplete.
The partial address or place text to complete (required).
Bias results toward a location, e.g. 'proximity:13.4,52.5'.
Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'.
Restrict to a location type, e.g. 'city', 'street', 'amenity', 'postcode'.
Max number of results to return.
Spatial filter, e.g. 'countrycode:de' or 'rect:lon1,lat1,lon2,lat2'.
Response format — 'json' (default) or 'geojson'.
Address autocomplete — suggest completed addresses/places for a partial query, ideal for as-you-type inputs. Geoapify REST: GET /v1/geocode/autocomplete.
| Argument | Type | Description |
|---|---|---|
| bias | string | Bias results toward a location, e.g. 'proximity:13.4,52.5'. |
| lang | string | Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'. |
| text* | string | The partial address or place text to complete (required). |
| type | string | Restrict to a location type, e.g. 'city', 'street', 'amenity', 'postcode'. |
| limit | integer | Max number of results to return. |
| filter | string | Spatial filter, e.g. 'countrycode:de' or 'rect:lon1,lat1,lon2,lat2'. |
| format | string | Response format — 'json' (default) or 'geojson'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"text"
],
"properties": {
"bias": {
"type": "string",
"description": "Bias results toward a location, e.g. 'proximity:13.4,52.5'."
},
"lang": {
"type": "string",
"description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'."
},
"text": {
"type": "string",
"minLength": 1,
"description": "The partial address or place text to complete (required)."
},
"type": {
"type": "string",
"description": "Restrict to a location type, e.g. 'city', 'street', 'amenity', 'postcode'."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max number of results to return."
},
"filter": {
"type": "string",
"description": "Spatial filter, e.g. 'countrycode:de' or 'rect:lon1,lat1,lon2,lat2'."
},
"format": {
"type": "string",
"description": "Response format — 'json' (default) or 'geojson'."
}
}
}Reverse geocoding — turn coordinates into the nearest address / place. Geoapify REST: GET /v1/geocode/reverse.
| Argument | Type | Description |
|---|---|---|
| lat* | number | Latitude (required). |
| lon* | number | Longitude (required). |
| lang | string | Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'. |
| type | string | Restrict to a location type, e.g. 'city', 'street', 'amenity'. |
| limit | integer | Max number of results to return. |
| format | string | Response format — 'json' (default) or 'geojson'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"description": "Latitude (required)."
},
"lon": {
"type": "number",
"description": "Longitude (required)."
},
"lang": {
"type": "string",
"description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'."
},
"type": {
"type": "string",
"description": "Restrict to a location type, e.g. 'city', 'street', 'amenity'."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max number of results to return."
},
"format": {
"type": "string",
"description": "Response format — 'json' (default) or 'geojson'."
}
}
}Forward geocoding — turn a free-form address or place name into coordinates and structured address parts. Geoapify REST: GET /v1/geocode/search.
| Argument | Type | Description |
|---|---|---|
| bias | string | Bias results toward a location, e.g. 'proximity:13.4,52.5'. |
| lang | string | Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'. |
| text* | string | The free-form address or place name to geocode (required). |
| type | string | Restrict to a location type, e.g. 'city', 'street', 'amenity', 'postcode'. |
| limit | integer | Max number of results to return. |
| filter | string | Spatial filter, e.g. 'countrycode:de' or 'rect:lon1,lat1,lon2,lat2'. |
| format | string | Response format — 'json' (default) or 'geojson'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"text"
],
"properties": {
"bias": {
"type": "string",
"description": "Bias results toward a location, e.g. 'proximity:13.4,52.5'."
},
"lang": {
"type": "string",
"description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'."
},
"text": {
"type": "string",
"minLength": 1,
"description": "The free-form address or place name to geocode (required)."
},
"type": {
"type": "string",
"description": "Restrict to a location type, e.g. 'city', 'street', 'amenity', 'postcode'."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max number of results to return."
},
"filter": {
"type": "string",
"description": "Spatial filter, e.g. 'countrycode:de' or 'rect:lon1,lat1,lon2,lat2'."
},
"format": {
"type": "string",
"description": "Response format — 'json' (default) or 'geojson'."
}
}
}Look up the approximate location (country, city, coordinates) of an IP address. Geoapify REST: GET /v1/ipinfo.
| Argument | Type | Description |
|---|---|---|
| ip* | string | The IPv4/IPv6 address to locate (required). |
| lang | string | Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ip"
],
"properties": {
"ip": {
"type": "string",
"minLength": 1,
"description": "The IPv4/IPv6 address to locate (required)."
},
"lang": {
"type": "string",
"description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'."
}
}
}Compute a reachability isoline (isochrone/isodistance) — the area reachable from a point within a time or distance budget. Geoapify REST: GET /v1/isoline.
| Argument | Type | Description |
|---|---|---|
| lat* | number | Origin latitude (required). |
| lon* | number | Origin longitude (required). |
| lang | string | Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'. |
| mode* | string | Travel mode: drive, walk, bicycle, etc. (required). |
| type* | string | Isoline type — 'time' (seconds) or 'distance' (meters) (required). |
| range* | number | Budget for the isoline — seconds if type=time, meters if type=distance (required). |
| traffic | string | Traffic model for driving, e.g. 'free_flow' or 'approximated'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"lat",
"lon",
"type",
"mode",
"range"
],
"properties": {
"lat": {
"type": "number",
"description": "Origin latitude (required)."
},
"lon": {
"type": "number",
"description": "Origin longitude (required)."
},
"lang": {
"type": "string",
"description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'."
},
"mode": {
"type": "string",
"minLength": 1,
"description": "Travel mode: drive, walk, bicycle, etc. (required)."
},
"type": {
"enum": [
"time",
"distance"
],
"type": "string",
"description": "Isoline type — 'time' (seconds) or 'distance' (meters) (required)."
},
"range": {
"type": "number",
"description": "Budget for the isoline — seconds if type=time, meters if type=distance (required)."
},
"traffic": {
"type": "string",
"description": "Traffic model for driving, e.g. 'free_flow' or 'approximated'."
}
}
}Get detailed information (and optionally geometry/features) for a place. Provide either `id` (the `place_id` returned by geoapify_places) OR both `lat` and `lon`. Geoapify REST: GET /v2/place-details.
| Argument | Type | Description |
|---|---|---|
| id | string | The Geoapify place id (pass the `place_id` value from geoapify_places). |
| lat | number | Latitude (use with `lon` instead of `id`). |
| lon | number | Longitude (use with `lat` instead of `id`). |
| lang | string | Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'. |
| features | string | Comma-separated detail feature sets, e.g. 'details,building,geometry'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"description": "The Geoapify place id (pass the `place_id` value from geoapify_places)."
},
"lat": {
"type": "number",
"description": "Latitude (use with `lon` instead of `id`)."
},
"lon": {
"type": "number",
"description": "Longitude (use with `lat` instead of `id`)."
},
"lang": {
"type": "string",
"description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'."
},
"features": {
"type": "string",
"description": "Comma-separated detail feature sets, e.g. 'details,building,geometry'."
}
}
}Search for places (POIs) by category within an area, optionally filtered by name/conditions. Returns a GeoJSON FeatureCollection. Geoapify REST: GET /v2/places.
| Argument | Type | Description |
|---|---|---|
| bias | string | Bias results toward a location, e.g. 'proximity:13.4,52.5'. |
| lang | string | Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'. |
| name | string | Filter places by (partial) name. |
| limit | integer | Max number of results to return. |
| filter | string | Spatial filter, e.g. 'circle:13.4,52.5,1000' or 'rect:...' or 'place:<placeId>'. |
| offset | integer | Pagination offset (skip N results). |
| categories* | string | Comma-separated Geoapify place categories, e.g. 'catering.restaurant,commercial' (required). |
| conditions | string | Comma-separated conditions, e.g. 'named,internet_access'. |
Compute a route between waypoints for a travel mode, returning distance, time and legs. Geoapify REST: GET /v1/routing.
| Argument | Type | Description |
|---|---|---|
| lang | string | Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'. |
| mode* | string | Travel mode: drive, walk, bicycle, truck, hike, transit, etc. (required). |
| units | string | Distance units — 'metric' or 'imperial'. |
| format | string | Response format — 'json' (default) or 'geojson'. |
| details | string | Comma-separated route detail sets, e.g. 'instruction_details,route_details'. |
| waypoints* | string | Pipe-separated 'lat,lon' waypoints, e.g. '52.5,13.4|52.6,13.5' (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"waypoints",
"mode"
],
"properties": {
"lang": {
"type": "string",
"description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'."
},
"mode": {
"type": "string",
"minLength": 1,
"description": "Travel mode: drive, walk, bicycle, truck, hike, transit, etc. (required)."
},
"units": {
"type": "string",
"description": "Distance units — 'metric' or 'imperial'."
},
"format": {
"type": "string",
"description": "Response format — 'json' (default) or 'geojson'."
},
"details": {
"type": "string",
"description": "Comma-separated route detail sets, e.g. 'instruction_details,route_details'."
},
"waypoints": {
"type": "string",
"minLength": 1,
"description": "Pipe-separated 'lat,lon' waypoints, e.g. '52.5,13.4|52.6,13.5' (required)."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"categories"
],
"properties": {
"bias": {
"type": "string",
"description": "Bias results toward a location, e.g. 'proximity:13.4,52.5'."
},
"lang": {
"type": "string",
"description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'."
},
"name": {
"type": "string",
"description": "Filter places by (partial) name."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max number of results to return."
},
"filter": {
"type": "string",
"description": "Spatial filter, e.g. 'circle:13.4,52.5,1000' or 'rect:...' or 'place:<placeId>'."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pagination offset (skip N results)."
},
"categories": {
"type": "string",
"minLength": 1,
"description": "Comma-separated Geoapify place categories, e.g. 'catering.restaurant,commercial' (required)."
},
"conditions": {
"type": "string",
"description": "Comma-separated conditions, e.g. 'named,internet_access'."
}
}
}