Skip to main content
Glama
y0urday

dsh-arcgis-pro-bridge

by y0urday

dsh-arcgis-pro-bridge

Lässt Modelle in DeepSeek Harness (DSH) direkt auf das lokale ArcGIS Pro zugreifen: Projekte, Layer und GDB-Strukturen lesen sowie Buffer / Clip / benutzerdefiniertes ArcPy ausführen.

Dieses Projekt bettet den Python-MCP-Dienst von ArcGIS-Pro-Bridge-MCP-Server in ein DSH-Bundle-Plugin ein und startet ihn über den offiziellen @deepseek-ai/dsh-mcp-client von DSH per stdio. Die vom Modell sichtbaren Toolnamen sehen wie folgt aus:

  • 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

Architektur

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 子进程执行

Kernpunkte:

  • Läuft nur auf dem lokalen Rechner und öffnet keinen Netzwerk-Port.

  • ArcPy wird immer in der mit ArcGIS Pro mitgelieferten Python-Umgebung ausgeführt und verschmutzt nicht die Node-Umgebung von DSH.

  • Die offizielle MCP-Bridge von DSH überbrückt derzeit nur Tools; die arcgis://-Ressourcen des Upstreams werden nicht registriert. Für Leseoperationen verwende das gleichnamige Tool (z. B. inspect_gdb).

  • execute_arcpy_code bedeutet die Ausführung von Code auf dem lokalen Rechner. Nur auf vertrauenswürdigen Maschinen aktivieren und vor Schreiboperationen Daten sichern.

Related MCP server: ArcGIS Pro Bridge MCP Server

Systemanforderungen

  • Windows (ArcGIS Pro unterstützt nur Windows)

  • ArcGIS Pro ist installiert und lässt sich normal starten

  • DeepSeek Harness (Entwicklungsvorschau; dieses Plugin wurde mit 0.1.0-rc.6 verifiziert; Node.js >= 22.19)

  • Empfohlen wird die Installation von uv; ohne uv kann ein Python 3.11+ mit installiertem mcp-Paket verwendet werden.

Installation (empfohlen: direkte Installation von GitHub)

Dieses Projekt besteht aus reinem ESM-JavaScript + vendored Python ohne Build-Schritt, daher ist für die direkte Installation von GitHub keine Build-Berechtigung erforderlich. Es wird empfohlen, eine bestimmte Commit-Version zu fixieren:

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

Prüfen, ob der Patch in die Konfiguration aufgenommen wurde:

dsh --profile web --dump-config

In der Ausgabe sollte die Zeile arcgis-pro-bridge erscheinen, wobei name auf dieses Paket aufgelöst wird. Anschließend dsh web vollständig neu starten.

Alternative: Installation nach Veröffentlichung auf npm

Das Paket enthält bereits eine files-Whitelist und kann direkt veröffentlicht werden:

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

Warum die direkte GitHub-Installation ohne Build-Skript empfohlen wird

DSH-Plugins haben drei Verteilungswege: lokales Verzeichnis, npm-Paket und github:-Direktinstallation. Bei Verwendung von TypeScript + prepare-Build würde die GitHub-Installation vom Benutzer verlangen, allowBuilds im eigenen Profil zu konfigurieren – das erlaubt die Ausführung deines Codes während der Installation und erhöht die Hürde. Dieses Repository wird bewusst in reinem JavaScript gehalten, sodass alle drei Wege direkt funktionieren; die GitHub-Direktinstallation bietet die beste Erfahrung. Ein späterer Umstieg auf npm erfordert keine Änderung der Struktur.

Veröffentlichung auf GitHub

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

Es wird empfohlen, dem Repository das Topic dsh-plugin hinzuzufügen, um die Auffindbarkeit im Ökosystem zu erleichtern. Nach der Veröffentlichung ersetzt du den obigen Installationsbefehl durch deinen eigenen Owner und Commit:

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

Falls zusätzlich auf npm veröffentlicht werden soll, ist die files-Whitelist im Paket bereits vorhanden; ein einfaches npm publish genügt. Die beiden Installationswege npm und GitHub können nebeneinander bestehen.

Konfiguration

Die Standardkonfiguration ist in cordis.patch.yml hinterlegt und muss normalerweise nicht geändert werden. Alle Felder haben Standardwerte im Config-Schema von index.js:

Feld

Standard

Beschreibung

serverName

arcgis

Tool-Präfix auf Modellseite mcp__<serverName>__*

launcher

uv

uv: Start mit pyproject + lock aus dem Paket; python: Skript direkt mit pythonExecutable ausführen (dieser Interpreter muss mcp installiert haben)

pythonExecutable

python

Nur bei launcher: python verwendet; dies ist das normale Python für den MCP-Dienst, ArcPy wird weiterhin automatisch vom Dienst erkannt

