Mapsmith logo

Mapsmith

Deterministic vector and raster geoprocessing with CRS-aware execution, validation, and verifiable provenance manifests.

Install Mapsmith

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "mapsmith": {
      "command": "uvx",
      "args": [
        "mapsmith"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

The mapsmith MCP server gives AI agents deterministic tools for vector and raster geoprocessing, including spatial operations, terrain analysis, SQL, and dataset inspection. It validates multi-step plans before execution, records CRS choices and checks, and writes provenance manifests containing inputs, parameters, digests, and verification results. Use it when geospatial outputs need reproducible measurements, explicit coordinate-system decisions, or an auditable record of how they were produced. Optional raster and terrain operations require the documented Python extras for raster processing or Whitebox.

Use cases

  • Inspect geospatial datasets before analysis
  • Build validated multi-step GIS plans
  • Calculate CRS-aware distances and areas
  • Run spatial SQL over geospatial files
  • Audit outputs with provenance manifests

Key features

  • CRS-aware vector and raster processing
  • Validated multi-step execution plans
  • Provenance manifests with input digests
  • Spatial SQL through DuckDB
  • DEM terrain analysis
  • Interactive map previews

Tools28

What Mapsmith lets your agent do. Expand a tool for its parameters.

Self-reported~811 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

7/7 checks healthy over the last 40d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 12d ago via OSV.dev · mapsmith (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars2Stargazers on the source repository.
Last commit9d agoMost recent push to the default branch.
Tools exposed28Callable tools this server registers over MCP.

How Mapsmith works

What mapsmith MCP server does

The mapsmith MCP server exposes geospatial analysis through MCP for vector datasets, raster datasets, and multi-step workflows. It can inspect metadata, transform and combine layers, calculate measurements, run spatial SQL, and perform terrain analysis from digital elevation models. Operations are executed by geospatial engines rather than by the language model.

Results are accompanied by provenance information. A manifest records the input datasets and their digests, operation parameters, CRS decisions, engine information, and checks applied to the output. The get_provenance tool retrieves this record for a MapSmith output, while preview_map can display datasets in an interactive in-chat map with provenance and verification status for each layer.

How it works

A workflow can be run as individual operations or as a declared plan. validate_plan checks operations, arguments, references, input files, and simulated CRS flow before processing starts. execute_plan performs the validated steps in order and returns per-step provenance plus a plan-level manifest. Plans can contain references to earlier outputs, but malformed ordering and other structural problems are rejected before files are processed.

Metric operations make their coordinate-system handling explicit. Buffering and nearest-neighbour distances use an automatically estimated UTM CRS when the input uses geographic coordinates. Centroids are calculated in a metric CRS, and area measurement uses either ellipsoidal ground area or a planar calculation converted using the CRS's declared linear unit. Decisions and reasons are retained in the manifest.

The catalog tools support discovery as well as execution. list_operations narrows available operations using declared requirements and can return parameters and examples. It supports BM25, embeddings, or automatic ranking. run_operation can execute a catalog operation by name after validating its arguments.

Setup and configuration

The mapsmith MCP server is distributed as a Python package and as a container image, according to the repository badges.

Core vector and raster processing is described separately from optional terrain features. Zonal statistics requires the raster extra. hillshade, slope, aspect, flow_accumulation, and watershed require the whitebox extra. The server_info tool reports the running version, license, and available engines.

Tools and capabilities

Capabilities include:

  • Describe CRS, schema or bands, extent, nodata, and statistics.
  • Buffer, clip, overlay, dissolve, merge, simplify, explode, reproject, and spatially join layers.
  • Perform nearest-neighbour joins and calculate centroids or area.
  • Convert among GeoParquet, GeoPackage, and GeoJSON with output verification.
  • Run DuckDB spatial SQL over GeoParquet and GDAL-supported formats.
  • Calculate exact fractional-pixel zonal statistics and derive DEM hillshade, slope, aspect, flow accumulation, or watersheds.
  • Validate, execute, inspect, and preview multi-step analyses with provenance.

Some conversions are intentionally refused: shapefile output is rejected because field names can be silently truncated, and GeoJSON output is rejected for layers that are not WGS84.

Limitations and notes

The mapsmith MCP server does not silently treat geographic degrees as metric units for operations that require distance, area, or centroid calculations. Geographic-CRS DEMs are refused for slope analysis. Invalid rings are repaired before area measurement, and non-equal-area planar measurements include their ratio against ground area.

Overlay, dissolve, explode, merge, and simplification operations record relevant effects in the manifest, such as dropped lower-dimensional pieces, aggregation details, group counts, part counts, null-filled schema columns, or measurement drift. Flat cells in aspect output use -1 rather than nodata. Terrain processing depends on the optional Whitebox extra, and zonal statistics depends on the optional raster extra.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Mapsmith

mapsmith is an MCP server that connects AI agents to vector and raster geospatial data. Its main tools inspect datasets, perform spatial operations, run DuckDB spatial SQL, analyze DEMs, validate and execute multi-step plans, preview maps, and return provenance manifests describing inputs, parameters, CRS decisions, and verification checks.

Install MapSmith using the repository's current quickstart instructions. Add the `raster` or `whitebox` extra when using the corresponding optional capabilities.

Yes, mapsmith works with raster data for dataset inspection, zonal statistics, and DEM terrain analysis. Zonal statistics requires the `raster` extra, while hillshade, slope, aspect, flow accumulation, and watershed require the `whitebox` extra. DEMs using a geographic CRS are refused for slope calculations.

MapSmith verifies outputs during execution and records the checks in a provenance manifest. Depending on the operation, verification can include feature, group, part, or row counts, CRS checks, conversion re-reads, measurement drift, and declared CRS decisions. Use `get_provenance` to retrieve the manifest for an output.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMapsmith AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/mapsmith?style=directory)](https://allmcps.com/mcp/mapsmith)
HTML Embed
<a href="https://allmcps.com/mcp/mapsmith"><img src="https://allmcps.com/api/badge/mapsmith?style=directory" alt="Mapsmith on AllMCPs" /></a>