Skip to main content
Glama
y0urday

dsh-arcgis-pro-bridge

by y0urday

dsh-arcgis-pro-bridge

Позволяет моделям в DeepSeek Harness (DSH) напрямую вызывать локальный ArcGIS Pro: читать проекты, слои и структуру GDB, а также выполнять Buffer / Clip / пользовательский ArcPy.

Этот проект встраивает Python-сервис MCP из ArcGIS-Pro-Bridge-MCP-Server в плагин DSH bundle и запускает его через официальный @deepseek-ai/dsh-mcp-client из состава DSH по stdio. Имена инструментов, которые видит модель, выглядят так:

  • mcp__arcgis__ping

  • mcp__arcgis__health_check

  • mcp__arcgis__doctor

  • mcp__arcgis__detect_arcgis_environment

  • mcp__arcgis__debug_runtime_context

  • mcp__arcgis__list_gis_layers

  • mcp__arcgis__inspect_project_context

  • mcp__arcgis__inspect_gdb

  • mcp__arcgis__buffer_features

  • mcp__arcgis__clip_features

  • mcp__arcgis__execute_arcpy_code

  • mcp__arcgis__build_gis_resource_uri

  • mcp__arcgis__generate_sync_plan

Архитектура

DSH (Node.js)
  └─ 本插件 bundle(cordis.patch.yml,插入两行)
       ├─ dsh-arcgis-pro-bridge:提供 arcgisProBridge 服务(启动配方)
       └─ @deepseek-ai/dsh-mcp-client(DSH 官方内置桥接,注入该服务)
            └─ stdio: uv run --project <包内 server/> arcgis_mcp_server.py
                 └─ ArcPy 逻辑通过 ArcGIS Pro 自带 Python 子进程执行

Ключевые моменты:

  • Работает только на локальной машине, сетевые порты не открываются.

  • ArcPy всегда выполняется в собственном Python ArcGIS Pro и не загрязняет окружение Node в DSH.

  • Официальный MCP-мост DSH в настоящее время поддерживает только Tools; arcgis:// Resources из вышестоящего сервера не регистрируются. Для операций чтения используйте одноимённый Tool (например, inspect_gdb).

  • execute_arcpy_code означает выполнение кода на этой машине. Включайте его только на доверенных машинах и делайте резервную копию данных перед операциями записи.

Related MCP server: ArcGIS Pro Bridge MCP Server

Требования к окружению

  • Windows (ArcGIS Pro поддерживает только Windows)

  • ArcGIS Pro установлен и запускается без проблем

  • DeepSeek Harness (предварительная версия для разработчиков; плагин проверен с 0.1.0-rc.6; Node.js >= 22.19)

  • Рекомендуется установить uv; если uv нет, можно использовать Python 3.11+ с установленным пакетом mcp

Установка (рекомендуется: напрямую с GitHub)

Этот проект представляет собой чистый ESM JavaScript + встроенный (vendored) Python, без шагов сборки, поэтому прямая установка с GitHub не требует прав на сборку. Рекомендуется зафиксировать конкретный коммит:

dsh plugin --profile web add github:y0urday/dsh-arcgis-pro-bridge#<commit-sha>

Проверьте, что patch попал в конфигурацию:

dsh --profile web --dump-config

В выводе должна появиться строка arcgis-pro-bridge, а name должен разрешаться в этот пакет. Затем полностью перезапустите dsh web.

Альтернатива: установка после публикации в npm

В пакете уже есть белый список files, его можно сразу публиковать:

npm publish
dsh plugin --profile web add dsh-arcgis-pro-bridge@0.1.0

Почему рекомендуется установка с GitHub + без скриптов сборки

Плагины DSH распространяются тремя способами: локальный каталог, npm-пакет и прямая установка github:. Если использовать TypeScript + сборку через prepare, прямая установка с GitHub потребует от пользователя настроить allowBuilds в своём профиле, что равносильно разрешению выполнять ваш код во время установки, — порог входа выше. Этот репозиторий намеренно остаётся на чистом JavaScript, поэтому все три способа работают напрямую, а установка с GitHub даёт лучший опыт; в будущем для публикации в npm менять структуру не придётся.

Публикация на GitHub

cd dsh-arcgis-pro-bridge
git remote add origin git@github.com:y0urday/dsh-arcgis-pro-bridge.git
git push -u origin main

Рекомендуется добавить репозиторию тему dsh-plugin, чтобы его было легче найти в экосистеме. После публикации замените команду установки выше на своё owner и commit:

dsh plugin --profile web add github:y0urday/dsh-arcgis-pro-bridge#<commit-sha>

Если нужно также опубликовать в npm, белый список files уже готов, достаточно выполнить npm publish; способы установки через npm и GitHub могут сосуществовать.

Конфигурация

Конфигурация по умолчанию уже записана в cordis.patch.yml, обычно менять ничего не нужно. Все поля имеют значения по умолчанию в схеме Config в index.js:

Поле

По умолчанию

Описание

serverName

