CLI-Anything · ArcGIS Pro
The closed-source counterpart to CLI-Anything's QGIS harness. ArcGIS Pro is Esri's commercial GIS desktop app, so it can't be auto-generated from source — this wraps its official ArcPy / ArcGIS Pro SDK instead, in two complementary modes:
✅ Listed in the official CLI-Anything registry (PR #318, merged) and on the Glama MCP registry.
Mode | What it drives | How |
Headless CLI |
|
|
Live bridge + MCP | the open ArcGIS Pro session (you watch it work) | in-process .NET add-in + MCP server |
✨ Features
🗺️ Professional cartography — export layouts and Map Series / map books (ArcGIS Pro's edge over QGIS).
🧰 The whole ArcToolbox — run any geoprocessing tool (buffer, clip, intersect, dissolve, …) via one command.
🔌 Drive the live session — an agent operates the open project over MCP; results appear in the map as you watch.
🤖 Agent-native I/O — every command speaks JSON:
{ "ok": …, "data" | "error": … }.🧠 Self-healing install — the CLI re-dispatches into ArcGIS Pro's Python automatically, so it works no matter where it's installed.
✅ Tested —
test_core(no backend) +test_full_e2e(needs ArcGIS Pro).
Related MCP server: ARCclaude
🎬 Demo
A complete workflow driven live by an agent — data → clip → analysis → finished map — inside ArcGIS Pro through the MCP bridge:
🚀 Quickstart
Install into ArcGIS Pro's bundled Python (arcgispro-py3), which provides ArcPy:
"C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" -m pip install ^
git+https://github.com/Jasper0122/CLI-Anything-Arcgis-Pro.gitcli-anything-arcgis-pro --json infoInstalled into a different Python? (e.g. via the CLI-Hub, which uses its own interpreter.) That's fine — the command self-dispatches into ArcGIS Pro's
arcgispro-py3interpreter when ArcPy isn't present. It locates Pro via common install paths, theSOFTWARE\ESRI\ArcGISProregistry key, or theCLI_ANYTHING_ARCGIS_PYTHONenvironment variable.
Requires a licensed ArcGIS Pro install (provides ArcPy). Verified on ArcGIS Pro 3.4 / ArcPy 3.4.3 / .NET 8.
For the live bridge, build & install the add-in and register the MCP server — see live-bridge/README.md.
🧰 Commands
Headless CLI (every command takes --json before the subcommand):
Command | What it does |
| ArcPy version, license level, extension availability. |
| Maps, layouts, layers, data sources of an |
| ★ Professional export: layouts + Map Series / map books. |
| Author the map: add layers, apply graduated-color / unique-value renderers. |
| Inspect & edit feature classes and tables. |
| Run any geoprocessing tool (the whole ArcToolbox). |
| Export every layout in a project. |
:: print-quality A0 map at 300 DPI
cli-anything-arcgis-pro --json layout export C:\proj\city.aprx --layout "Poster" --out C:\out\poster.pdf --dpi 300
:: buffer roads by 100 m
cli-anything-arcgis-pro --json gp analysis.Buffer -a C:\d.gdb\roads -a C:\d.gdb\roads_buf --kw buffer_distance_or_field="100 Meters"
:: close the loop: add the result to a map and symbolize it — no GUI clicks
cli-anything-arcgis-pro --json map add-data C:\proj\city.aprx C:\d.gdb\tracts
cli-anything-arcgis-pro --json map symbology graduated C:\proj\city.aprx tracts --field MEDINCOME --classes 5 --ramp ViridisSee SKILL.md for the full agent guide, and demos/ for runnable end-to-end demos.
🔌 MCP tools
With the live bridge registered, an agent can drive the open project:
MCP tool | Action on the live project |
| Read the open project: maps, layouts, active view. |
| Zoom the active map to a layer (optionally a selection). |
| Query a layer's attributes → structured rows. |
| Run any geoprocessing tool; outputs are added to the live map. |
| Export a layout to PDF. |
🧭 Architecture
Agent ──MCP──► mcp_server.py ──HTTP─► in-Pro add-in ──QueuedTask─► LIVE project
(you watch)ArcPy can't attach to a running ArcGIS Pro from an external process (Esri limitation). The live bridge sidesteps this by running an in-process add-in that exposes the open project over a local socket, wrapped as MCP tools — while the headless CLI stays perfect for batch/automation with no GUI.
Full code-implementation flow:

Source: docs/implementation-flow.canvas (JSON Canvas / Obsidian).
📁 Repository layout
cli_anything_arcgis_pro/ headless ArcPy CLI (pip package)
tests/ test_core.py (no backend) + test_full_e2e.py (needs Pro)
demos/ runnable demos (headless, live bridge, full region workflow)
live-bridge/
mcp_server.py stdlib-only MCP server → in-Pro bridge
ProSimpleMapExport/ ArcGIS Pro .NET add-in (bridge server + export button)
docs/ hero image, architecture diagram (.png + .canvas)
SKILL.md canonical agent skill definition🤝 Contributing
This is a standalone harness for CLI-Anything (listed in its registry, merged in #318). Issues and PRs welcome — run the tests with ArcGIS Pro's Python:
"C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" -m pytest tests/Where to help: see the Roadmap — it maps every planned command to its ArcPy / Pro SDK API and marks tasks that need no ArcGIS license (🐍, e.g. the MCP server, tests, docs) and good first issues (🟢). The biggest open frontier is cartographic authoring (symbology, layout, layer management) — the part that makes ArcGIS Pro beat QGIS.
📄 License
Source-available, not OSI open-source. Licensed under the PolyForm Noncommercial License 1.0.0:
🟢 Free for noncommercial use — personal projects, study, research, evaluation, and nonprofit / educational / government organizations.
💼 Commercial use requires a paid license — see
LICENSE-COMMERCIAL.md.
This is an independent downstream project; upstream CLI-Anything is separately licensed under Apache-2.0.
🙏 Acknowledgements
Built as a contribution to HKUDS/CLI-Anything — "Making ALL Software Agent-Native." ArcGIS, ArcGIS Pro and ArcPy are trademarks of Esri; this project is an independent integration and is not affiliated with Esri.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityCmaintenanceA local MCP server that enables AI clients to read ArcGIS Pro project information and execute ArcPy geoprocessing in the native ArcGIS Pro Python environment.1382MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to control ArcGIS Pro through natural language, executing geoprocessing tools, editing data, and automating GIS workflows via a persistent ArcPy session.12Apache 2.0
- FlicenseBqualityCmaintenanceLets AI assistants control a live ArcGIS Pro session through arcpy, including layer management, attribute queries, geoprocessing, symbology, and export.31
- Flicense-qualityCmaintenanceDrives a live ArcGIS Pro session from Claude via arcpy, enabling layer listing, dataset description, geoprocessing, and project inspection directly against an open project.
Related MCP Connectors
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
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/Jasper0122/CLI-Anything-Arcgis-Pro'
If you have feedback or need assistance with the MCP directory API, please join our Discord server