ARCclaude
ARCclaude is an MCP server that gives AI assistants complete programmatic access to ArcGIS Pro and the ArcPy ecosystem, enabling natural language-driven GIS workflows.
Execute arbitrary Python/ArcPy code: Run any Python or ArcPy code in a persistent, REPL-like session where variables persist between calls — supporting geoprocessing, cursors, raster algebra, map automation, and more.
Run geoprocessing tools: Execute any of ArcGIS Pro's ~1800+ geoprocessing tools by name with positional or named parameters, returning outputs and messages.
Search and describe geoprocessing tools: Search all available tools (including extension toolboxes) by keyword, and retrieve full syntax/documentation before running them.
Create vector datasets from GeoJSON: Generate shapefiles or geodatabase feature classes directly from GeoJSON FeatureCollections, with automatic field creation and geometry type inference.
Export vector data as GeoJSON: Read any vector dataset (shapefile, feature class, layer) as GeoJSON with optional SQL filtering and row limits.
Inspect datasets: Get detailed profiles of any dataset including type, spatial reference, extent, fields, and row count.
Inventory workspaces: List all contents (feature classes, rasters, tables, datasets) of a geodatabase or folder.
Inspect ArcGIS Pro projects: Examine
.aprxproject files to see maps, layers, data sources, layouts, and the default geodatabase.Live cowork mode: Execute Python code inside a currently open ArcGIS Pro application — enabling live map changes, layer additions, symbology updates, and more via the
CURRENTproject reference.Session management: Check the ArcPy session's license level, workspace, and active variables, or restart the worker process to clear state and release locks.
Provides tools for running geoprocessing tools, inspecting and editing GIS data, managing projects, and automating analysis workflows through ArcGIS Pro's ArcPy engine.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ARCclaudeBuffer schools by 500m and intersect with parcels"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: ArcGIS Pro Bridge MCP Server
Requirements
Windows with ArcGIS Pro 3.x installed and licensed
uv(installs its own Python — you don't need one)
Install (everyone) — one command, then just talk to Claude
You do not need this repo, git, or any coding. Paste one line into PowerShell:
irm https://raw.githubusercontent.com/thaparSAAB14/ARCclaude/main/install.ps1 | iexIt checks ArcGIS Pro, installs what's needed, and auto-connects ARCclaude to Claude Desktop and Claude Code. Then open Claude Desktop (or Claude Code) and just talk: "make a shapefile of the 3 biggest parks near me." That's the whole product — Claude is the interface; ARCclaude works invisibly underneath. Re-running the same line updates you to the latest version.
Note: Claude must run on the same PC as ArcGIS Pro (Claude Desktop or Claude Code). The claude.ai website in a browser cannot reach software on your machine — a hosted/remote mode is on the roadmap.
Manual install (nerds)
git clone https://github.com/thaparSAAB14/ARCclaude.git
cd ARCclaude
uv syncNew 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 arcclaudeClaude 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 |
| Run any Python/ArcPy code in the persistent session (REPL semantics) |
| Cowork mode: run code inside the user's OPEN ArcGIS Pro app — live map changes, |
| Search all ~1800 geoprocessing tools, incl. extension toolboxes |
| Syntax + full documentation for any GP tool |
| Execute a GP tool by name with parameters; returns outputs + messages |
| Make vector data from GeoJSON — shapefiles or geodatabase feature classes, fields auto-created, geometry type inferred |
| Read any vector dataset back as GeoJSON (SQL |
| Convert a whole .aprx to a QGIS project (.qgz) — layers, CRS, symbology carried across, free (details) |
| Dataset profile: type, CRS, extent, fields, row count |
| Inventory a geodatabase or folder |
| Maps, layers, sources, layouts of an |
| License level, workspace, live session variables |
| 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.
No Claude subscription? The nerd door (terminal chat)
ARCclaude also ships a standalone agentic CLI (bring your own API key — Anthropic, OpenAI, Gemini-compat, Groq, or a free local model via Ollama):
uv run arcclaude login # one-time: pick provider, paste key
uv run arcclaude chat # Codex-style AI GIS terminalWorks in any Windows terminal, including ArcGIS Pro's own Python Command Prompt.
Cowork mode — live changes in the OPEN ArcGIS Pro
An open project is locked to outside processes, so ARCclaude ships a Live Link:
run uv run arcclaude live, paste the printed one-liner into Pro's Python
window (View ribbon → Python), and the AI can now drive the session you're
looking at — add layers to the current map, restyle, zoom, save — via the
pro_live_execute tool.
Cowork rules (experimental feature): while active, Pro's Python window is
busy — don't type more commands into it, and don't close Pro to end it.
Stop from any terminal with uv run arcclaude live stop; it also auto-exits
after 10 minutes with no commands. See PRODUCT.md for the
architecture — the Phase-3 add-in replaces this with proper in-app threading.
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 |
| Explicit path to | auto-discover (registry → known paths) |
| Seconds to wait for arcpy import |
|
| Default per-request timeout (seconds) |
|
Project documents
Setup guide — complete walkthrough: install, client configs, troubleshooting
Security & privacy — data flow, offline mode, network surface (read this, IT folks)
Comparison — vs. Esri's Pro Assistant, community MCP servers, and Kue
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
Status
Alpha (v0.5.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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/thaparSAAB14/ARCclaude'
If you have feedback or need assistance with the MCP directory API, please join our Discord server