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

OCI · GHCR.IO/MAPSMITH-AI/MAPSMITH:0.2.2 · 2 COMPONENTS · SCANNED AUG 22

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

38 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 Security0
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (AGPL-3.0).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability80
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 1949 tokens (~114/item across 17 items; 16 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass

Unverified: 2 categories

Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

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

io.github.mapsmith-ai/mapsmith runs locally as a container image, launched with docker run --rm -i ghcr.io/mapsmith-ai/mapsmith:0.2.2. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/mapsmith-ai/mapsmith:0.2.2

# add to Claude Code
claude mcp add mapsmith-ai-mapsmith -- docker run --rm -i ghcr.io/mapsmith-ai/mapsmith:0.2.2
// .cursor/mcp.json
{
  "mcpServers": {
    "mapsmith-ai-mapsmith": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/mapsmith-ai/mapsmith:0.2.2"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "mapsmith-ai-mapsmith": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/mapsmith-ai/mapsmith:0.2.2"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add mapsmith-ai-mapsmith -- docker run --rm -i ghcr.io/mapsmith-ai/mapsmith:0.2.2
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mapsmith-ai-mapsmith": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/mapsmith-ai/mapsmith:0.2.2"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  mapsmith-ai-mapsmith:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/mapsmith-ai/mapsmith:0.2.2"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "mapsmith-ai-mapsmith": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/mapsmith-ai/mapsmith:0.2.2"
      ]
    }
  }
}
// mcp.json
{
  "mcpServers": {
    "mapsmith-ai-mapsmith": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/mapsmith-ai/mapsmith:0.2.2"
      ]
    }
  }
}
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 38

    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 oci/ghcr.io/mapsmith-ai/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 oci
Reason No attestation published
MCP tools · 16 exposed · ~1,830 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 ~111

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 ~100

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 ~48

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 ~185

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 ~111

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 ~119

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 ~124

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 ~129

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 ~115

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 ~79

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 ~139

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 ~267

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 ~102

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 ~153

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 container image (ghcr.io/mapsmith-ai/mapsmith:0.2.2).

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

io.github.mapsmith-ai/mapsmith scores 38 out of 100 on VerifyMCP. 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,830 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.

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

io.github.mapsmith-ai/mapsmith declares the AGPL-3.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.