arcgis-pro-mcp
Drives a live ArcGIS Pro session from Claude via arcpy, enabling layer listing, dataset description, geoprocessing, and project inspection directly against an open project.
README
ArcGIS Pro MCP — Claude plugin
Drive a live, open ArcGIS Pro session from Claude using arcpy. Claude can
list layers, describe datasets, run geoprocessing, and inspect the current
project — executing directly against whatever project you have open in Pro.
Because it runs inside your open Pro session, everything happens locally on your Windows machine. This plugin is a distribution wrapper; the actual arcpy work still requires ArcGIS Pro running in front of you.
Prerequisites (required — this will not work without them)
- Windows (ArcGIS Pro is Windows-only)
- ArcGIS Pro installed with a valid license
- Claude Code or the Claude desktop / Cowork app on the same machine
- A one-time
mcppackage install into Pro's Python (handled byinstall.ps1)
If you don't have ArcGIS Pro installed and licensed, this plugin cannot do anything.
What you get
An MCP server (arcgis-pro) exposing:
| Tool | Purpose |
|---|---|
project_info() |
Current project path, default gdb, maps |
list_layers() |
Layers in the active map (CRS, source) |
describe(dataset) |
arcpy.Describe on a layer/path + fields |
execute_arcpy(code) |
Run arbitrary arcpy in the live session |
execute_arcpy_credit(code, reason, confirm_credit) |
Same, for Esri credit-consuming ops (gated) |
listener_status/pause/resume/stop() |
Control the in-Pro listener |
Plus a bundled skill (arcgis-pro-workflow) that teaches Claude the per-session
listener startup, credit-gating etiquette, and releasing Pro's UI when done.
Install
1. Install the plugin
From a local folder (e.g. this OneDrive copy):
/plugin marketplace add "C:\Users\<you>\OneDrive - Econsult Solutions Inc\Documents\Claude\plugins\arcgis-pro-mcp"
/plugin install arcgis-pro-mcp@arcgis-pro-mcp-dev
Then restart Claude Code / the desktop app so the MCP server loads.
In the Claude desktop / Cowork app you can also add the marketplace folder through the plugin UI instead of the slash command.
2. One-time environment setup
The MCP server runs under Pro's Python and needs the mcp package there. Run:
powershell -ExecutionPolicy Bypass -File .\install.ps1
This finds arcgispro-py3\python.exe, installs mcp into it, and prints the
exact listener line to use each session. If your Pro is on a non-standard path,
update the command field in .claude-plugin/plugin.json to the path the script
reports.
Using it (every session)
- Open your project in ArcGIS Pro.
- In Pro's Python window (View → Python), paste this self-locating snippet.
It finds
pro_listener.pywherever Cowork / Claude Desktop installed the plugin — you don't need to know the path (it differs per machine and per install):The Python window will show "listener ready" and then appear busy — that's expected; the pump is running.import glob, os _hits = sorted( glob.glob(os.path.join(os.environ["APPDATA"], "Claude", "**", "pro_listener.py"), recursive=True), key=os.path.getmtime, reverse=True) if not _hits: raise SystemExit("pro_listener.py not found. Is the arcgis-pro-mcp plugin installed?") print("Starting listener from:", _hits[0]) exec(open(_hits[0]).read()) - Ask Claude to do GIS work ("what layers are in my map?", "describe the parcels layer", "reproject X to Y").
- Claude calls
listener_stop()when finished to free Pro's UI. Re-run the snippet next time.
Notes on credits
execute_arcpy refuses Esri credit-consuming functions (geocoding,
EnrichLayer, network solves, agolservices, drive-time areas, etc.). Those
must go through execute_arcpy_credit with confirm_credit=True, which Claude
sets only after you explicitly approve the credit cost.
Troubleshooting
| Symptom | Fix |
|---|---|
| "Cannot reach ArcGIS Pro listener at 127.0.0.1:53535" | Pro isn't open, or you haven't run the exec(...) listener line this session. |
| MCP server not listed after install | Restart Claude Code / the desktop app. Confirm the command path in plugin.json points to your real arcgispro-py3\python.exe. |
ModuleNotFoundError: mcp |
Re-run install.ps1 (installs mcp into Pro's env). |
| Pro UI frozen / unresponsive | Have Claude call listener_stop(), or close Pro as a last resort. |
| Port 53535 in use | Another listener is already running, or the port conflicts. Stop the old one, or change PORT in both server.py and pro_listener.py. |
Sharing with your organization
To let coworkers install with one command, put this folder in a GitHub repo and have them run:
/plugin marketplace add your-org/arcgis-pro-mcp
/plugin install arcgis-pro-mcp@arcgis-pro-mcp-dev
Each coworker still needs the prerequisites above (Pro + license) and must run
install.ps1 once. You can also pre-wire the marketplace for a team via
extraKnownMarketplaces in a shared .claude/settings.json.
Author: Angel Zhong
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.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
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.