dsh-arcgis-pro-bridge
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__pingmcp__arcgis__health_checkmcp__arcgis__doctormcp__arcgis__detect_arcgis_environmentmcp__arcgis__debug_runtime_contextmcp__arcgis__list_gis_layersmcp__arcgis__inspect_project_contextmcp__arcgis__inspect_gdbmcp__arcgis__buffer_featuresmcp__arcgis__clip_featuresmcp__arcgis__execute_arcpy_codemcp__arcgis__build_gis_resource_urimcp__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:
Поле | По умолчанию | Описание |
|
| Префикс инструментов на стороне модели |
|
|
|
|
| Используется только при |
|
| Дополнительные аргументы для процесса Python-сервиса |
|
| Дополнительные переменные окружения, например |
|
| Таймаут одного вызова инструмента ArcGIS (мс) |
|
| Должна ли активация плагина завершаться ошибкой при первом сбое подключения |
| см. ниже | Стратегия повторного подключения с экспоненциальной задержкой после разрыва дочернего процесса |
Значения по умолчанию 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целиком, а не выполняет глубокое слияние; неуказанные поля возвращаются к значениям по умолчанию из схемы.
Порядок первого тестирования
Попросите модель вызвать
mcp__arcgis__ping, чтобы убедиться, что она действительно вошла в цепочку инструментов.Вызовите
mcp__arcgis__health_check, затемmcp__arcgis__doctor, чтобы убедиться, что ArcGIS Pro Python обнаруживается и ArcPy можно импортировать.Прочитайте текущий проект:
mcp__arcgis__list_gis_layers(или передайте путь.aprx).Прочитайте GDB:
mcp__arcgis__inspect_gdb.И только в конце пробуйте
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: falsemcp-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.
This server cannot be installed
Maintenance
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
- Flicense-qualityDmaintenanceExposes ArcGIS Pro geoprocessing capabilities to LLMs via the arcpy library, enabling automated spatial analysis and data management. It provides a comprehensive suite of tools for vector geoprocessing, terrain analysis, and raster operations designed for GIS workflows.4
- AlicenseCqualityCmaintenanceA local MCP server that enables AI clients to read ArcGIS Pro project information and execute ArcPy geoprocessing in the native ArcGIS Pro Python environment.1382MIT
- AlicenseAqualityCmaintenanceEnables natural language control of live ArcGIS Pro sessions through the Model Context Protocol, allowing inspection of projects, layers, and attributes, and execution of geoprocessing tasks.251MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to control ArcGIS Pro through natural language, executing geoprocessing tools, editing data, and automating GIS workflows via a persistent ArcPy session.12Apache 2.0
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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