Arcmap
БесплатноНе проверенMCP server that allows AI agents to control a live ArcMap session via arcpy, including listing layers, zooming, exporting maps, and viewing the canvas, specific
Описание
MCP server that allows AI agents to control a live ArcMap session via arcpy, including listing layers, zooming, exporting maps, and viewing the canvas, specifically for legacy ArcMap 10.4-10.8.
README
Servidor MCP local para ArcMap 10.5–10.8 (validado en 10.5). 100% abierto, libre y soberano. Permite a un agente IA (Claude Code, Claude Desktop, Gemini CLI, Antigravity, OpenCode…) conducir una sesión viva de ArcMap — listar capas, ejecutar arcpy, encuadrar, simbolizar, exportar series de planos y ver el canvas — igual que hacen los MCP de QGIS y ArcGIS Pro, pero para ArcMap legacy (que ninguno de esos cubre).
Arquitectura (sesión viva, dos piezas)
Cliente IA (Claude Code / Desktop / Gemini / Antigravity / OpenCode)
│ protocolo MCP (stdio)
▼
arcmap_mcp_server.py ← servidor MCP externo (Python 3 + FastMCP): los schemas
│ de las 48 herramientas y el contrato con el cliente
│ socket TCP local 127.0.0.1:27179
▼
Add-in .NET (C#) ← DENTRO de ArcMap: TcpListener + ArcObjects nativo
├─ hilo STA de ArcMap ← capas, layout, exports, render (con cancelación ESC)
└─ subprocess Python 2.7 ← arcpy out-of-process sobre un snapshot del .mxd
│ (execute_arcpy, Data Driven Pages, análisis ambiental)
▼
ArcMap ABIERTO y vivo → canvas, capas, layout, exportación
El patrón de dos piezas —servidor MCP externo + puente dentro del GIS hablando un protocolo trivial por socket local— está tomado del MCP de QGIS (open source), el estándar de facto de la categoría. Crédito donde corresponde: este proyecto copia ese diseño y lo lleva a ArcMap.
Las dos piezas son una decisión de diseño, no una provisionalidad:
- El add-in .NET corre dentro de ArcMap y toca el documento vivo vía ArcObjects (COM gestionado por el CLR — estable, sin interop manual). Atiende un comando por conexión en el puerto 27179; lo que muta el mapa se ejecuta en el hilo STA de ArcMap (el único válido para ArcObjects), y lo que es arcpy puro se delega a un proceso Python 2.7 aparte que trabaja sobre una copia temporal del documento — así un análisis largo no congela la interfaz de ArcMap.
- El servidor externo expone las
@mcp.tool()por stdio — el transporte que soportan todos los clientes MCP — y reenvía cada comando por TCP local. Servir HTTP desde el propio add-in se evaluó y se descartó: no hay SDK MCP para .NET Framework 4.5,HttpListenerexige reservas URL ACL con permisos de administrador (rompería la instalación de un clic) y los clientes stdio necesitarían un proxy igualmente.
Estructura del repo
arcmap-mcp/
├── src/ arcmap_mcp_server.py ← servidor MCP (regístralo en tu cliente IA)
├── addin/ ArcmapMcp.AddIn/ ← código C# del add-in (+ runner.py embebido)
│ dist/arcmap-mcp.esriaddin ← add-in listo para instalar
│ build.ps1 ← build sin Visual Studio (dotnet CLI)
├── docs/ INSTALL.md · TOOLS.md · ROADMAP.md
├── tests/ test_bridge.py
├── start-arcmap-mcp.ps1 · requirements.txt · CHANGELOG.md · LICENSE · README.md
| Pieza | Dónde corre | Qué es |
|---|---|---|
addin/dist/arcmap-mcp.esriaddin |
dentro de ArcMap (.NET/CLR) | El add-in: socket + ArcObjects + subprocess arcpy |
src/arcmap_mcp_server.py |
externo (Python 3) | Servidor MCP que registras en tu cliente IA |
start-arcmap-mcp.ps1 |
Windows | Lanzador: prepara venv, vigila el túnel, hace ping |
Ruta de instalación recomendada:
C:\mcp\arcmap-mcp(fuera de carpetas sincronizadas tipo Drive/Dropbox). Ajusta las rutas de los ejemplos si instalas en otra ubicación.
Herramientas MCP
48 herramientas, todas probadas por llamada cableada real sobre ArcMap 10.5 (ver
docs/TOOLS.md para el catálogo completo con firmas, ejemplos y los matices de
ejecución de cada grupo):
- Esenciales:
ping·get_arcmap_info·list_layers·zoom_to_layer·export_pdf·refresh·execute_arcpy(código arcpy arbitrario sobre un snapshot del documento — ver matiz endocs/TOOLS.md). - Series de planos (Data Driven Pages):
list_ddp·export_ddp·list_layout_elements·set_text_element·goto_ddp_page·set_definition_query·set_layer_visibility·export_view_png·export_jpg. - Capas y datos:
select_by_attribute·clear_selection·get_unique_values·count_features·list_fields·get_layer_info·get_layer_features·add_layer·remove_layer·apply_symbology_from_layer·set_scale. - Geoprocesamiento y mantenimiento:
run_geoprocessing·save_mxd·save_mxd_as·list_broken_data_sources·repair_data_source. - Visualización y catálogo:
get_canvas_screenshot(imagen INLINE, el agente ve el mapa; cancelable con ESC) ·describe_data·list_data_frames/set_active_df·set_extent·get_workspace/set_workspace·list_feature_classes/list_tables/list_rasters. - Análisis ambiental y teledetección (requieren Spatial/3D Analyst; corren fuera
del proceso de ArcMap → no congelan la GUI):
raster_index(índices espectrales con nombre: NDVI, GNDVI, NDRE, NDWI, MNDWI, NDMI, NBR, SAVI, EVI — con mapeo de bandas Sentinel-2 / Landsat) ·hydrology(cuencas, red de drenaje, inundación) ·contours·topographic_profile·least_cost_path·calculate_geometry.
La filosofía es híbrida: execute_arcpy es la base universal (cualquier análisis
de ArcMap 10.x se puede expresar con él) y los wrappers existen solo para lo
repetitivo y de alto valor.
Puesta en marcha
1. Instalar el add-in en ArcMap
Con ArcMap cerrado, doble clic en addin\dist\arcmap-mcp.esriaddin ▸ Install.
Si al abrir ArcMap no aparece la barra arcmap-mcp (el instalador de Esri a veces
falla en silencio), instalación manual: extrae/copia el contenido del .esriaddin
(es un ZIP) a
%USERPROFILE%\Documents\ArcGIS\AddIns\Desktop10.5\{51f4ce63-6bcf-49b2-ae3a-ba2c79ea3e1a}\
y reabre ArcMap. La barra trae 4 botones: Iniciar / Detener / Estado / Acerca de.
Pulsa Iniciar → MessageBox «Puente iniciado» y el add-in escucha en
127.0.0.1:27179. El add-in escribe su log en C:\MCP_Logs\arcmap-mcp.log.
2. Levantar / vigilar el túnel
.\start-arcmap-mcp.ps1 # prepara venv, espera al puente, hace ping
.\start-arcmap-mcp.ps1 -Server # además arranca el servidor MCP (standalone)
El lanzador reintenta hasta que el puente aparece, así que puedes correrlo antes de arrancar ArcMap: te guía y se conecta solo cuando esté vivo.
3. Registrar en tu cliente IA
Ejemplo Claude Code (.mcp.json del proyecto o config global). Sustituye <USUARIO>
por tu nombre de usuario de Windows:
{
"mcpServers": {
"arcmap": {
"command": "C:/Users/<USUARIO>/AppData/Local/arcmap-mcp/venv/Scripts/python.exe",
"args": ["C:/mcp/arcmap-mcp/src/arcmap_mcp_server.py"]
}
}
}
La guía completa de los 5 clientes está en docs/INSTALL.md.
4. Verificar
Con el puente vivo, pide por MCP la herramienta ping → debe devolver la versión del
add-in, el documento abierto y el nº de capas. Luego list_layers → tus capas. Todo OK.
Acceso remoto (opcional)
El add-in escucha solo en 127.0.0.1 por diseño: execute_arcpy es ejecución de
código, y exponer el puerto sería exponer la máquina. Si ArcMap corre en otro equipo,
reenvía el puerto con un túnel cifrado — SSH (ssh -L 27179:127.0.0.1:27179 <host>)
o Tailscale — y el servidor MCP se conecta como si fuera local
(ARCMAP_BRIDGE_HOST si el extremo local del túnel no es 127.0.0.1).
⚠️ Seguridad. El puente expone
execute_arcpy, es decir ejecución de código Python arbitrario en la máquina que aloja ArcMap, sin autenticación: la frontera de seguridad es la red. Mantén el puerto fuera de redes abiertas; túnel cifrado o firewall siempre.
Límites conocidos y rendimiento
- Qué congela la GUI y qué no. Las herramientas que corren fuera del proceso
de ArcMap (
execute_arcpy, las 3 de Data Driven Pages y el análisis ambiental) no congelan la interfaz: puedes seguir trabajando mientras duran. En cambiorun_geoprocessing(nativo, dentro de ArcMap) y los exports/render sí ocupan el hilo de la interfaz mientras se ejecutan — igual que si los lanzaras a mano. El render y los exports se pueden cancelar con ESC. - Semántica de snapshot. Las herramientas out-of-process trabajan sobre una
copia temporal del .mxd con el estado actual de la sesión: leen el documento
real (capas, definition queries, atlas), pero sus cambios al documento no
repercuten en la sesión viva (las salidas a disco sí son reales, y los resultados
de análisis se añaden al mapa al terminar). Para mutar la sesión viva usa las
herramientas nativas (
set_*,add_layer, …). Coste fijo por llamada: unos segundos (snapshot + arranque de Python). - Atlas grandes:
export_ddpconpaginas="ALL"sobre un atlas de cientos de páginas puede superar el timeout estándar de 60 s del servidor; exporta por lista de valores o por rango (varias llamadas), que además da feedback por lotes. - Timeout de geoprocesos. Las herramientas pesadas usan un timeout amplio
(
ARCMAP_GP_TIMEOUT, 30 min por defecto); las rápidas,ARCMAP_BRIDGE_TIMEOUT(60 s). Aparte, tu cliente IA puede tener su propio timeout de herramienta MCP. - Extensiones.
raster_index,hydrology,least_cost_pathrequieren Spatial Analyst;contours,topographic_profilerequieren 3D Analyst (actívalas en Customize ▸ Extensions). Si falta la licencia, la herramienta devuelve un error claro. - Un comando por conexión, en serie. El puente atiende una orden a la vez; si
llega otra mientras trabaja responde
busyde inmediato (sin encolar). - Una sola instancia de ArcMap. Con dos ArcMap abiertos, el segundo en arrancar puede quedarse sin el add-in en silencio (el primero bloquea la DLL). Usa una única instancia.
- El workspace es por sesión.
set_workspacefija el workspace del add-in (no hayarcpy.envpersistente); se restablece al reiniciar ArcMap.
Estado
- Add-in .NET nativo (ArcObjects vía CLR, sin runtime Python embebido)
- 48 herramientas probadas por llamada cableada real, incluido el análisis ambiental (índices espectrales, hidrología, curvas, perfiles 3D y ruta de mínimo coste) y series de planos reales de decenas de páginas
- Geoprocesos arcpy fuera de proceso: la GUI de ArcMap no se congela
- Cancelación de render/exports con ESC (
ITrackCancel) - Registrable en 5 clientes (Claude Code/Desktop, Gemini CLI, Antigravity, OpenCode)
Soporte y servicios
El proyecto es libre y abierto (MIT): puedes usarlo, modificarlo y desplegarlo sin coste. Está pensado para organizaciones que siguen atadas a ArcMap 10.x y quieren automatizar su trabajo cartográfico con agentes IA sin esperar a migrar a ArcGIS Pro.
Si tu equipo necesita ayuda para ponerlo en producción, lo mantiene quien lo ha construido —técnico GIS y desarrollador— y ofrece, como servicio:
- Instalación y puesta en marcha en tu entorno (clientes IA, add-in, red/túnel).
- Herramientas a medida: wrappers nuevos para tus flujos concretos (series de planos, índices, modelos de geoprocesamiento propios).
- Integración con tus datos y plantillas (.mxd, estilos
.lyr, geodatabases). - Formación del equipo para sacarle partido en el día a día.
Contacto: [email protected] · pedralcg.dev
Créditos y licencia
- Patrón de arquitectura: qgis_mcp (Juan Santos), el MCP de QGIS open source.
- MIT — © 2026 Pedro Alcoba Gómez · pedralcg.dev · GitHub @pedralcg
Установка Arcmap
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/pedralcg/arcmap-mcpFAQ
Arcmap MCP бесплатный?
Да, Arcmap MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Arcmap?
Нет, Arcmap работает без API-ключей и переменных окружения.
Arcmap — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Arcmap в Claude Desktop, Claude Code или Cursor?
Открой Arcmap на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
LibreOffice Tools
Enables AI agents to read, write, and edit Office documents via LibreOffice with token-efficient design. Supports multiple formats including DOCX, XLSX, PPTX, a
автор: passerbyflutterdannote/figma-use
Full Figma control: create shapes, text, components, set styles, auto-layout, variables, export. 80+ tools.
автор: dannoteLogo.dev
Search and retrieve company logos by brand or domain. Customize size, format, and theme to match your design needs. Accelerate design, prototyping, and content
автор: NOVA-3951PIX4Dmatic
Enables GUI automation for controlling PIX4Dmatic on Windows through MCP. Supports launching, focusing, capturing screenshots, sending hotkeys, clicking UI elem
автор: jangjo123Compare Arcmap with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории design
