MapSmith is a professional-grade GIS geoprocessing system that provides deterministic geospatial analysis capabilities to AI agents through MCP (Model Context Protocol), and generates a verifiable provenance manifest for every output.
Purpose
The core purpose of MapSmith is to answer geospatial questions and provide reproducible, auditable analysis records. Users can ask questions to an AI agent in natural language, for example, "Which parcels are within 1.5 kilometers of a river and at an elevation of 120 meters or below? Give the average elevation and ground area of each parcel." MapSmith parses the question, plans a multi-step operation plan, validates the plan before running it, executes it in the correct order, and records the inputs, parameters, CRS decisions, and check results of each step.
Main capabilities
MapSmith supports a variety of geoprocessing operations, including buffering, overlay, reprojection, zonal statistics, terrain and hydrological analysis, etc., with 78 operations provided in the catalog. A plan consists of multiple operations, and the order of operations must be correct; if a step reads data that is only produced by a later step, the plan will be rejected. When each dataset is output, a provenance manifest is generated on disk, containing input checksums, exact parameters, CRS decisions and rationale, engine versions, and deterministic checks on the results. The manifest follows a public JSON Schema specification, includes a specification version, validation tools, and a dependency-free validator, and can be read and rerun by third-party implementations.
The execution engines include GeoPandas, DuckDB Spatial, exactextract, and Whitebox Workflows; the model itself does not perform geoprocessing operations. MapSmith also provides get_provenance to obtain the complete record of a single-step operation, and get_lineage to trace the entire analysis chain from the final file, restoring the data flow through content hashes and input summaries, without relying on filenames or field references between records.
How to use
Users can point any MCP client (such as Claude Desktop, Claude Code, Cursor, VS Code) to MapSmith and connect via stdio. Docker installation is recommended, and the server is restricted to the directories mounted by the user. It can also be run with uvx, or added via a one-click install command in VS Code. The Docker image includes the raster and whitebox extensions; when using uvx,you can choose extensions yourself. Docker or uvx are the only supported installation paths.
Applicable scenarios
Suitable for scenarios requiring reproducible, auditable geospatial analysis, such as parcel screening, distance analysis, elevation statistics, terrain and hydrological analysis, etc. It is especially suitable for situations where the analysis process needs to be demonstrated to others, or where it needs to be rerun to confirm the results.
Limitations
MapSmith will not execute questions it cannot answer correctly; for example, when the data grids are too far apart or the resolutions do not match, it will refuse to give a number rather than give an unreliable result. Installation only supports Docker or uvx, because maintaining geospatial native dependencies across three operating systems is difficult. The Docker image is only built for the amd64 architecture and runs through emulation on Apple Silicon. There are behavior changes and provenance key name adjustments between some versions; refer to the changelog.