extraArgs

[]

Zusätzliche Argumente für den Python-Dienstprozess

env

{}

Zusätzliche Umgebungsvariablen, z. B. ARCGIS_PRO_PYTHON / ARCGIS_PRO_INSTALL_DIR

toolCallTimeoutMs

300000

Timeout für einen einzelnen ArcGIS-Toolaufruf (Millisekunden)

failOnStartupError

false

Ob ein Fehler bei der ersten Verbindung die Plugin-Aktivierung fehlschlagen lässt

reconnect.*

siehe unten

Exponentielle Backoff-Wiederverbindungsstrategie nach Verbindungsabbruch des Unterprozesses

Standardwerte für reconnect: enabled: true, initialDelayMs: 500, maxDelayMs: 30000, maxAttempts: 10.

Beispiel für eine Benutzer-Überschreibung

In $DSH_HOME/profiles/web/cordis.patch.yml (oder beim Start mit --patch) kann die gesamte Zeile per id überschrieben werden:

- 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

Hinweis: Die Patch-Überschreibung ersetzt config vollständig, sie ist kein Deep Merge; nicht angegebene Felder fallen auf die Schema-Standardwerte zurück.

Erste Testreihenfolge

  1. Lass das Modell mcp__arcgis__ping aufrufen, um zu bestätigen, dass der Tool-Pfad wirklich erreicht wird.

  2. Rufe mcp__arcgis__health_check und dann mcp__arcgis__doctor auf, um sicherzustellen, dass ArcGIS Pro Python gefunden und ArcPy importiert werden kann.

  3. Aktuelles Projekt lesen: mcp__arcgis__list_gis_layers (oder .aprx-Pfad übergeben).

  4. GDB lesen: mcp__arcgis__inspect_gdb.

  5. Erst zum Schluss mcp__arcgis__buffer_features / clip_features / execute_arcpy_code ausprobieren; vor Schreiboperationen sichern.

Dieser Prompt kann dem Modell übergeben werden:

Verwende keine Shell und schreibe keine Testskripte. Rufe direkt das verfügbare mcp__arcgis__ping auf, dann mcp__arcgis__health_check, und teile mir beide Rückgaben vollständig mit.

Fehlerbehebung

  • Tool erscheint nicht: Zuerst dsh --profile web --dump-config ausführen, um zu prüfen, ob die Zeile arcgis-pro-bridge vorhanden ist und keine Ladefehler auftreten; sicherstellen, dass dsh web neu gestartet wurde.

  • uv wird nicht gefunden: Mit where uv (CMD) bzw. Get-Command uv (PowerShell) prüfen, ob es im PATH ist; andernfalls auf launcher: python umstellen und pip install "mcp[cli]>=1.9.4" ausführen.

  • ArcGIS Pro wird nicht erkannt: detect_arcgis_environment aufrufen; oder über env.ARCGIS_PRO_PYTHON / ARCGIS_PRO_INSTALL_DIR explizit angeben.

  • Aktuelles Projekt wird nicht gelesen: ArcGISProject("CURRENT") ist vom ArcGIS-Pro-Laufzeitkontext abhängig; bei Fehlern einfach den .aprx-Pfad an das Tool übergeben.

  • ArcPy-Sperrfehler: Ebenen/Sitzungen schließen, die gerade bearbeitet werden, oder externe Programme beenden, die die Daten belegen, dann erneut versuchen.

  • Logs: dsh protokolliert Verbindungs- und Wiederverbindungsvorgänge von arcgis-pro-bridge und mcp-client(arcgis); bei Verbindungsfehlern und failOnStartupError: false startet mcp-client zwar, registriert die Tools aber vorerst nicht und versucht es gemäß der reconnect-Strategie erneut.

Lokale Prüfung

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

Synchronisierung mit dem Upstream

server/ enthält eine vendored Kopie des MIT-lizenzierten Codes aus dem Upstream-Repository; Quelle und Commit-Nummer sind in NOTICE festgehalten. Für ein Update:

npm run sync-upstream

Das Skript klont den neuesten Stand des Upstreams erneut, überschreibt server/*.py, pyproject.toml und uv.lock und aktualisiert automatisch die Commit-Nummer in NOTICE. Nach der Synchronisierung zunächst die oben genannten Prüfungen ausführen und anschließend einen Smoketest mit ping → health_check → doctor unter Windows + ArcGIS Pro durchführen.

Lizenz

Dieses Repository steht unter MIT. Der vendored Python-Dienstcode stammt aus Sangwxx/ArcGIS-Pro-Bridge-MCP-Server (MIT); die vollständige Lizenz befindet sich in server/UPSTREAM_LICENSE, weitere Hinweise in 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