arcgis-pro-mcp

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.

Category
Visit Server

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 mcp package install into Pro's Python (handled by install.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)

  1. Open your project in ArcGIS Pro.
  2. In Pro's Python window (View → Python), paste this self-locating snippet. It finds pro_listener.py wherever Cowork / Claude Desktop installed the plugin — you don't need to know the path (it differs per machine and per install):
    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())
    
    The Python window will show "listener ready" and then appear busy — that's expected; the pump is running.
  3. Ask Claude to do GIS work ("what layers are in my map?", "describe the parcels layer", "reproject X to Y").
  4. 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

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
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

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