# mapsmith-ai/MapSmith

Source: https://glimind.com/server/awesome%2Fmapsmith-ai%2Fmapsmith
Registry id: `awesome/mapsmith-ai/mapsmith`
Status: unknown

## Tools (28)

- `aspect`: Downslope azimuth from a DEM, 0 = north; flat cells are −1, not nodata ([whitebox] extra)
- `buffer_layer`: Metric buffer with automatic UTM estimation for geographic CRS
- `centroid_layer`: Geometric centroids computed in a metric CRS, never on degrees (decision recorded)
- `clip_layer`: Clip a layer with a mask layer
- `convert_format`: Convert between GeoParquet/GeoPackage/GeoJSON by output extension, re-read and verified (count and CRS). Refuses shapefile and non-WGS84 GeoJSON
- `describe_dataset`: CRS, schema/bands, extent, nodata and statistics of any vector or raster dataset
- `dissolve_layer`: Merge features per key; the aggregation is recorded in the manifest and the group count verified
- `execute_plan`: Validate then run a plan step by step, with per-step provenance and a plan-level manifest
- `explode_layer`: Multi-part to single-part, with the part count verified in closed form
- `flow_accumulation`: D8 flow accumulation with automatic depression filling ([whitebox] extra)
- `get_provenance`: Return the manifest of any MapSmith output: one operation, its inputs and their digests, and what was checked
- `hillshade`: Shaded relief from a DEM, in-memory Whitebox engine ([whitebox] extra)
- `list_operations`: Catalog search: narrows on what you declare, then returns the surviving set to choose from or a ranking by engine; detail=true returns parameters and worked exa
- `measure_area`: Area in m², always: ground on the ellipsoid, or planar converted with the CRS's own declared linear unit. Invalid rings repaired before measuring
- `merge_layers`: Append layers (schema union); null-filled columns are named in the manifest, the count verified against the sum
- `nearest_join`: Nearest neighbour with the distance in meters, UTM-measured on geographic CRS (decision recorded)
- `overlay_layers`: Set-theoretic overlay (intersection/union/difference/…); dropped lower-dimension pieces are declared in the manifest
- `preview_map`: Interactive in-chat map (MCP Apps) of any datasets, with a provenance card and verification status per layer
- `reproject_layer`: Reproject to any CRS (EPSG code or WKT)
- `run_operation`: Run any catalog operation by name, including those with no tool of their own; arguments validated against the catalog before anything runs
- `run_sql`: Spatial SQL (DuckDB dialect) over GeoParquet and GDAL formats
- `server_info`: Version, license, available engines
- `simplify_layer`: Douglas-Peucker with the drift measured: area/length before and after recorded in the manifest
- `slope`: Slope gradient from a DEM in degrees, percent or radians; geographic-CRS DEMs refused ([whitebox] extra)
- `spatial_join`: Join by spatial predicate, auto-routed to the fastest engine (SedonaDB > DuckDB > GeoPandas)
- `validate_plan`: Statically validate a multi-step plan before running anything: operations, arguments, references, input files, simulated CRS flow
- `watershed`: Watershed delineation from a DEM and pour points ([whitebox] extra)
- `zonal_statistics`: Raster statistics per vector zone with exact fractional pixel coverage ([raster] extra)

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
