ARCclaude

ARCclaude

Enables AI assistants to control ArcGIS Pro through natural language, executing geoprocessing tools, editing data, and automating GIS workflows via a persistent ArcPy session.

Category
Visit Server

README

ARCclaude

An open-source MCP server that gives AI assistants complete access to the ArcGIS Pro ecosystem.

ARCclaude connects Large Language Models — Claude, GPT, Gemini, local models, or anything that speaks MCP — to ArcGIS Pro through ArcPy. It is not a chatbot that answers GIS questions: it's a copilot that does the work — running geoprocessing tools, writing and debugging ArcPy, inspecting projects and data, automating maps, and building complete analysis pipelines from natural language.

"Buffer every school in the city by 500 m, clip to the district boundary, and tell me how many parcels intersect" — and it actually happens, in your local ArcGIS Pro install, with full messages and outputs reported back.

How it works

Claude / GPT / any MCP client
        │  MCP over stdio
        ▼
ARCclaude server (lightweight Python, managed by uv)
        │  JSON-lines over pipes
        ▼
ArcPy worker — persistent session on ArcGIS Pro's own Python
        ▼
ArcGIS Pro  (all licensed tools & extensions)

The mental model (read this first)

There is no chat window inside ArcGIS Pro, and you never "open" ARCclaude. The relationship is flipped:

  1. You talk to your AI app (Claude Desktop, Claude Code, Cursor, …) in plain English: "Create a shapefile of the 5 largest lakes in Ontario with name and area fields."
  2. The AI drives ArcGIS Pro's engine through ARCclaude, in the background — Pro doesn't even need to be running.
  3. You open the results in Pro like any other data: Map → Add Data → your new shapefile/geodatabase is just there, fields and all.

Pro can be open at the same time; just avoid pointing both Pro and the AI at the same geodatabase simultaneously (file locks). An in-Pro chat panel is on the roadmap (Phase 3).

Two design decisions make this robust:

  1. Esri's Python environment is never modified. The worker script uses only the standard library + arcpy, so nothing is ever installed into arcgispro-py3. No env cloning, no admin rights, upgrade-safe.
  2. The arcpy session is persistent. The slow arcpy import (~20–60 s license checkout) is paid once; after that every call is fast, and variables persist across calls like a REPL — the AI can build up state over a long workflow.

Requirements

  • Windows with ArcGIS Pro 3.x installed and licensed
  • uv (installs its own Python — you don't need one)

Quickstart

One-command install (recommended)

Paste into PowerShell — like a game installer, it checks ArcGIS Pro, installs uv if needed, downloads ARCclaude, and auto-configures Claude Code and Claude Desktop:

irm https://raw.githubusercontent.com/thaparSAAB14/ARCclaude/main/install.ps1 | iex

Or download the repo and double-click install.cmd. Re-running it updates an existing install.

Manual install

git clone https://github.com/thaparSAAB14/ARCclaude.git
cd ARCclaude
uv sync

New to this? The complete setup guide walks through everything from a blank machine, including client configs and troubleshooting.

Claude Code

The repo ships a project-scoped .mcp.json, so opening this folder in Claude Code just works. To register it globally instead:

claude mcp add arcclaude --scope user -- uv --directory C:\path\to\arcclaude run arcclaude

Claude Desktop

Add to %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "arcclaude": {
      "command": "uv",
      "args": ["--directory", "C:\\path\\to\\arcclaude", "run", "arcclaude"]
    }
  }
}

Any other MCP-capable client (Cursor, Windsurf, open-source agents, GPT/Gemini via MCP adapters) configures the same way: uv --directory <repo> run arcclaude over stdio.

Tools

Tool What it does
arcpy_execute Run any Python/ArcPy code in the persistent session (REPL semantics)
search_gp_tools Search all ~1800 geoprocessing tools, incl. extension toolboxes
describe_gp_tool Syntax + full documentation for any GP tool
run_gp_tool Execute a GP tool by name with parameters; returns outputs + messages
create_features Make vector data from GeoJSON — shapefiles or geodatabase feature classes, fields auto-created, geometry type inferred
export_features Read any vector dataset back as GeoJSON (SQL where filter, row limit)
describe_data Dataset profile: type, CRS, extent, fields, row count
list_workspace Inventory a geodatabase or folder
inspect_project Maps, layers, sources, layouts of an .aprx
session_status License level, workspace, live session variables
restart_session Kill and restart the ArcPy session (clears state, releases locks)

Because discovery is dynamic (arcpy.ListTools), newly installed extensions and custom toolboxes are exposed automatically — no code changes needed.

Security model

arcpy_execute runs arbitrary Python code on your machine with your permissions. That is the point — it's what makes the copilot universal — but understand it:

  • Run it only with MCP clients that show you tool calls and let you approve them (Claude Code and Claude Desktop both do).
  • The worker inherits your ArcGIS license and file access; it can edit and delete data you can.
  • Never expose the server over a network transport without adding authentication.

Configuration

Environment variable Purpose Default
ARCCLAUDE_ARCGIS_PYTHON Explicit path to arcgispro-py3\python.exe auto-discover (registry → known paths)
ARCCLAUDE_STARTUP_TIMEOUT Seconds to wait for arcpy import 180
ARCCLAUDE_REQUEST_TIMEOUT Default per-request timeout (seconds) 300

Project documents

  • Setup guide — complete walkthrough: install, client configs, troubleshooting
  • Vision — the full scope this project is building toward
  • Architecture — design decisions and worker protocol
  • Roadmap — phased plan from this MVP to the full vision
  • Contributing

Status

Alpha (v0.2.0). The core execution engine works end-to-end. The surface area of the vision — Pro SDK add-in for live session control, ArcGIS Online/Enterprise, open-data connectors — is roadmap. Issues and PRs welcome.

License

Apache-2.0. ArcGIS, ArcPy and ArcGIS Pro are trademarks of Esri. This is an independent community project, not affiliated with or endorsed by Esri.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured