arcgis-mcp-bridge

Servidor MCP seguro y local-first que expone el motor ArcPy de ArcGIS Pro a través de stdio JSON-RPC.

Documentación

PyPI - Version PyPI - Downloads CI Python 3.11+ License Tools Ruff uv arcgis-mcp-bridge MCP server smithery badge

arcgis-mcp-bridge

Inicio Rápido

arcgis-mcp-bridge requiere Windows, una instalación licenciada de ArcGIS Pro y Python 3.11 o superior para el paquete del puente.

Instale el paquete de arranque usando un administrador de paquetes:

# Option A — pip
py -m pip install --upgrade arcgis-mcp-bridge

# Option B — uv
uv pip install --upgrade arcgis-mcp-bridge

Luego clone el entorno de Python de ArcGIS Pro:

# The final JSON report contains the target `python_exe` path.
py -m arcgis_mcp.setup_env

Si el comando de consola instalado está disponible en PATH, arcgis-mcp-setup es equivalente a py -m arcgis_mcp.setup_env.

Importante para sistemas Windows con múltiples instalaciones de Python: la configuración no está completa hasta que arcgis-mcp-bridge esté instalado en el arcgis-mcp-env\python.exe informado. Use ese mismo intérprete tanto para el servidor MCP command como para ARCPY_PYTHON_PATH. Esto evita fallos en los trabajadores causados por paquetes o extensiones nativas cargadas desde otro entorno de Python.

Consulte 05 — Instalación para la configuración y el ajuste completos.

100 herramientas de geoprocesamiento declarativas. Dos procesos aislados. Un piso de seguridad.

Un servidor MCP seguro, local-primero y asíncrono que expone el motor ArcPy de ArcGIS Pro a Claude Desktop y otros hosts MCP a través de stdio JSON-RPC.

Informe técnico: Construyendo un Puente MCP Seguro para ArcGIS Pro y ArcPy

Catálogo100 herramientas · 10 verticales
Pruebas86 pruebas unitarias · 86/86 aprobadas · arcpy simulado
Evidencia de ejecución realBenchmark de humo MCP reproducible de ArcGIS Pro
Análisis estáticoRuff limpio · Mypy strict limpio
TransporteJSON-RPC 2.0 sobre stdio
LicenciaApache-2.0

¿Por qué arcgis-mcp-bridge?

