SuperAPI AI Directory

arcgis-mcp-bridge

Local bridge to ArcGIS Pro's ArcPy engine for geoprocessing, with worker-process isolation and filesystem boundaries.

Open website

About this tool

arcgis-mcp-bridge is a secure, local-first MCP server that exposes the ArcPy engine of ArcGIS Pro to Claude Desktop and other MCP hosts via stdio JSON-RPC. It requires a Windows system, a licensed ArcGIS Pro installation, and Python 3.11 or higher.

Purpose

The project aims to enable AI assistants (such as Claude) to safely invoke the geoprocessing capabilities of ArcGIS Pro without manually operating the ArcGIS Pro interface. It wraps the ArcPy engine as callable tools through the MCP protocol, supporting natural-language-driven GIS workflows.

Main Capabilities

  • 100 declarative geoprocessing tools: All catalog MCP endpoints are generated in Layer A through a generic proxy factory, and are served by the generic run_tool dispatcher in Layer B. The catalog is exposed together with three core endpoints: health_check, list_layers, and execute_spatial_tool.
  • Dual-process isolation architecture: Layer A is an asynchronous event-driven server (arcgis_mcp/server.py), based on FastMCP, responsible for the stdio channel, Pydantic v2 contract validation, and asynchronous dispatch, and contains no module-level arcpy or cv2 imports. Layer B is a subprocess ArcPy isolation worker (arcgis_mcp/worker.py), spawned per task within the licensed ArcGIS Pro interpreter (ARCPY_PYTHON_PATH), and is the only place where import arcpy is allowed.
  • Security framework PathGuard: Filesystem parameters in every contract declare their role (read, write, or read_list), and are enforced in both processes through the shared validate_read and validate_write functions. validate_read requires the path to be fully resolved and contained within the configured allowed_roots directories, and supports datasets inside GDBs; validate_write additionally enforces ArcGIS legal datasetnaming and overwrite discipline. Any escape pattern (traversal, UNC, NUL bytes, reserved device names, out-of-root targets) immediately raises PathSecurityError.
  • Destructive change safety baseline: Ten state-changing tools refuse to run without an explicit confirm: true payload token. calculate_field defaults to the ARCADE expression language; PYTHON3 is rejected at the Layer-A contract boundary unless confirm: true is explicitly provided. raster_calculator expressions are restricted to pure map algebra syntax.
  • Error classification: Every failure across the process boundary is classified as validation, security, not_found, license, geoprocessing, or internal, and returns a structured error frame.
  • Sketch-to-GIS pipeline: Supports hand-drawn parcel boundary photos being submitted directly to geodatabase feature classes through ORB+RANSAC image registration and HSV ink segmentation, without manual digitizing.

Usage

Installation requires Windows, a licensed ArcGIS Pro, and Python 3.11+. Two installation paths are provided:

  • Path A: Pure PyPI installation (recommended for Windows users): Install using the bootstrap package, then clone the ArcGIS Pro Python environment. The recommended configuration uses the same arcgis-mcp-env\python.exe for Layer A (MCP server) and Layer B (ArcPy worker).
  • Path B: Git clone and deterministic development (GIS contributors): Layer A runs in a closed development environment, while ArcPy work runs in a separately cloned licensed arcgis-mcp-env worker.

Environment variables include ARCPY_PYTHON_PATH (required, points to the licensed interpreter), ARCGIS_MCP_ALLOWED_ROOTS (writable directories), ARCGIS_MCP_SCRATCH_GDB (existing file geodatabase). After configuring Claude Desktop, restart the MCP host and first call health_check to verify the server-to-worker IPC path.

Applicable Scenarios

  • GenDrive ArcGIS Pro geoprocessing tasks through natural language
  • Sketch-to-GIS pipeline: photos of hand-drawn boundaries are automatically registered and submitted to the geodatabase
  • Local GIS automation workflows that require secure sandbox isolation
  • Integration with MCP hosts such as Claude Desktop for spatial analysis

Limitations

  • Windows only
  • Requires a licensed ArcGIS Pro installation
  • Requires Python 3.11 or later
  • The automation quality gate currently includes 86 unit tests covering PathGuard boundaries, Pydantic contracts, registry path guards and registration invariants, worker error boundary mapping, and Settings environment validation, but does not claim multi-scenario validation of the 100 geoprocessing tools themselves, because these tools execute on a licensed ArcGIS runtime that the CI runner does not have.
  • Licensed runtime evidence is reported separately in the benchmarks/ method cards, using a real ArcGIS Pro worker and a dedicated temporary GDB, and is not merged with the simulated unit test count.
  • For first-time Windows installation, a unified environment configuration is recommended; separate server and worker environments are still supported for development, but the worker interpreter must include its own compatible installation.