Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.mapsmith-ai/mapsmith

PYPI · MAPSMITH · 2 COMPONENTS · SCANNED AUG 22

Deterministic GIS geoprocessing for AI agents, with verifiable provenance on every output

37 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 2 of 42 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
Schema Quality & AI Usability0
  • Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.Unverified
Stability & Change Management0
  • Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.Unverified
Tool Coverage0
  • Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.Unverified
Capabilities0
  • Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet.Unverified

Unverified: 4 categories

Categories scored 0 because our sandbox run of this package has not given us the schema these checks need to read. That is a gap on our side rather than a finding about the package, and we only credit what we can confirm, so the score stands at 0 until the capture succeeds. We are working through the fleet, so this normally clears without any action from you. How we score packages →

Install

How do I install the io.github.mapsmith-ai/mapsmith MCP server?

io.github.mapsmith-ai/mapsmith runs locally as a PyPI package, launched with uvx mapsmith. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · mapsmith

# add to Claude Code
claude mcp add mapsmith-ai-mapsmith -- uvx mapsmith
// .cursor/mcp.json
{
  "mcpServers": {
    "mapsmith-ai-mapsmith": {
      "command": "uvx",
      "args": [
        "mapsmith"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "mapsmith-ai-mapsmith": {
      "command": "uvx",
      "args": [
        "mapsmith"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add mapsmith-ai-mapsmith -- uvx mapsmith
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mapsmith-ai-mapsmith": {
      "type": "local",
      "command": [
        "uvx",
        "mapsmith"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add mapsmith-ai-mapsmith --command uvx --arg mapsmith
# ~/.hermes/config.yaml
mcp_servers:
  mapsmith-ai-mapsmith:
    command: "uvx"
    args: ["mapsmith"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "mapsmith-ai-mapsmith": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "mapsmith"
      ]
    }
  }
}
# add to Vellum
assistant mcp add mapsmith-ai-mapsmith -t stdio -c uvx -a mapsmith
// mcp.json
{
  "mcpServers": {
    "mapsmith-ai-mapsmith": {
      "command": "uvx",
      "args": [
        "mapsmith"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 22 Aug 26 −28
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Capabilities: pass → unverified functional
    • Package version: 0.2.1 → 0.2.2 functional
  • 20 Aug 26 65

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 22 Aug 2026 · Analysed pypi/mapsmith@0.2.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build
Dependencies 42 packages
Packages resolved 42
Stale 2
Tree resolution Complete
MCP tools · 16 exposed · ~1,768 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
buffer_layer ~107

Buffer all features by a distance in meters. Geographic-CRS inputs are reprojected to an estimated UTM zone for the metric operation and back; the decision is recorded in the provenance manifest. A `warnings` key in the result flags a suspicious-but-valid outcome with a hint — e.g. a negative distance that eroded every geometry away.

NameTypeReqDescription
distance_metersnumberyes
input_pathstringyes
output_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

clip_layer ~97

Clip a layer to the area of a mask layer. CRS are aligned automatically. A `warnings` key in the result means the analysis ran but something is worth your attention (typically an empty result, or inputs whose extents do not overlap); each entry carries a hint. Inputs without a CRS are refused.

NameTypeReqDescription
input_pathstringyes
mask_pathstringyes
output_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

describe_dataset ~46

Inspect a vector dataset: CRS, geometry types, schema, extent, feature count. Call this before any analysis on a dataset you have not inspected yet.

NameTypeReqDescription
pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

execute_plan ~176

Validate, then execute a geoprocessing plan step by step. The plan is re-validated first (an invalid plan runs nothing). Steps run in order; "$step_id" references resolve to the outputs of earlier steps. Every step writes its own provenance manifest, and a plan-level manifest (<last output>.plan.json, with the plan sha256 and per-step outcomes) ties them together. Execution stops at the first failing step; outputs already produced stay on disk with their manifests. Same plan format as validate_plan — validate first, then execute. A `step_warnings` key in the response means the plan ran but some step produced a suspicious result (an empty output, non-overlapping inputs): read it before treating a completed plan as a correct one.

NameTypeReqDescription
planyes

Structured output declared, but exposes no named fields.

No examples provided.

flow_accumulation ~107

D8 flow accumulation from a DEM (GeoTIFF in/out). Depressions are filled first. out_type: 'cells' (upslope cell count, includes the cell itself) or 'sca' (specific catchment area). log_transform=True for visualization-friendly values. Requires the [whitebox] extra.

NameTypeReqDescription
dem_pathstringyes
log_transformboolean
out_typestring
output_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_provenance ~30

Return the full lineage manifest of a MapSmith output dataset.

NameTypeReqDescription
output_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

hillshade ~115

Shaded relief from a DEM: GeoTIFF in, GeoTIFF out (values scaled 0-32767). azimuth = sun direction in degrees (default 315, NW); altitude = sun angle above the horizon (default 30). DEMs without a CRS are rejected. Requires the [whitebox] extra.

NameTypeReqDescription
altitudenumber
azimuthnumber
dem_pathstringyes
output_pathstringyes
z_factornumber

Structured output declared, but exposes no named fields.

No examples provided.

list_operations ~119

Search the catalog of available and planned operations (progressive discovery). Describe what you need in plain words (e.g. 'statistics of a raster inside polygons') and results come back ranked by relevance (BM25). Compact entries by default; detail=True adds parameters and worked example calls — use it on the exact operation name before calling an unfamiliar tool. Empty query lists the whole catalog including planned (not yet available) operations.

NameTypeReqDescription
detailboolean
limitinteger
querystring
NameTypeReqDescription
resultarrayyes

No examples provided.

preview_map ~125

Show datasets on the interactive in-chat map panel (MCP Apps). Pass the paths of one or more MapSmith outputs or source datasets (vector or GeoTIFF). Layers are previewed in EPSG:4326 with simplified geometry and capped feature counts sized to fit client limits; each layer card shows its provenance summary and verification status. Read-only: the datasets of record stay on disk. On clients without MCP Apps support the same payload is returned as structured data.

NameTypeReqDescription
max_featuresinteger
pathsarrayyes

Structured output declared, but exposes no named fields.

No examples provided.

reproject_layer ~111

Reproject a layer to a target CRS, e.g. 'EPSG:32632' or a WKT string. Inputs without a CRS are refused. Geometry passes through unchanged, so an invalid input yields an invalid output: mechanically broken geometry is repaired deterministically and reported in a `repairs` key — read it, the geometry type may have changed.

NameTypeReqDescription
input_pathstringyes
output_pathstringyes
target_crsstringyes

Structured output declared, but exposes no named fields.

No examples provided.

run_sql ~76

Run spatial SQL (DuckDB dialect, ST_* functions, read_parquet/ST_Read for files). Without output_path: returns up to 50 preview rows. With output_path (.parquet): materializes the full result as GeoParquet with a provenance manifest.

NameTypeReqDescription
output_pathstring
querystringyes

Structured output declared, but exposes no named fields.

No examples provided.

server_info ~18

MapSmith version, licensing, and available engines.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

spatial_join ~134

Join by spatial predicate (intersects/within/contains). engine='auto' routes to the fastest available engine for the inputs: SedonaDB (heavy joins, 10-180x) > DuckDB (GeoParquet fast path) > GeoPandas. A `warnings` key in the result flags an empty join or inputs whose extents do not overlap, each with a hint. Inputs without a CRS are refused.

NameTypeReqDescription
enginestring
left_pathstringyes
output_pathstringyes
predicatestring
right_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

validate_plan ~259

Statically validate a multi-step geoprocessing plan BEFORE running anything. Write the plan as steps in execution order; each step has a unique id, an operation name from list_operations, and its arguments. Use "$step_id" as an argument value to consume the output dataset of an earlier step. Checks: operations exist and are installed, arguments complete and well-typed, references resolve backwards (mis-ordered steps are rejected), input files exist, outputs don't collide, and CRS flow is simulated end-to-end from the real input files. Returns machine-actionable errors/warnings/notes plus the simulated output CRS per step. Nothing is executed and nothing is written. Example plan: {"goal": "wells at risk", "steps": [ {"id": "buf", "operation": "buffer_layer", "arguments": {"input_path": "wells.gpkg", "distance_meters": 300, "output_path": "buf.parquet"}}, {"id": "cut", "operation": "clip_layer", "arguments": {"input_path": "$buf", "mask_path": "zone.gpkg", "output_path": "risk.parquet"}}]}

NameTypeReqDescription
planyes

Structured output declared, but exposes no named fields.

No examples provided.

watershed ~100

Watershed of each pour point: DEM + points in, basin raster out (GeoTIFF). Basins get 1-based IDs following the pour-point feature order; cells not draining to any point stay nodata. Points are aligned to the DEM CRS automatically (decision recorded). Requires the [whitebox] extra.

NameTypeReqDescription
dem_pathstringyes
output_pathstringyes
pour_points_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

zonal_statistics ~148

Statistics of a raster within each vector zone (exact fractional pixel coverage). stats: subset of count/sum/mean/median/min/max/stdev/variance/majority/minority/ variety (default: count, mean, min, max). Zones are aligned to the raster CRS automatically; the decision is recorded in the provenance manifest. Zones without a CRS are refused; `warnings` and `repairs` keys in the result flag a suspicious outcome or geometry MapSmith had to repair. Requires the [raster] extra.

NameTypeReqDescription
output_pathstringyes
raster_pathstringyes
stats
zones_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the io.github.mapsmith-ai/mapsmith MCP server?

io.github.mapsmith-ai/mapsmith is an MCP server listed in the public MCP registry as io.github.mapsmith-ai/mapsmith. Deterministic GIS geoprocessing for AI agents, with verifiable provenance on every output. This page covers its PyPI package (mapsmith).

Is the io.github.mapsmith-ai/mapsmith MCP server safe to use?

io.github.mapsmith-ai/mapsmith scores 37 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 22 August 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.mapsmith-ai/mapsmith MCP server expose?

io.github.mapsmith-ai/mapsmith exposes 16 tools: describe_dataset, buffer_layer, clip_layer, reproject_layer, spatial_join, and 11 more. Their descriptions and schemas cost roughly 1,768 tokens of context every time the server is loaded.

Is the io.github.mapsmith-ai/mapsmith MCP server still maintained?

io.github.mapsmith-ai/mapsmith is still listed as active in the MCP registry. We last reached this channel on 22 August 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.