# Geoapify — how to use (mcp.ai)

Connect your Geoapify account and use 25 tools for developer tools straight from your AI agent. Connect with your own API key. Geoapify offers a suite of APIs for integrating maps, geocoding, routing, and other location-based services into applications.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_geoapify?ms=1787291280000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `geoapify_address_autocomplete`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/geoapify`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/geoapify/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/geoapify/address/autocomplete` — Tool to fetch address suggestions based on partial input. Use when you need to get predictive suggestions from incomplete address text.
  - body: { bias?: string, lang?: string, text: string, type?: string, limit?: integer, filter?: string, format?: string }
- `POST https://api.mcp.ai/api/geoapify/batch/requests` — Create or retrieve asynchronous batch processing jobs for geocoding, reverse geocoding, routing, or isoline APIs. Use cases: - Batch geocode up to 1000 addresses at once (forward geocoding) - Batch re
  - body: { id?: string, api?: string, body?: object, inputs?: object[], params?: object }
- `POST https://api.mcp.ai/api/geoapify/boundaries` — Retrieve all administrative boundaries that contain a given location. Returns hierarchical boundaries (suburb, city, county, state, country) as GeoJSON features. Use this to find what administrative a
  - body: { id?: string, lat?: number, lon?: number, lang?: string, geometry?: string, boundaries?: string }
- `POST https://api.mcp.ai/api/geoapify/create/batch/forward/geocode/job` — Tool to create a batch forward geocoding job for up to 1000 addresses. Use when you need to geocode multiple addresses asynchronously. Returns a job ID for retrieving results once processing is comple
  - body: { bias?: string, lang?: string, type?: string, filter?: string, addresses: string[] }
- `POST https://api.mcp.ai/api/geoapify/create/batch/reverse/geocode/job` — Tool to create a batch reverse geocoding job that converts multiple lat/lon coordinates into addresses asynchronously. Use when you need to reverse geocode multiple coordinates (up to 1000) in one req
  - body: { lang?: string, type?: string, locations: object[] }
- `POST https://api.mcp.ai/api/geoapify/forward/geocoding` — Tool to convert an address into geographic coordinates. Use when you need latitude and longitude from an address.
  - body: { bias?: string, city?: string, lang?: string, name?: string, text?: string, type?: string, limit?: integer, state?: string, apiKey?: string, filter?: string, format?: string, street?: string, country?: string, postcode?: string, housenumber?: string }
- `POST https://api.mcp.ai/api/geoapify/geometry` — Tool to perform geometric operations on stored polygon geometries. Use when combining or intersecting multiple stored geometries.
  - body: { id: string[], operation: string }
- `POST https://api.mcp.ai/api/geoapify/get/batch/forward/geocode/results` — Tool to retrieve batch forward geocoding job results using the job ID. Use when you need to fetch geocoded addresses from a previously submitted batch job. Results available in JSON or CSV format. Job
  - body: { id: string, format?: string }
- `POST https://api.mcp.ai/api/geoapify/get/batch/reverse/geocode/results` — Tool to retrieve batch reverse geocoding job results. Use when you have a batch job ID from creating a batch reverse geocoding job and want to fetch the completed results.
  - body: { id: string, format?: string }
- `POST https://api.mcp.ai/api/geoapify/get/boundaries/consists/of` — Get boundaries that a specified location consists of. Returns child administrative divisions (states for country, districts for city). Useful for drilling down into sub-regions.
  - body: { id: string, lang?: string, geometry?: string }
- `POST https://api.mcp.ai/api/geoapify/get/map/style` — Tool to retrieve vector map style JSON for MapLibre GL and Mapbox GL. Returns a Mapbox-compatible style specification for rendering vector tiles.
  - body: { style: string }
- `POST https://api.mcp.ai/api/geoapify/get/static/map` — Tool to generate static map images with customizable style, size, center, zoom, markers, and geometries. Use when you need a map image for display or printing.
  - body: { area?: string, zoom?: integer|number, style: string, width: integer, center?: string, format?: string, height: integer, marker?: string, geojson?: string, geometry?: string, scaleFactor?: integer }
- `POST https://api.mcp.ai/api/geoapify/ip/geolocation` — Lookup geographic location information for an IP address. Returns city-level location data including country, region, city, coordinates, and additional metadata like currency and language. If no IP is
  - body: { ip?: string }
