Geospatial tools for
AI agents and coding agents
Two surfaces, one platform. MCP for runtime tool use inside Claude, ChatGPT, and other chat-first agents. KxCLI for AI coding tools and CI — a thin, context-cheap wrapper around the Koordinates publish/manage API.
Below: the MCP tool surface first, then KxCLI for builders.
Six tools. One protocol.
find_datasets
Search the catalog by keyword, bounding box, or data type. Returns metadata, layer IDs, and access URLs.
geocode_address
Convert addresses and place names to coordinates. Supports NZ, AU, and international geocoding.
find_features_near_point
Spatial query: find features from any vector layer within a radius of a coordinate. Returns GeoJSON.
fetch_tabular_data
Query a layer's attribute data with filters. Paginated results. Supports CQL-style filtering.
get_mapviewer_widget
Render an interactive map with styled layers, match rules, and custom extents. Returns a shareable URL.
get_layers_by_ids
Fetch full metadata for specific layers by ID. Returns schema, CRS, extent, and access details.
Connect in minutes
Add KxAI to your MCP config. No SDK, no API wrapper, no boilerplate. One URL, SSE transport, instant access to geospatial tools.
Works with Claude Desktop, ChatGPT, or any MCP-compatible client.
{
"mcpServers": {
"kxai": {
"url": "https://yoursite.koordinates.com/services/mcp",
"transport": "sse"
}
}
} Works where your team already works
Claude
Anthropic's AI assistant. Native MCP support. KxAI tools available as a connector.
ChatGPT
OpenAI's assistant. Connect via MCP plugin. Same tools, same governance.
Custom Agents
Build your own. MCP client libraries in Python and TypeScript. Full tool schema available.
A CLI shaped for AI coding tools
The Koordinates publish and management API is broad. Pasting the full
OpenAPI spec into a coding agent burns thousands of tokens before any
work gets done. KxCLI is the
curated surface: a small set of verbs, JSON-out by default,
--help-discoverable, and built to be wrapped in your own scripts and hooks.
Why a CLI, not just MCP
MCP is the right surface for chat-first agents at runtime. KxCLI is the right surface when an agent is building with the platform — CI pipelines, Claude Code skills, Cursor hooks, scheduled jobs. Stateless, pipeable, scriptable, and constrained to what you let it do.
Every command supports --json output for clean parsing and --dry-run for safe agent loops.
# Install $ brew install koordinates/tap/kx $ kx login # Publish a new layer from a GeoJSON file $ kx layer create --from parcels.geojson \ --title "Auckland Parcels 2026" --license cc-by → layer 48291 created, draft # Apply a saved style, then publish $ kx style apply 48291 --from styles/parcels.json $ kx layer publish 48291 --json → {"id":48291,"status":"published","url":"..."}
Build controlled tooling on top
Wrap KxCLI in your own scripts and hand the wrapper to your team's coding agents. The agent sees ten verbs, not two hundred endpoints — reviewable, testable, and constrained by your policy.
Claude Code skills
Register a KxCLI wrapper as a skill. The agent gets a tight tool surface scoped to your team's data.
Cursor / IDE agents
Drop a .kxrc in the repo. Agents pick up the same auth and scope your devs use locally.
CI & scheduled jobs
Publish layers, roll styles, rotate tokens from GitHub Actions, GitLab CI, or a cron. JSON in, JSON out.
MCP or KxCLI?
| If your agent is… | Reach for |
|---|---|
| Chatting with an end user, calling tools at runtime | MCP |
| Coding in an IDE, writing scripts, opening PRs | KxCLI |
| Running in CI, batch jobs, scheduled tasks | KxCLI |
| Answering a one-off geospatial question in chat | MCP |
| Publishing or managing data on the platform | KxCLI |
| Both. They share auth, scopes, and audit trail. | MCP + KxCLI |
Same governance layer underneath. KxAI audits both surfaces.