Característicaarcgis-mcp-bridgegeo2004/MCP-ArcGISPronicogis (C#/.NET)
Herramientas100~15~10
Sincronización de dependenciasDeterminista (uv.lock)Imperativa (requirements.txt)NuGet nativo
Transportestdio JSON-RPCIPC basado en archivosNamed Pipes
Arquitectura de seguridadSandbox PathGuard documentadoNo especificado / acceso de host predeterminadoNo especificado / acceso de host predeterminado
Aislamiento de arcpyArquitectura de dos procesosEjecución de proceso únicoEjecución en proceso de Add-In
CI (Verificación sin conexión)✅ Compatible❌ No disponible❌ No disponible
LicenciaApache-2.0MITMIT

Destacado: Pipeline de Boceto → GIS

Límite de parcela dibujado a mano → foto → clase de entidad de geodatabase. Registro de imágenes ORB+RANSAC, segmentación de tinta HSV, confirmación directa en GDB. Sin digitalización manual requerida.

Demostración próximamente. Para previsualizar el pipeline de boceto a GIS:

  1. Dibuje un polígono en papel y fotográfielo.
  2. Pídale a Claude: "Usa extract_sketch_to_gis para registrar esta foto contra mi mapa base y confirma el resultado en mi GDB."
  3. La clase de entidad aparece en ArcGIS Pro — sin digitalización manual.

00 — Ejemplos de Prompts

Después de que health_check tenga éxito, hable con Claude de forma natural:

"Buffer all parcels in my GDB by 50 meters and save to scratch."
"List all feature classes in C:\GIS\city.gdb starting with 'road_'."
"Dissolve the neighborhoods layer by district_id."
"Run kernel density on crime_points with a 500-meter search radius."
"Calculate slope and aspect from the DEM at C:\GIS\dem.tif."
"Find the 3 nearest facilities to each incident in my network dataset."
"Check geometry on all feature classes in my GDB and repair errors."

01 — Arquitectura Central y Filosofía

flowchart TD
    A[Claude Desktop / Cursor] -->|JSON-RPC over stdio| B[Layer A · MCP Protocol Host]
    B -->|NDJSON subprocess bridge| C[Layer B · ArcPy Worker]
    C --> D[ArcGIS Pro / ArcPy Runtime]

Capa A — Servidor Asíncrono Orientado a Eventos (arcgis_mcp/server.py). FastMCP en el intérprete del puente. Posee el canal stdio, valida cada solicitud contra contratos congelados de Pydantic v2, despacha el trabajo mediante asyncio.create_subprocess_exec — el bucle de eventos nunca se bloquea en una llamada de geoprocesamiento y nunca mantiene un bloqueo de hilo. La Capa A contiene cero importaciones de arcpy o cv2 a nivel de módulo (verificado por grep en la puerta de auditoría); no puede fallar en el código nativo de Esri porque nunca lo toca.

Capa B — Trabajador de Aislamiento de ArcPy en Subproceso (arcgis_mcp/worker.py). Generado por trabajo en el intérprete licenciado de ArcGIS Pro (ARCPY_PYTHON_PATH). El único lugar donde import arcpy es legal; cv2 se carga perezosamente dentro de la única herramienta de visión que lo necesita. La salida estándar del trabajador se redirige a la salida de error al inicio — la única escritura sancionada en la salida estándar es el marco de resultado final NDJSON, por lo que el parloteo nativo de ArcObjects nunca puede corromper el canal JSON-RPC. Un fallo nativo termina el trabajador, no el servidor: el padre convierte una salida distinta de cero en un marco de error estructurado.

Registro declarativo (arcgis_mcp/registry.py). Cada herramienta es un ToolSpec(nombre, categoría, descripción, modelo_de_entrada, función_trabajadora, destructiva). Una fábrica de proxy genérica materializa los 100 puntos finales MCP del catálogo en la Capa A; un despachador genérico de run_tool los sirve en la Capa B. El catálogo se expone junto con tres puntos finales centrales: health_check, list_layers y execute_spatial_tool. Agregar la herramienta de catálogo #101 toca dos archivos — nunca los bucles de ejecución.

Cada fallo que cruza el límite del proceso se clasifica: validation · security · license · geoprocessing (con el stack completo de arcpy.GetMessages()) · internal.


02 — La Matriz del Censo de las 100 Herramientas

#VerticalHerramientasCapacidades clave
1map_layer_management10Mapas .aprx, orden de capas/visibilidad/simbología, cámara, guardar
2data_management22Ciclo de vida de FC/GDB, campos, Describe, intercambio Excel/GeoJSON/CSV
3geometry_analysis23Superposiciones, disolver/fusionar, selecciones, uniones, proximidad, fishnet
4coordinate_reference_projection4Definir/proyectar vectorial y ráster impulsado por WKID, consulta de CRS
5raster_operations15Álgebra de mapas, estadísticas zonales, pendiente/aspecto/sombreado de DEM, hidrología
6vision_analytics1Boceto a GIS: registro ORB+RANSAC → tinta HSV → confirmación en GDB
7export_layout9Gráficos PDF/PNG, control de DPI, marcos de mapa, texto/leyenda, tamaño de página
8editing_topology7Reparar/verificar geometría, anexar, deduplicar, diff, validación de topología
9network_analysis4Áreas de servicio, enrutamiento, matriz de costos OD, instalación más cercana
10spatial_statistics5Centro medio, elipse, densidad de kernel, puntos calientes Gi*, I de Moran
Total100

Las licencias de extensión de Esri (Spatial, Network) se gestionan a través de un administrador de contexto compartido y se devuelven mediante finally en rutas normales de excepción de Python. El aislamiento del proceso trabajador contiene los fallos nativos al trabajo actual, mientras que las licencias no disponibles devuelven un marco de error estructurado en lugar de terminar el servidor MCP.

Piso de Seguridad de Mutación Destructiva

Diez herramientas que mutan el estado se niegan a ejecutarse sin un token de carga confirm: true explícito. La puerta se activa en el despachador antes de que se pague la importación de arcpy de 10–30 s, y el registro se niega incluso a registrar una especificación destructiva cuyo contrato carece de un campo confirm:

append_features        calculate_field        define_projection
delete_dataset         delete_field           delete_identical
extract_sketch_to_gis  near_analysis          remove_layer_from_map
repair_geometry

calculate_field lleva un piso adicional de canal de expresión: el expression_type predeterminado es ARCADE (el lenguaje de expresiones sandbox de Esri), y PYTHON3 — que ejecuta código dentro del trabajador — se rechaza en el límite del contrato de la Capa A a menos que confirm: true se proporcione explícitamente. Las expresiones de raster_calculator están restringidas a una gramática pura de álgebra de mapas (identificadores, números, operadores; sin comillas, sin acceso dunder) por un validador de contratos.


03 — Puerta de Calidad Automatizada y Pruebas

La evidencia del tiempo de ejecución licenciado se informa por separado en la tarjeta de método benchmarks/. Su resultado confirmado usa un trabajador real de ArcGIS Pro y un GDB de scratch dedicado; no se agrupa con el recuento de pruebas unitarias simuladas ni se presenta como validación de las 100 herramientas de geoprocesamiento.

Alcance, dicho claramente: la puerta automatizada consiste actualmente en 86 pruebas unitarias que abarcan el límite de PathGuard, los contratos de Pydantic, las invariantes de registro y guardia de ruta del registro genérico, el mapeo del límite de errores del trabajador y la validación del entorno Settings. Ejercita los contratos estructurales del catálogo y cada costura crítica de seguridad — no afirma una validación de múltiples escenarios de las 100 herramientas de geoprocesamiento en sí, que se ejecutan contra un tiempo de ejecución de ArcGIS licenciado que ningún runner de CI tiene.

Arquitectura de pruebas en memoria. tests/conftest.py inyecta proxies de MagicMock en sys.modules["arcpy"] y sys.modules["arcpy.sa"] (con CheckExtension respondiendo a "Available") antes de que cualquier importación de paquete se resuelva. Todo el conjunto se ejecuta en mucho menos de un segundo, sin instalación de ArcGIS, sin verificación de licencia y sin tiempo de ejecución de Esri — localmente y en CI de manera idéntica.

Alcances de prueba.

  • tests/test_security.py y tests/test_pathguard.py — el cortafuegos del límite de PathGuard, ejercitado contra directorios reales mediante el fixture tmp_path de pytest: las lecturas/escrituras válidas dentro del sandbox pasan; el traversal (segmentos ..), UNC, rutas relativas, de byte NUL, de dispositivo reservado, de longitud excesiva y fuera de la raíz se rechazan; se aplica la disciplina de escritura (reglas de nombres de datasets de ArcGIS, opt-in de sobrescritura).
  • tests/test_contracts.py — aplicación del contrato de Pydantic: especificaciones de parámetros por herramienta, validadores entre campos, frozen / extra="forbid" y la invariante ok-xor-error en el sobre IPC.
  • tests/test_registry.py y tests/test_registry_guard.py — integridad del flujo del registro más la aplicación genérica de apply_path_guard e invariantes de register — cada esquema debe ser una subclase de ToolInput, cada entrada de path_fields debe referenciar un rol válido, los nombres duplicados se rechazan y cada especificación destructiva debe llevar su puerta confirm.
  • tests/test_worker.py — mapeo del límite de errores de process_frame: cada clase de fallo (validación, seguridad, licencia, geoprocesamiento, interno) se asigna a su WorkerError.kind distinto.
  • tests/test_config.py — validación de Settings.from_environment: variables requeridas, verificaciones de directorio/archivo, límites de enteros y el fallo rápido ante una geodatabase de scratch faltante.

La importación de efectos secundarios import arcgis_mcp.tools en la prueba del registro es lo que puebla el catálogo; está fijada con # noqa para que ningún linter la elimine nuevamente.

Análisis estático. Ruff aplica formato canónico más E/W/F/I/B/RUF a 88 columnas contra un piso de py311 (el código debe analizarse en el intérprete compatible más antiguo — Capa B). Los comentarios en turco son de primera clase: la ı/İ sin punto se registran bajo allowed-confusables, por lo que la prosa se configura alrededor, nunca se reescribe. Mypy ejecuta strict = true con el plugin de Pydantic en los 31 archivos fuente.

make format          # ruff format + import sorting (mutates)
make lint            # ruff check, mutates nothing
make type-check      # mypy --strict over arcgis_mcp/
make security-audit  # live registry inspection: path roles + confirm gates
make verify-all      # lint + type-check + security-audit, one gate
python -m pytest     # 86/86

04 — Marco de Seguridad (Sandbox PathGuard)

Cada argumento de sistema de archivos en cada contrato declara su rol — "read", "write" o "read_list" — en el mapeo de path_fields del modelo. Una función de aplicación compartida usa esas declaraciones en ambos procesos: la Capa A pre-verifica antes de que se genere un trabajador; la Capa B re-valida porque nunca confía en su padre.

Dos controles de límite:

  • validate_read(raw: str) — resuelve completamente la ruta (enlaces simbólicos, .., segmentos relativos colapsados antes de cualquier comparación) y requiere contención dentro de un directorio allowed_roots configurado. La existencia se aplica mediante una estrategia de resolución de prefijo existente más profundo: la ruta objetivo o su prefijo de geodatabase resoluble en el sistema de archivos debe existir. Esto es lo que hace que los datasets internos de GDB (…\city.gdb\roads) sean de primera clase — el contenedor .gdb se valida en el sistema de archivos, mientras que la cola lógica se restringe a nombres de datasets simples que solo arcpy puede resolver.
  • validate_write(raw: str, *, overwrite: bool) — misma resolución y contención, más nombres de datasets legalmente válidos para ArcGIS y la disciplina de sobrescritura: un objetivo existente nunca se reemplaza a menos que la solicitud establezca explícitamente overwrite: true.

Cualquier patrón de escape — secuencias de traversal, recursos compartidos UNC, bytes NUL, nombres de dispositivos reservados, objetivos fuera de la raíz — genera PathSecurityError inmediatamente: la solicitud se responde con un marco security estructurado y nunca se orquesta un subproceso para ella.


05 — 📦 Instalación

Elija la ruta de incorporación que coincida con su caso de uso.

Prerrequisitos

  • Windows con una instalación con licencia de ArcGIS Pro
  • Python 3.11 o más reciente para arcgis-mcp-bridge
  • Un directorio existente y escribible para ARCGIS_MCP_ALLOWED_ROOTS
  • Una geodatabase de archivos existente para ARCGIS_MCP_SCRATCH_GDB, a menos que <first allowed root>\scratch.gdb ya exista

Ruta A: Instalación pura de PyPI — Recomendada para usuarios de Windows

Esta es la configuración más simple y confiable para Claude Desktop y otros hosts de MCP en Windows. La configuración recomendada utiliza el mismo arcgis-mcp-env\python.exe tanto para la Capa A (el servidor MCP) como para la Capa B (el trabajador de ArcPy).

Elija un comando de instalación de arranque:

# Option A — pip
py -m pip install --upgrade arcgis-mcp-bridge

# Option B — uv
uv pip install --upgrade arcgis-mcp-bridge

Luego clone el entorno de Python de ArcGIS Pro:

# The final JSON report contains the target `python_exe` path.
py -m arcgis_mcp.setup_env

Si el comando de consola instalado está disponible en PATH, arcgis-mcp-setup es equivalente a py -m arcgis_mcp.setup_env.

Copie el valor de python_exe del informe JSON y asígnelo a continuación:

$ArcGISMcpPython = "C:\...\envs\arcgis-mcp-env\python.exe"

Elija un comando de instalación:

# Standard installation
& $ArcGISMcpPython -m pip install --upgrade arcgis-mcp-bridge

# OR: include the optional OpenCV-based sketch-to-GIS extension
& $ArcGISMcpPython -m pip install --upgrade "arcgis-mcp-bridge[vision]"

No ejecute ambos comandos; el segundo comando ya instala el paquete estándar junto con el extra vision.

Use $ArcGISMcpPython como intérprete del servidor MCP y como ARCPY_PYTHON_PATH. Esto evita que arcgis_mcp, Pydantic, pydantic-core y otras dependencias nativas se resuelvan desde una instalación de Python diferente.

Ruta B: Clonación de Git y desarrollo determinista — Contribuidores de GIS

Esta ruta mantiene la Capa A en un entorno de desarrollo hermético mientras ejecuta el trabajo de ArcPy en un trabajador arcgis-mcp-env clonado por separado y con licencia.

# 1. Clone the repository.
git clone https://github.com/muend/arcgis-mcp-bridge.git
cd arcgis-mcp-bridge

# 2. Create the isolated development environment.
#    Do not use --system-site-packages: Layer A must remain independent of arcpy.
uv venv --python "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe"

# 3. Synchronize the committed dependency resolution.
uv sync --locked

Elija un comando de aprovisionamiento de trabajador:

# Standard worker
uv run python -m arcgis_mcp.setup_env --install-runtime-deps --project-root .

# OR: worker with the optional OpenCV-based sketch-to-GIS extension
uv run python -m arcgis_mcp.setup_env --with-vision --project-root .

--with-vision implica la instalación de dependencias en tiempo de ejecución, por lo que los dos comandos no deben ejecutarse consecutivamente.

El comando de configuración es idempotente, acepta --env-name (predeterminado: arcgis-mcp-env) y --dry-run, y emite un informe JSON. Establezca ARCGIS_CONDA_EXE si el conda.exe de ArcGIS Pro no está disponible en PATH.

Integridad del intérprete del trabajador

La Capa B se lanza como:

ARCPY_PYTHON_PATH -m arcgis_mcp.worker

El intérprete referenciado por ARCPY_PYTHON_PATH debe poder importar la pila completa del trabajador:

arcgis_mcp
pydantic
pydantic_core
arcpy

Para una instalación inicial en Windows, use el mismo arcgis-mcp-env\python.exe para el command del servidor y ARCPY_PYTHON_PATH. Los entornos separados de servidor y trabajador siguen siendo compatibles para el desarrollo, pero el intérprete del trabajador debe contener su propia instalación compatible de arcgis-mcp-bridge y todas las dependencias de tiempo de ejecución.

Ejecute esta verificación previa antes de configurar el host MCP:

$ArcGISMcpPython = "C:\...\envs\arcgis-mcp-env\python.exe"

& $ArcGISMcpPython -c "import sys, arcgis_mcp, pydantic, pydantic_core; print(sys.executable); print('Bridge runtime OK')"
& $ArcGISMcpPython -c "import arcpy; print('ArcPy', arcpy.GetInstallInfo().get('Version'))"

Variables de entorno

VariableRequeridoPropósito
ARCPY_PYTHON_PATHRuta absoluta al trabajador con licencia python.exe; debe resolver arcgis_mcp, Pydantic/pydantic_core y ArcPy
ARCGIS_MCP_ALLOWED_ROOTSnoRaíces de límite de PathGuard separadas por ; en Windows; predeterminado a ~/Documents/ArcGIS/Projects
ARCGIS_MCP_SCRATCH_GDBnoEspacio de trabajo de salida predeterminado; si se omite, predeterminado a <first allowed root>\scratch.gdb; la GDB ya debe existir
ARCGIS_MCP_LOG_FILEnoRuta opcional de archivo de registro rotativo
ARCGIS_MCP_LOG_LEVELnoDEBUG, INFO, WARNING o ERROR; predeterminado INFO
ARCGIS_MCP_TOOL_TIMEOUTnoTiempo de espera positivo por trabajo en segundos; predeterminado 600
ARCGIS_MCP_MAX_WORKERSnoLímite máximo de trabajadores ArcPy concurrentes; predeterminado 2, protegiendo asientos de licencia y RAM

Configuración de Claude Desktop

ARCPY_PYTHON_PATH es requerido en cada configuración y debe apuntar al intérprete con licencia informado por el comando de configuración.

Reemplace cada ruta de marcador de posición a continuación con una ruta existente en su máquina. La geodatabase de trabajo (scratch) ya debe existir.

Opción 1: Entorno PyPI unificado — Recomendado en Windows

Use el mismo intérprete para el servidor MCP y el trabajador de ArcPy:

{
  "mcpServers": {
    "arcgis-mcp-bridge": {
      "command": "C:\\...\\envs\\arcgis-mcp-env\\python.exe",
      "args": [
        "-m",
        "arcgis_mcp.server"
      ],
      "env": {
        "ARCPY_PYTHON_PATH": "C:\\...\\envs\\arcgis-mcp-env\\python.exe",
        "ARCGIS_MCP_ALLOWED_ROOTS": "C:\\GIS\\Data;C:\\Workspace",
        "ARCGIS_MCP_SCRATCH_GDB": "C:\\GIS\\Data\\scratch.gdb",
        "ARCGIS_MCP_MAX_WORKERS": "2"
      }
    }
  }
}

Los valores de command y ARCPY_PYTHON_PATH deben ser idénticos en esta configuración. Use el valor de python_exe devuelto por el comando de configuración.

Opción 2: Entorno de desarrollo Git local

Use el .venv del repositorio para la Capa A y el arcgis-mcp-env aprovisionado para la Capa B:

{
  "mcpServers": {
    "arcgis-mcp-bridge": {
      "command": "C:\\path\\to\\arcgis-mcp-bridge\\.venv\\Scripts\\python.exe",
      "args": [
        "-m",
        "arcgis_mcp.server"
      ],
      "env": {
        "ARCPY_PYTHON_PATH": "C:\\...\\envs\\arcgis-mcp-env\\python.exe",
        "ARCGIS_MCP_ALLOWED_ROOTS": "C:\\GIS\\Data;C:\\Workspace",
        "ARCGIS_MCP_SCRATCH_GDB": "C:\\GIS\\Data\\scratch.gdb",
        "ARCGIS_MCP_MAX_WORKERS": "2"
      }
    }
  }
}

Esta configuración de entorno dividido asume que el trabajador fue aprovisionado desde el repositorio con uno de los comandos de configuración de la Ruta B anteriores. PYTHONPATH no es requerido cuando uv sync --locked ha instalado el proyecto en el .venv del repositorio.

Un comando arcgis-mcp-server resuelto globalmente puede funcionar, pero crea un despliegue de entorno dividido. No se recomienda para la configuración inicial en Windows a menos que el entorno del trabajador haya sido aprovisionado y verificado por separado.

Después de reiniciar el host MCP, llame primero a health_check. Verifica la ruta IPC de servidor a trabajador e informa el intérprete del trabajador seleccionado sin importar ArcPy. Luego ejecute una herramienta de ArcGIS de solo lectura o el comando de verificación previa de ArcPy anterior para validar el tiempo de ejecución con licencia.


06 — Solución de problemas

Worker process exited with code 1

Si el servidor MCP se inicia pero todas las herramientas de ArcGIS fallan, inspeccione el registro del servidor para ver el rastreo del trabajador. Las causas comunes relacionadas con el entorno incluyen:

ModuleNotFoundError: No module named 'arcgis_mcp'
ModuleNotFoundError: No module named 'pydantic_core._pydantic_core'

Estos errores generalmente significan que el trabajador está usando una instalación de Python diferente, el puente no se instaló en el intérprete del trabajador, o el trabajador contiene una instalación de Pydantic incompleta o incompatible. La solución recomendada es la configuración de entorno unificado documentada anteriormente.

Para la configuración unificada recomendada, confirme que ambos valores son idénticos:

"command": "C:\\...\\envs\\arcgis-mcp-env\\python.exe"
"ARCPY_PYTHON_PATH": "C:\\...\\envs\\arcgis-mcp-env\\python.exe"

Instale o actualice el puente dentro de ese intérprete exacto:

$ArcGISMcpPython = "C:\...\envs\arcgis-mcp-env\python.exe"
& $ArcGISMcpPython -m pip install --upgrade arcgis-mcp-bridge

Verifique el ejecutable seleccionado y las dependencias del puente:

& $ArcGISMcpPython -c "import sys, arcgis_mcp, pydantic, pydantic_core; print(sys.executable); print('Bridge runtime OK')"

Luego verifique ArcPy por separado:

& $ArcGISMcpPython -c "import arcpy; print('ArcPy', arcpy.GetInstallInfo().get('Version'))"

Si la verificación del puente aún falla específicamente dentro de pydantic_core, reinstale Pydantic en el mismo entorno para que pip restaure la dependencia compilada correspondiente:

& $ArcGISMcpPython -m pip install --upgrade --force-reinstall --no-cache-dir "pydantic>=2.5,<3"

Reinicie completamente el host MCP después de cambiar su entorno de Python o configuración.

ARCPY_PYTHON_PATH apunta al ejecutable incorrecto

Un entorno conda de Windows normalmente coloca su intérprete en la raíz del entorno:

C:\...\envs\arcgis-mcp-env\python.exe

No use otra instalación global de Python ni una ruta arcgis-mcp-env\Scripts\python.exe inexistente.

Error de inicio de la geodatabase de trabajo (scratch)

El espacio de trabajo de scratch predeterminado es:

<first allowed root>\scratch.gdb

Debe existir ya. Créelo en ArcGIS Pro o establezca ARCGIS_MCP_SCRATCH_GDB a una geodatabase de archivos existente antes de reiniciar el host MCP.

health_check tiene éxito pero las herramientas de ArcGIS aún fallan

health_check verifica intencionalmente el límite del proceso de servidor a trabajador sin importar ArcPy. Un resultado exitoso confirma la selección de IPC e intérprete, pero no prueba que ArcPy o una licencia de extensión opcional de Esri puedan cargarse.

Ejecute el comando de verificación previa de ArcPy anterior e inspeccione el error estructurado del trabajador para obtener detalles de license, geoprocessing o internal.


07 — Compatibilidad

ArcGIS ProPython incluidoEstado
3.33.11✅ Plataforma de referencia
3.43.11⚠ Reportado por la comunidad; verifique con las verificaciones previas
3.1–3.23.9❌ No compatible con el requisito actual del paquete Python >=3.11

Solo Windows. ArcPy requiere una instalación con licencia de ArcGIS Pro en Windows. La Capa A puede ejecutarse en otras plataformas para desarrollo y CI simulado, pero la Capa B requiere ArcGIS Pro.

El paquete del puente en sí requiere Python 3.11 o más reciente. Las versiones de ArcGIS Pro cuyo entorno de Python clonado sea anterior a 3.11 no pueden ejecutar el paquete de trabajador actual.


08 — Licencia

Licencia Apache 2.0. Consulte LICENSE.