内容
# arcpy-mcp-server -- AI + GIS 智能空间分析
[](LICENSE)
[](https://www.python.org/)
[](https://www.esri.com/)
> 让大型语言模型(LLMs,如 GPT-4o、Claude、DeepSeek)直接操作 ArcGIS Pro —— 驱动 1300+ 空间分析工具,实现自然语言交互。
## 什么是 arcpy-mcp-server?
**arcpy-mcp-server** 将所有 ArcGIS Pro 工具箱暴露为 MCP(模型上下文协议)工具,实现:
```
你:”在大学周围进行 500 米缓冲区分析“
AI:自动调用 arcpy -> ArcGIS Pro -> 生成结果
```
无需记忆工具名称,无需编写 Python 代码,无需点击菜单。
## 功能特点
- **1300+ 工具**,涵盖 15 个模块:管理(392)、空间分析(355)、3D 分析(144)、统计(44)、地理统计(39)、分析(38)等
- **MCP 标准**:与 AutoClaw、Claude Code、Codex 等任何 MCP 客户端兼容
- **零依赖**:使用 ArcGIS Pro 内置的 Python 3.9
- **安全白名单**:可配置路径和工具限制
- **一键安装**:从克隆到运行仅需 30 秒
## 支持的模块
| 模块 | 工具数量 | 主要功能 |
| --- | --- | --- |
| 管理 | 392 | 数据管理、投影、字段、拓扑 |
| 空间分析(sa) | 355 | 坡度、坡向、重分类、视域、水文学 |
| 3D 分析(ddd) | 144 | DEM、等高线、视域2、天际线、点云 |
| 网络分析(nax) | 61 | 路径、服务区域、OD 矩阵 |
| 转换 | 57 | JSON/KML/CAD/Excel/栅格转换 |
| 旧版网络分析(na) | 55 | 旧版网络分析 |
| 空间统计(stats) | 44 | Moran's I、Gi*、KDE、Ripley's K、GWR |
| 制图 | 44 | 等高线标注、聚合、简化 |
| 地理统计(ga) | 39 | 克里金插值、IDW、EBK、交叉验证 |
| 分析 | 38 | 缓冲区、裁剪、相交、擦除、合并、泰森多边形 |
| 编辑 | 18 | 对齐、延伸、修剪、分割、合并 |
| 服务器 | 18 | 发布服务、缓存、图层 |
| 时空分析(stpm) | 16 | 时空立方体、热点分析 |
| 地理编码 | 13 | 地址匹配、反向地理编码 |
| 分享 | 6 | 网络图层、网络地图、场景分享 |
## 快速开始
### 前提条件
- Windows 10/11
- ArcGIS Pro 3.x(需有效许可证)
- Python 3.9+
### 安装
```powershell
git clone https://github.com/zhaojj662/arcpy-mcp-server.git
cd arcpy-mcp-server
install.bat
```
### 启动服务器
双击 `start_server.bat` 或运行:
```powershell
start_server.bat
```
服务器运行于 `http://127.0.0.1:8765`。
验证:
```powershell
Invoke-RestMethod http://127.0.0.1:8765/health
# {"status":"ok","server":"arcpy-mcp-server","version":"2.0","tools":1300}
```
### 配置 AI 客户端
**AutoClaw MCP 设置:**
| 字段 | 值 |
| --- | --- |
| 名称 | arcpy |
| 模式 | 本地进程(stdio) |
| 命令 | python |
| 参数 | path/to/mcp_bridge.py |
**Claude Code(claude_desktop_config.json):**
```json
{
"mcpServers": {
"arcpy": {
"command": "python",
"args": ["C:/Users/%USERNAME%/arcpy-mcp-server/mcp_bridge.py"]
}
}
}
```
### 试用
```
"在道路.shp周围创建500米缓冲区"
"根据此DEM计算坡度和坡向"
"对犯罪点进行热点分析"
"对PM2.5监测数据进行克里金插值"
"为100个观测点进行批量视域分析"
```
## 架构
```
AI 客户端 <-- stdio --> mcp_bridge.py <-- HTTP --> server.py (arcpy) --> ArcGIS Pro 3.x
```
## 安全
编辑 `server.py` 以限制访问:
```python
ALLOWED_PATHS = ["C:/GIS-AI-Course/"] # 仅允许这些目录
INCLUDE_MODULES = ["analysis", "sa"] # 仅暴露这些模块
```
## API
| 端点 | 方法 | 描述 |
| --- | --- | --- |
| /health | GET | 服务器状态,工具数量 |
| /tools | GET | 可用工具列表(前 200 个) |
| /modules | GET | 所有模块及其工具数量列表 |
| /call | POST | 执行一个工具 |
## 常见问题
**问:是否需要 ArcGIS Pro?**
答:是的。arcpy 仅在 ArcGIS Pro Python 环境中运行。
**问:支持哪些 ArcGIS Pro 版本?**
答:3.x 系列(测试版本为 3.0)。
**问:能否限制 AI 可以访问的工具?**
答:是的。编辑 `INCLUDE_MODULES` 在 `server.py` 中。
## 许可证
MIT -- 见 [LICENSE](LICENSE)