Geoapify MCP by usefulapi

Geocode, reverse-geocode, autocomplete, route and search places.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
99%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,090Tokens (tool definitions)
~2.1 KBTypical response size
Moderate attention impact (1.63% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "geoapify": {
      "url": "https://geoapify.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://geoapify.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢geoapify_geocode_search(text, limit, filter, bias, type, ...)

Forward geocoding — turn a free-form address or place name into coordinates and structured address parts. Geoapify REST: GET /v1/geocode/search.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "description": "The free-form address or place name to geocode (required)."
    },
    "limit": {
      "description": "Max number of results to return.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "filter": {
      "description": "Spatial filter, e.g. 'countrycode:de' or 'rect:lon1,lat1,lon2,lat2'.",
      "type": "string"
    },
    "bias": {
      "description": "Bias results toward a location, e.g. 'proximity:13.4,52.5'.",
      "type": "string"
    },
    "type": {
      "description": "Restrict to a location type, e.g. 'city', 'street', 'amenity', 'postcode'.",
      "type": "string"
    },
    "lang": {
      "description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'.",
      "type": "string"
    },
    "format": {
      "description": "Response format — 'json' (default) or 'geojson'.",
      "type": "string"
    }
  },
  "required": [
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢geoapify_geocode_reverse(lat, lon, limit, type, lang, ...)

Reverse geocoding — turn coordinates into the nearest address / place. Geoapify REST: GET /v1/geocode/reverse.

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "description": "Latitude (required)."
    },
    "lon": {
      "type": "number",
      "description": "Longitude (required)."
    },
    "limit": {
      "description": "Max number of results to return.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "type": {
      "description": "Restrict to a location type, e.g. 'city', 'street', 'amenity'.",
      "type": "string"
    },
    "lang": {
      "description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'.",
      "type": "string"
    },
    "format": {
      "description": "Response format — 'json' (default) or 'geojson'.",
      "type": "string"
    }
  },
  "required": [
    "lat",
    "lon"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢geoapify_geocode_autocomplete(text, limit, filter, bias, type, ...)

Address autocomplete — suggest completed addresses/places for a partial query, ideal for as-you-type inputs. Geoapify REST: GET /v1/geocode/autocomplete.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "description": "The partial address or place text to complete (required)."
    },
    "limit": {
      "description": "Max number of results to return.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "filter": {
      "description": "Spatial filter, e.g. 'countrycode:de' or 'rect:lon1,lat1,lon2,lat2'.",
      "type": "string"
    },
    "bias": {
      "description": "Bias results toward a location, e.g. 'proximity:13.4,52.5'.",
      "type": "string"
    },
    "type": {
      "description": "Restrict to a location type, e.g. 'city', 'street', 'amenity', 'postcode'.",
      "type": "string"
    },
    "lang": {
      "description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'.",
      "type": "string"
    },
    "format": {
      "description": "Response format — 'json' (default) or 'geojson'.",
      "type": "string"
    }
  },
  "required": [
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢geoapify_places(categories, conditions, filter, bias, name, ...)

Search for places (POIs) by category within an area, optionally filtered by name/conditions. Returns a GeoJSON FeatureCollection. Geoapify REST: GET /v2/places.

Input Schema

{
  "type": "object",
  "properties": {
    "categories": {
      "type": "string",
      "minLength": 1,
      "description": "Comma-separated Geoapify place categories, e.g. 'catering.restaurant,commercial' (required)."
    },
    "conditions": {
      "description": "Comma-separated conditions, e.g. 'named,internet_access'.",
      "type": "string"
    },
    "filter": {
      "description": "Spatial filter, e.g. 'circle:13.4,52.5,1000' or 'rect:...' or 'place:<placeId>'.",
      "type": "string"
    },
    "bias": {
      "description": "Bias results toward a location, e.g. 'proximity:13.4,52.5'.",
      "type": "string"
    },
    "name": {
      "description": "Filter places by (partial) name.",
      "type": "string"
    },
    "limit": {
      "description": "Max number of results to return.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Pagination offset (skip N results).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "lang": {
      "description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'.",
      "type": "string"
    }
  },
  "required": [
    "categories"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢geoapify_place_details(id, lat, lon, features, lang)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "description": "The Geoapify place id (pass the `place_id` value from geoapify_places).",
      "type": "string"
    },
    "lat": {
      "description": "Latitude (use with `lon` instead of `id`).",
      "type": "number"
    },
    "lon": {
      "description": "Longitude (use with `lat` instead of `id`).",
      "type": "number"
    },
    "features": {
      "description": "Comma-separated detail feature sets, e.g. 'details,building,geometry'.",
      "type": "string"
    },
    "lang": {
      "description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢geoapify_routing(waypoints, mode, details, lang, units, ...)

Compute a route between waypoints for a travel mode, returning distance, time and legs. Geoapify REST: GET /v1/routing.

Input Schema

{
  "type": "object",
  "properties": {
    "waypoints": {
      "type": "string",
      "minLength": 1,
      "description": "Pipe-separated 'lat,lon' waypoints, e.g. '52.5,13.4|52.6,13.5' (required)."
    },
    "mode": {
      "type": "string",
      "minLength": 1,
      "description": "Travel mode: drive, walk, bicycle, truck, hike, transit, etc. (required)."
    },
    "details": {
      "description": "Comma-separated route detail sets, e.g. 'instruction_details,route_details'.",
      "type": "string"
    },
    "lang": {
      "description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'.",
      "type": "string"
    },
    "units": {
      "description": "Distance units — 'metric' or 'imperial'.",
      "type": "string"
    },
    "format": {
      "description": "Response format — 'json' (default) or 'geojson'.",
      "type": "string"
    }
  },
  "required": [
    "waypoints",
    "mode"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢geoapify_isoline(lat, lon, type, mode, range, ...)

Compute a reachability isoline (isochrone/isodistance) — the area reachable from a point within a time or distance budget. Geoapify REST: GET /v1/isoline.

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "description": "Origin latitude (required)."
    },
    "lon": {
      "type": "number",
      "description": "Origin longitude (required)."
    },
    "type": {
      "type": "string",
      "enum": [
        "time",
        "distance"
      ],
      "description": "Isoline type — 'time' (seconds) or 'distance' (meters) (required)."
    },
    "mode": {
      "type": "string",
      "minLength": 1,
      "description": "Travel mode: drive, walk, bicycle, etc. (required)."
    },
    "range": {
      "type": "number",
      "description": "Budget for the isoline — seconds if type=time, meters if type=distance (required)."
    },
    "traffic": {
      "description": "Traffic model for driving, e.g. 'free_flow' or 'approximated'.",
      "type": "string"
    },
    "lang": {
      "description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'.",
      "type": "string"
    }
  },
  "required": [
    "lat",
    "lon",
    "type",
    "mode",
    "range"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢geoapify_ip_geolocation(ip, lang)

Look up the approximate location (country, city, coordinates) of an IP address. Geoapify REST: GET /v1/ipinfo.

Input Schema

{
  "type": "object",
  "properties": {
    "ip": {
      "type": "string",
      "minLength": 1,
      "description": "The IPv4/IPv6 address to locate (required)."
    },
    "lang": {
      "description": "Result language as an ISO 639-1 code, e.g. 'en', 'de', 'fr'.",
      "type": "string"
    }
  },
  "required": [
    "ip"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools