Skip to content

KARTOZA · SPATIAL MCP

Spatial analytics, native to your LLM

A high-performance Model Context Protocol server that lets Claude, Gemini and any MCP-aware client run real geospatial analysis on real GeoJSON — no plumbing, no Python kernel, no cloud account.

Pick your path

  • I want to use it


    Wire the server into Claude Desktop or Gemini CLI, paste in some points, and get clusters back as map-ready polygons.

    User guide

  • I want to extend it


    Add new spatial analytics — buffer, hull, voronoi, nearest neighbour — using the same Go + Orb + Quadtree pattern.

    Developer guide

  • I want to deploy it


    Drop the static binary on any Linux host. Wrap it in a container or a systemd unit. No runtime, no shared libraries.

    DevOps guide

What it does

Kartoza Spatial MCP exposes spatial-analysis tools to any Model Context Protocol client. The first tool, cluster_points, runs DBSCAN with Quadtree acceleration and parallel neighbour search over GeoJSON FeatureCollections and returns the clusters as map-ready polygon circles.

sequenceDiagram
    autonumber
    participant U as You (in Claude / Gemini)
    participant C as MCP Client
    participant S as kartoza-mcp (stdio)
    participant Q as Quadtree + DBSCAN
    U->>C: "Cluster these survey points"
    C->>S: tools/call cluster_points { geojson, eps, minPts }
    S->>Q: index + parallel neighbour search
    Q-->>S: cluster assignments
    S-->>C: FeatureCollection of cluster circles
    C-->>U: rendered map overlay

Why use it

  • Fast by design


    O(N log N) neighbour search via Quadtree, parallelised with Go routines. Cluster thousands of points in milliseconds — entirely in-process.

    Architecture

  • MCP-native


    Speaks Model Context Protocol over stdio. Drop into Claude Desktop, Gemini CLI, ChatGPT, or anything that speaks MCP 2024-11-05.

    MCP protocol notes

  • Single static binary


    Static-linked Go binary with musl — no libgeos, no Python, no Docker needed. Ship it. Run it.

    Deployment

  • Built to extend


    One handler per analytic. Add buffers, hulls, voronoi, isochrones — the Quadtree + Orb stack is ready.

    Add a tool

  • Reproducible Nix shell


    nix develop provisions Go, GEOS, pkg-config, mkdocs — every contributor on the exact same toolchain CI uses.

    Project structure

  • REUSE-compliant


    Every source file carries SPDX headers. Licensing is auditable. Kartoza ships software the EU procurement office can sign off on.

    License

Quickstart in 60 seconds

# Clone and enter the reproducible dev shell.
git clone https://github.com/kartoza/kartoza-mcp.git
cd kartoza-mcp
nix develop

# Build the static binary.
nix run .#build

# Smoke-test against a sample GeoJSON.
./spatial-cluster-static < test.json

Then point Claude Desktop at it — see Configure Claude Desktop.