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 を実行します。

このプロジェクトは、ArcGIS-Pro-Bridge-MCP-Server の Python MCP サービスを DSH バンドルプラグインに組み込み、DSH 標準の公式 @deepseek-ai/dsh-mcp-client を介して 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 は常に 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 直接インストールでは build 権限は不要です。特定の commit に固定することをお勧めします:

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

パッチが設定に反映されたことを確認:

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 プラグインには3つの配布方法があります:ローカルディレクトリ、npm パッケージ、github: 直接インストール。TypeScript + prepare ビルドを使用すると、GitHub 直接インストールでは、ユーザーが自分の profile で allowBuilds を設定する必要があり、これはインストール時にあなたのコードを実行することを許可することに等しいため、ハードルが高くなります。このリポジトリは意図的に純粋な JavaScript に保たれており、3つの方法すべてでそのまま使用でき、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 の2つのインストール方法は併用できます。

設定

デフォルト設定は cordis.patch.yml に書き込まれており、通常は変更の必要はありません。すべてのフィールドは index.jsConfig schema にデフォルト値を持っています:

フィールド

デフォルト

説明

serverName

arcgis

モデル側のツールプレフィックス mcp__<serverName>__*

launcher

uv

uv:パッケージ内の pyproject + lock で起動;pythonpythonExecutable でスクリプトを直接実行(このインタープリターには mcp がインストールされている必要があります)

pythonExecutable

python

launcher: python のときのみ使用;これは MCP サービスを実行する通常の Python で、ArcPy は引き続きサービスが自動検出します

extraArgs

[]

Python サービスプロセスに追加する引数

env

{}

追加の環境変数。例:ARCGIS_PRO_PYTHON / ARCGIS_PRO_INSTALL_DIR

toolCallTimeoutMs

300000

単一の ArcGIS ツール呼び出しのタイムアウト(ミリ秒)

failOnStartupError

false

初回接続失敗時にプラグインのアクティベーションを失敗させるかどうか

reconnect.*

下記参照

子プロセス切断後の指数バックオフ再接続戦略

reconnect のデフォルト値:enabled: trueinitialDelayMs: 500maxDelayMs: 30000maxAttempts: 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

注意:パッチの上書きは config 全体を置き換えるものであり、深いマージではありません。記述されていないフィールドは schema のデフォルト値に戻ります。

初回テストの順序

  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 を呼び出して、2つの戻り結果を完全に教えてください。

トラブルシューティング

  • ツールが表示されない:最初に 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 のロックエラー:編集中のレイヤー/セッションを閉じるか、データを占有している外部プログラムを終了してから再試行します。

  • ログdsharcgis-pro-bridgemcp-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/*.pypyproject.tomluv.lock を上書きし、NOTICE 内の commit 番号を自動更新します。同期後は、まず上記の検証を実行し、その後に Windows + ArcGIS Pro で ping → health_check → doctor のスモークテストを実施してください。

ライセンス

このリポジトリは 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