muend.
MCP · Secure GIS execution

arcgis-mcp-bridge

100 declarative geoprocessing tools. Two isolated processes. One security floor.

PyPIApache-2.0100 toolsWindows
LicenseApache-2.0
Packagepip install arcgis-mcp-bridge
Tools100 across 10 verticals
RequiresPython 3.11+ · ArcGIS Pro 3.1–3.3 tested
PlatformWindows, with a licensed ArcGIS Pro install
Tests86 offline, ArcPy mocked
Why

Untrusted arguments, licensed runtime

An MCP tool call arrives as JSON from a language model. Handing that straight to ArcPy means letting generated text address the filesystem of a machine with a licensed ArcGIS Pro install on it. The interesting problem is not exposing geoprocessing; it is exposing it without turning the model into an unsandboxed local shell.

The answer here is two processes that do not trust each other, with the same path validation implemented independently on both sides of the boundary.

Fig. 01

Two processes, one security floor

Layer A never imports ArcPy, so a crash or a hostile path never reaches the licensed runtime through the server process. PathGuard runs before dispatch and again inside the worker: a bypass requires defeating both.

Fig. 01 / Two-process architecture
LOCAL-FIRST MCP / TWO PROCESSES SHEET B-02 01 / MCP HOST CLAUDE DESKTOP · CURSOR · MCP HOSTS UNTRUSTED TOOL ARGUMENTS ENTER HERE JSON-RPC 2.0 / STDIO LAYER A / BRIDGE INTERPRETER server.py FASTMCP SERVERASYNC · NO ARCPY CONTRACT REGISTRYPYDANTIC V2 · 100 TOOLS PATHGUARD APRE-CHECK · CONFIRM NOTHING LICENSED IS TOUCHED IN THIS PROCESS SUBPROCESS BOUNDARY · PER JOB LAYER B / LICENSED ARCGIS PRO worker.py · WINDOWS ONLY PATHGUARD BRE-VALIDATE ARCPY RUNTIME.APRX · .GDB · RASTER RESULT FRAMESTRUCTURED NDJSON PYTHON 3.11+ · ARCGIS PRO 3.1–3.3 · 86-TEST OFFLINE GATE VALIDATION · SECURITY · LICENSE · GEOPROCESSING
Catalog

100 tools across ten verticals

Every tool is declarative: a typed Pydantic v2 contract in, a structured NDJSON result frame out. Failures are values, not stack traces.

Geometry analysis23

Overlay, buffer, dissolve, proximity, topology-aware operations.

Data management22

Feature classes, fields, geodatabases, conversion, append.

Raster operations15

Clip, mosaic, resample, project, extract by mask, zonal statistics.

Map layer management10

Add, order, symbolise, toggle and zoom layers in a project.

Export & layout9

Layout PDF and PNG export, legend and text element updates.

Editing & topology7

Repair geometry, eliminate parts, detect and check topology.

Spatial statistics5

Hot spots, autocorrelation, mean centre, directional distribution.

Network analysis4

Route, service area, closest facility, OD cost matrix.

Coordinate & projection4

Define, project, describe and validate spatial references.

Vision analytics1

Sketch-to-GIS: ORB + RANSAC registration with HSV segmentation.

The vision tool turns a photographed hand-drawn parcel boundary into geodatabase features by registering the sketch against a reference frame, then segmenting the drawn lines in HSV space.

Safety

What PathGuard actually does

Every path-bearing argument is normalised and checked against an allowed root before dispatch, then re-validated inside the worker that holds the licence. Destructive operations sit behind an explicit confirmation gate rather than a flag a model can set on its own.

The 86-test suite runs with ArcPy mocked, so contributors without a Windows licence can still verify validation, security, licence handling and geoprocessing contracts offline.

Open to collaboration

Build spatial systems that hold up.

© 2026 Muhammed Enes Duran Static site · no trackers
Technical diagram