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.
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:
- 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."
- The AI drives ArcGIS Pro's engine through ARCclaude, in the background — Pro doesn't even need to be running.
- 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:
- 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. - 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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.