arcgis

Префикс инструментов на стороне модели mcp__<serverName>__*

launcher

uv

uv: запуск через pyproject + lock из пакета; python: запуск скрипта напрямую через pythonExecutable (в этом интерпретаторе должен быть установлен mcp)

pythonExecutable

python

Используется только при launcher: python; это обычный Python для запуска MCP-сервиса, ArcPy по-прежнему обнаруживается сервисом автоматически

extraArgs

[]

Дополнительные аргументы для процесса Python-сервиса

env

{}

Дополнительные переменные окружения, например ARCGIS_PRO_PYTHON / ARCGIS_PRO_INSTALL_DIR

toolCallTimeoutMs

300000

Таймаут одного вызова инструмента ArcGIS (мс)

failOnStartupError

false

Должна ли активация плагина завершаться ошибкой при первом сбое подключения

reconnect.*

см. ниже

Стратегия повторного подключения с экспоненциальной задержкой после разрыва дочернего процесса

Значения по умолчанию reconnect: enabled: true, initialDelayMs: 500, maxDelayMs: 30000, maxAttempts: 10.

Пример переопределения пользователем

В $DSH_HOME/profiles/web/cordis.patch.yml (или с помощью --patch при запуске) переопределите конфигурацию по id:

- id: arcgis-pro-bridge
  config:
    serverName: arcgis
    launcher: python
    pythonExecutable: python
    failOnStartupError: true
    env:
      ARCGIS_PRO_PYTHON: C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe

Примечание: переопределение через patch заменяет блок config целиком, а не выполняет глубокое слияние; неуказанные поля возвращаются к значениям по умолчанию из схемы.

Порядок первого тестирования

  1. Попросите модель вызвать mcp__arcgis__ping, чтобы убедиться, что она действительно вошла в цепочку инструментов.

  2. Вызовите mcp__arcgis__health_check, затем mcp__arcgis__doctor, чтобы убедиться, что ArcGIS Pro Python обнаруживается и ArcPy можно импортировать.

  3. Прочитайте текущий проект: mcp__arcgis__list_gis_layers (или передайте путь .aprx).

  4. Прочитайте GDB: mcp__arcgis__inspect_gdb.

  5. И только в конце пробуйте mcp__arcgis__buffer_features / clip_features / execute_arcpy_code; перед записью делайте резервную копию.

Можно скопировать этот промпт модели:

Не используйте shell, не пишите тестовых скриптов. Напрямую вызовите доступный mcp__arcgis__ping, затем mcp__arcgis__health_check и полностью сообщите мне результаты обоих вызовов.

Устранение неполадок

  • Инструменты не появляются: сначала выполните dsh --profile web --dump-config, убедитесь, что строка arcgis-pro-bridge присутствует и нет ошибок загрузки; убедитесь, что dsh web перезапущен.

  • uv не найден: where uv (CMD) / Get-Command uv (PowerShell) — проверьте, что он в PATH; иначе переключитесь на launcher: python и установите pip install "mcp[cli]>=1.9.4".

  • ArcGIS Pro не обнаруживается: вызовите detect_arcgis_environment; или укажите явно через env.ARCGIS_PRO_PYTHON / ARCGIS_PRO_INSTALL_DIR.

  • Не удаётся прочитать текущий проект: ArcGISProject("CURRENT") зависит от контекста запуска ArcGIS Pro; при сбое передайте инструменту путь .aprx напрямую.

  • Ошибка блокировки ArcPy: закройте редактируемые слои/сеансы или завершите внешние программы, занимающие данные, и повторите попытку.

  • Журналы: dsh выводит журналы подключения и переподключения arcgis-pro-bridge и mcp-client(arcgis); при сбое подключения и failOnStartupError: false mcp-client запускается, но временно не регистрирует инструменты и повторяет попытки по стратегии reconnect.

Локальная проверка

npm run check          # node --check index.js
npm test               # vendored 文件清单一致性测试
uv run --project server server/arcgis_mcp_server.py   # 直接启动服务,应进入等待状态

Синхронизация с вышестоящим репозиторием

В server/ находится встроенная (vendored) копия кода вышестоящего репозитория под лицензией MIT; источник и номер коммита указаны в NOTICE. При обновлении:

npm run sync-upstream

Скрипт заново клонирует последний код вышестоящего репозитория, перезаписывает server/*.py, pyproject.toml, uv.lock и автоматически обновляет номер коммита в NOTICE. После синхронизации сначала запустите указанную выше проверку, затем выполните смоук-тест ping → health_check → doctor на Windows + ArcGIS Pro.

Лицензия

Этот репозиторий распространяется под лицензией MIT. Включённый (vendored) код Python-сервиса взят из Sangwxx/ArcGIS-Pro-Bridge-MCP-Server (MIT); полная лицензия доступна в server/UPSTREAM_LICENSE, пояснения — в NOTICE.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent

View all MCP Connectors

Latest Blog Posts

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/y0urday/dsh-arcgis-pro-bridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server