CLI-Anything · ArcGIS Pro

CLI-Anything · ArcGIS Pro

Drive Esri's ArcGIS Pro from an AI agent — the ArcGIS Pro counterpart to QGIS MCP. A headless ArcPy CLI plus an in-process .NET 8 add-in that exposes the live Pro session as MCP tools (ping, zoom_to, query, run_gp, export_layout) so an agent drives the running project while you watch.

Category
访问服务器

README

<p align="center"> <img src="docs/hero.png" alt="CLI-Anything · ArcGIS Pro — an AI agent driving ArcGIS Pro to make maps" width="100%"> </p>

<h1 align="center">CLI-Anything · ArcGIS Pro</h1>

<p align="center"> <b>Make ArcGIS Pro agent-native.</b><br> An AI agent drives ArcGIS Pro end to end — <i>data → clip → analysis → publication-ready map</i> — and you watch it happen. </p>

<p align="center"> <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0"></a> <img src="https://img.shields.io/badge/python-3.9+-3776AB?logo=python&logoColor=white" alt="Python 3.9+"> <img src="https://img.shields.io/badge/.NET-8.0-512BD4?logo=dotnet&logoColor=white" alt=".NET 8"> <img src="https://img.shields.io/badge/ArcGIS_Pro-3.4-2C7FB8" alt="ArcGIS Pro 3.4"> <img src="https://img.shields.io/badge/MCP-ready-1f9d55" alt="MCP ready"> <a href="https://github.com/HKUDS/CLI-Anything/pull/318"><img src="https://img.shields.io/badge/CLI--Anything-PR%20%23318-orange" alt="Upstream PR #318"></a> <a href="https://github.com/Jasper0122/CLI-Anything-Arcgis-Pro/stargazers"><img src="https://img.shields.io/github/stars/Jasper0122/CLI-Anything-Arcgis-Pro?style=social" alt="Stars"></a> </p>

<p align="center"> <a href="#-demo">Demo</a> · <a href="#-features">Features</a> · <a href="#-quickstart">Quickstart</a> · <a href="#-commands">Commands</a> · <a href="#-mcp-tools">MCP tools</a> · <a href="#-architecture">Architecture</a> </p>


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:

Mode What it drives How
Headless CLI .aprx projects & geodatabases on disk pip package over arcpy
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.
  • Testedtest_core (no backend) + test_full_e2e (needs ArcGIS Pro).

🎬 Demo

A complete workflow driven live by an agent — data → clip → analysis → finished map — inside ArcGIS Pro through the MCP bridge:

<video src="https://github.com/user-attachments/assets/c1416209-f2bc-4d14-83a4-0d1f37b8f24c" controls muted width="100%" style="max-height:360px"></video>

🚀 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.git
cli-anything-arcgis-pro --json info

Installed 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-py3 interpreter when ArcPy isn't present. It locates Pro via common install paths, the SOFTWARE\ESRI\ArcGISPro registry key, or the CLI_ANYTHING_ARCGIS_PYTHON environment 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
info ArcPy version, license level, extension availability.
project inspect / layers Maps, layouts, layers, data sources of an .aprx.
layout list / export / mapseries ★ Professional export: layouts + Map Series / map books.
data describe / fields / count / query / calc Inspect & edit feature classes and tables.
gp <tool> -a … --kw k=v Run any geoprocessing tool (the whole ArcToolbox).
batch export-layouts 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"

See 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
arcgis_ping Read the open project: maps, layouts, active view.
arcgis_zoom_to Zoom the active map to a layer (optionally a selection).
arcgis_query Query a layer's attributes → structured rows.
arcgis_run_gp Run any geoprocessing tool; outputs are added to the live map.
arcgis_export_layout 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:

Implementation flow

<sub>Source: <a href="docs/implementation-flow.canvas"><code>docs/implementation-flow.canvas</code></a> (JSON Canvas / Obsidian).</sub>

📁 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 (registry PR #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/

📄 License

Apache-2.0, matching upstream CLI-Anything.

🙏 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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选