dsh-arcgis-pro-bridge
dsh-arcgis-pro-bridge
DeepSeek Harness (DSH)의 모델이 로컬 ArcGIS Pro를 직접 호출할 수 있게 합니다: 프로젝트, 레이어, GDB 구조를 읽고 Buffer / Clip / 사용자 정의 ArcPy를 실행합니다.
이 프로젝트는 ArcGIS-Pro-Bridge-MCP-Server의 Python MCP 서비스를 DSH bundle 플러그인에 내장하고, DSH에 포함된 공식 @deepseek-ai/dsh-mcp-client를 통해 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는 항상 ArcGIS Pro에 내장된 Python에서 실행되므로 DSH의 Node 환경을 오염시키지 않습니다.
DSH 공식 MCP 브리지는 현재 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가 없으면
mcp패키지가 설치된 Python 3.11+ 사용 가능
설치(권장: 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.0GitHub 직접 설치 + 빌드 스크립트 없음을 권장하는 이유
DSH 플러그인에는 세 가지 배포 방식이 있습니다: 로컬 디렉터리, npm 패키지, github: 직접 설치. TypeScript + prepare 빌드를 사용하면 GitHub 직접 설치 시 사용자가 자신의 profile에 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에 이미 작성되어 있어 일반적으로 수정할 필요가 없습니다. 모든 필드는 index.js의 Config 스키마에 기본값이 있습니다:
필드 | 기본값 | 설명 |
|
| 모델 측 도구 접두사 |
|
|
|
|
|
|
|
| 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)의 연결 및 재연결 로그를 출력합니다.mcp-client는 연결 실패 시failOnStartupError: false이면 시작은 되지만 도구는 등록하지 않고reconnect전략에 따라 재시도합니다.
로컬 검증
npm run check # node --check index.js
npm test # vendored 文件清单一致性测试
uv run --project server server/arcgis_mcp_server.py # 直接启动服务,应进入等待状态업스트림 동기화
server/에는 업스트림 저장소의 MIT 라이선스 코드 vendored 복사본이 있으며, 출처와 커밋 번호는 NOTICE에 기록됩니다. 업데이트 시:
npm run sync-upstream스크립트는 업스트림 최신 코드를 다시 클론하고 server/*.py, pyproject.toml, uv.lock을 덮어쓰며 NOTICE의 commit 번호를 자동으로 업데이트합니다. 동기화 후에는 위의 검증을 먼저 실행한 다음 Windows + ArcGIS Pro에서 ping → health_check → doctor 스모크 테스트를 수행하세요.
라이선스
이 저장소는 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