dsh-arcgis-pro-bridge
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__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
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_codebedeutet 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.6verifiziert; 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-configIn 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.0Warum 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 mainEs 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 |
|
| Tool-Präfix auf Modellseite |
|
|
|
|
| Nur bei |
|
| Zusätzliche Argumente für den Python-Dienstprozess |
|
| Zusätzliche Umgebungsvariablen, z. B. |
|
| Timeout für einen einzelnen ArcGIS-Toolaufruf (Millisekunden) |
|
| Ob ein Fehler bei der ersten Verbindung die Plugin-Aktivierung fehlschlagen lässt |
| 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.exeHinweis: Die Patch-Überschreibung ersetzt
configvollständig, sie ist kein Deep Merge; nicht angegebene Felder fallen auf die Schema-Standardwerte zurück.
Erste Testreihenfolge
Lass das Modell
mcp__arcgis__pingaufrufen, um zu bestätigen, dass der Tool-Pfad wirklich erreicht wird.Rufe
mcp__arcgis__health_checkund dannmcp__arcgis__doctorauf, um sicherzustellen, dass ArcGIS Pro Python gefunden und ArcPy importiert werden kann.Aktuelles Projekt lesen:
mcp__arcgis__list_gis_layers(oder.aprx-Pfad übergeben).GDB lesen:
mcp__arcgis__inspect_gdb.Erst zum Schluss
mcp__arcgis__buffer_features/clip_features/execute_arcpy_codeausprobieren; vor Schreiboperationen sichern.
Dieser Prompt kann dem Modell übergeben werden:
Verwende keine Shell und schreibe keine Testskripte. Rufe direkt das verfügbare
mcp__arcgis__pingauf, dannmcp__arcgis__health_check, und teile mir beide Rückgaben vollständig mit.
Fehlerbehebung
Tool erscheint nicht: Zuerst
dsh --profile web --dump-configausführen, um zu prüfen, ob die Zeilearcgis-pro-bridgevorhanden ist und keine Ladefehler auftreten; sicherstellen, dassdsh webneu gestartet wurde.uvwird nicht gefunden: Mitwhere uv(CMD) bzw.Get-Command uv(PowerShell) prüfen, ob es im PATH ist; andernfalls auflauncher: pythonumstellen undpip install "mcp[cli]>=1.9.4"ausführen.ArcGIS Pro wird nicht erkannt:
detect_arcgis_environmentaufrufen; oder überenv.ARCGIS_PRO_PYTHON/ARCGIS_PRO_INSTALL_DIRexplizit 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:
dshprotokolliert Verbindungs- und Wiederverbindungsvorgänge vonarcgis-pro-bridgeundmcp-client(arcgis); bei Verbindungsfehlern undfailOnStartupError: falsestartetmcp-clientzwar, registriert die Tools aber vorerst nicht und versucht es gemäß derreconnect-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-upstreamDas 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.
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