- `POST https://api.mcp.ai/api/geoapify/isoline` — Tool to generate isochrone or isodistance isolines. Use when visualizing reachable areas from a point; use `id` to poll ongoing calculations.
  - body: { id?: string, lat?: number, lon?: number, mode?: string, type?: string, avoid?: string, range?: integer|integer[], units?: string, traffic?: string, max_speed?: integer, route_type?: string }
- `POST https://api.mcp.ai/api/geoapify/list/postcodes` — Tool to list postcodes within a specified area or boundary. Use when you need to retrieve multiple postcodes in a geographic region using filters like circle, rectangle, or place ID.
  - body: { limit?: integer, filter: string, countrycode?: string }
- `POST https://api.mcp.ai/api/geoapify/map/matching` — Snap GPS traces to the road network for accurate route reconstruction. Use this tool to: - Correct GPS drift and inaccuracies in recorded tracks - Align vehicle/cycling/walking traces to actual roads 
  - body: { mode: string, waypoints: object[] }
- `POST https://api.mcp.ai/api/geoapify/map/tiles` — Tool to fetch raster map tiles or style JSON from Geoapify. Use when rendering custom maps with specific styles.
  - body: { x?: integer, y?: integer, z?: integer, mode?: string, style: string, apiKey: string, retina?: boolean }
- `POST https://api.mcp.ai/api/geoapify/marker/icon` — Generate custom map marker icons as PNG images. Creates customizable marker icons for use in mapping applications (Leaflet, MapLibre GL, Google Maps, etc.). Supports multiple styles (material, circle,
  - body: { icon?: string, size?: integer, text?: string, type?: string, color?: string, iconType?: string, noShadow?: boolean, contentSize?: integer, scaleFactor?: integer, shadowColor?: string, strokeColor?: string, contentColor?: string, noWhiteCircle?: boolean }
- `POST https://api.mcp.ai/api/geoapify/place/details` — Tool to retrieve detailed information about a specific place. Use when you have a place ID or coordinates and need comprehensive metadata.
  - body: { id?: string, lat?: number, lon?: number, lang?: string, features?: string }
- `POST https://api.mcp.ai/api/geoapify/places` — Search for points of interest (POIs) like restaurants, hotels, attractions, hospitals, etc. within a geographic area. Use this tool when you need to find places by category near a location. You must p
  - body: { bias?: string, lang?: string, name?: string, limit?: integer, filter?: string, offset?: integer, categories: string[], conditions?: string[] }
- `POST https://api.mcp.ai/api/geoapify/postcode` — Tool to retrieve postcode information for a location. Use when you need to fetch postcode details based on a given postcode or geographic coordinates.
  - body: { lat?: number, lon?: number, lang?: string, format?: string, geometry?: string, postcode?: string, countrycode?: string }
- `POST https://api.mcp.ai/api/geoapify/reverse/geocoding` — Tool to reverse geocode coordinates into a structured address. Use when converting lat/lon to human-readable addresses.
  - body: { lat: number, lon: number, lang?: string, type?: string, limit?: integer, format?: string }
- `POST https://api.mcp.ai/api/geoapify/route/matrix` — Tool to compute travel time and distance matrices. Use when you need durations and distances between multiple origin and destination pairs.
  - body: { mode?: string, type?: string, avoid?: object[], units?: string, apiKey: string, sources: object[], targets: object[], traffic?: string, max_speed?: number }
- `POST https://api.mcp.ai/api/geoapify/route/planner` — Optimize multi-agent routes for deliveries, pickups, and service jobs. Solves Vehicle Routing Problems (VRP) including: Travelling Salesman (TSP), Capacitated VRP, VRP with Time Windows, and Pickup-De
  - body: { jobs?: object[], mode?: string, type?: string, avoid?: object[], units?: string, agents?: object[], traffic?: string, locations?: object[], max_speed?: number, shipments?: object[] }
- `POST https://api.mcp.ai/api/geoapify/routing` — Tool to calculate routes between multiple waypoints. Use when you need both distance, time, and turn-by-turn directions for two or more coordinates.
  - body: { lang?: string, mode?: string, type?: string, avoid?: string, units?: string, format?: string, details?: string, traffic?: string, max_speed?: integer, waypoints: string }

## Example prompts
- "What can I do in Geoapify?"
- "Show me a summary of my Geoapify account"

## More
- Page: https://mcp.ai/geoapify
- Agent spec (llms.txt): https://mcp.ai/geoapify/llms.txt
- Postman collection: https://mcp.ai/geoapify/postman.json
