ArcGIS Pro MCP Studio

MCP server for ArcGIS Pro 3.7

Let a model work in the ArcGIS Pro session you already have open

An ArcGIS Pro add-in and a small stdio MCP gateway. Claude Desktop, Claude Code or any other MCP client calls typed, schema-validated operations by stable id. Every write is checked against the current workspace revision, every risky write waits for a person to approve the exact arguments in a Pro dockpane, and every invocation is audited.

development preview 0.3.1 · self-signed Windows x64, licensed ArcGIS Pro 3.7 (tested on 3.7.1), .NET Runtime 10.x (x64)

The download is ArcGISProMCP-<version>-win-x64-self-signed-preview.zip, for example ArcGISProMCP-0.3.1-win-x64-self-signed-preview.zip, with SHA256SUMS next to it. See the quick start.

How it works

The gateway holds no GIS logic. The add-in does the work, and only the dockpane can approve.

Architecture An MCP client talks to the arcgis-pro-mcp gateway over stdio. The gateway exposes 16 tools and connects over a same-user named pipe to the add-in inside the ArcGIS Pro process. There, the operation registry of 41 operations hands calls to the executor, which checks schema, revision and approval and writes the audit log. Approvals go through a queue that only a person in the ArcGIS MCP pane can resolve. The executor calls the ArcGIS Pro SDK. ARCGIS PRO PROCESS · ADD-IN MCP client Claude Desktop / Code Gateway arcgis-pro-mcp.exe 16 tools Operation registry 41 operations input + result schemas Executor schema · revision approval · audit ArcGIS Pro SDK MCT / UI thread ArcGIS MCP pane a person approves stdio same-user named pipe approval queue Architecture Same architecture, stacked: MCP client, stdio, gateway with 16 tools, same-user named pipe, then inside the ArcGIS Pro process the operation registry of 41 operations, the executor, and below it the ArcGIS Pro SDK and the ArcGIS MCP pane where a person approves. MCP client Claude Desktop / Code stdio Gateway arcgis-pro-mcp.exe 16 tools same-user named pipe ARCGIS PRO PROCESS · ADD-IN Operation registry 41 operations, schemas Executor schema · revision approval · audit approval queue ArcGIS Pro SDK MCT / UI thread ArcGIS MCP pane a person approves
FakeHost runs the add-in's real handler, registry and executor over fake ArcGIS services, so the end-to-end tests and evals exercise production code without ArcGIS Pro. Details: architecture.

What the model gets

A small set of tools in front of a typed registry

16gateway tools the client sees
41typed operations in the registry, each with an input schema and risk tier
2,200+installed geoprocessing tools reachable through gp.search, gp.describe and gp.run

The model searches the registry by intent, reads an operation's descriptor, validates arguments, and invokes it by id, such as layer.add, symbology.set-unique-values, layout.ensure-surround or view.capture. Operations cover projects and maps, layers and cartography, features, tables and metadata, layouts and observation, and geoprocessing. ArcPy script execution is opt-in.

  • MCP structured output: 15 stable-shape operations declare an output schema.
  • arcgis:// resources for project state, operation descriptors, workflows, skills and captured images.
  • Prompts built from bundled skills and versioned, declarative workflows.

The 16 gateway tools

  • system_get_state
  • registry_search
  • registry_browse
  • registry_describe
  • registry_validate
  • registry_invoke
  • approval_request
  • approval_status
  • approval_cancel
  • workflow_list
  • workflow_get
  • workflow_save
  • workflow_run
  • resource_read
  • skill_search
  • skill_get

Safety model

Writes name the revision they read. Risky writes wait for a person.

Default mode. project.open, project.save and feature.update are SafeWrite but also need approval.
Risk tierWhat it takes to run
ReadOnlyRuns freely.
SafeWriteThe current workspace revision. A stale revision is rejected before anything runs.
DestructiveRevision plus a single-use approval token from the dockpane.
ExternalSideEffectRevision plus a single-use approval token from the dockpane. Every gp.run is in this tier.
  • approval_request queues a card in the dockpane. A person approves or denies it, and approval_status returns a short-lived token bound to the operation, its version, the exact arguments and the revision. The gateway cannot approve its own request.
  • gp.run cards warn when a tool modifies input in place, consumes credits or runs user code. Allowlisted read-only tools run through gp.query without review.
  • A dry run validates statically, never executes and never consumes a token.
  • Every invocation, approval decision and autonomous bypass is appended to a JSON-lines audit log.
  • Autonomous mode is an opt-in expert setting and is not recommended. It still refuses Destructive, user-code and unclassified gp.run requests without a person-issued token.

gp.run can execute arbitrary Python through Python toolboxes, script tools and expressions, with your GIS authority. Read security and limits before connecting a client you do not fully trust.

The ArcGIS MCP dockpane in a live ArcGIS Pro session showing an approval card for arcpy.run-script, version 1.0.0, risk High, with the warning that the request runs a Python script in the ArcGIS Pro Python environment with your ArcGIS Pro permissions, the workspace revision it is bound to, and a link to review the full arguments.
An approval card for arcpy.run-script in the dockpane during the live operation matrix. The card names the operation, its risk and the revision it is bound to, shows a "Runs user code" warning, and links to the full arguments.

Quality

982 tests, measured search, pinned CI

Build: .NET 10 with TreatWarningsAsErrors and 0 warnings. Tests use xUnit v3; the portable tests do not need ArcGIS Pro.

Test projectTests
Core.Tests
Executor policy, approvals, schemas, search, risk tiers, workflows, audit
495
Operations.Tests
Operation behaviour over fake ArcGIS services
278
Server.Tests
MCP contract snapshots, end-to-end runs, trajectories
123
Bridge.Tests
Pipe framing, discovery, host scheduling
67
Evals.Tests
Retrieval suites gated on a measured baseline
19
Total982
Search suiteTasksrecall@5
Registry search, held out160.938
Geoprocessing search, held out160.875
Registry search300.867
Geoprocessing search300.900

Held-out tasks were written before search tuning and never tuned against, so they are the numbers to trust. Geoprocessing suites ran against ArcGIS Pro 3.7.1 with 2,210 system tools. Eight golden trajectories pass on every dotnet test; four of them exercise approval. No live-model scorecard is committed yet. See evals.

CI on GitHub Actions uses actions pinned to commit SHAs and read-only permissions: build and test on Windows, a packaging job that fails if development-only hosts reach the bundle, and a lint job.

Live evidence

Recorded on a real ArcGIS Pro 3.7.1 session

tools/run-acceptance.ps1 records the commit, the ArcGIS Pro version and the hashes of the built and loaded add-in DLLs into a dated folder under docs/acceptance, and a test validates every committed folder against the evidence contract. The latest committed run, docs/acceptance/2026-10-03-e7deee2 (version 0.3.0 at commit e7deee2, a private-history SHA; public commit c976c51, see Public history; ArcGIS Pro 3.7.1.1904), covers the three bundled urban workflows and the full operation matrix on synthetic test data in default mode. The layouts below are its captures.

The approval cards in that run were decided by Claude, operating the dockpane through computer use at the maintainer's direction, not clicked by the maintainer. The run shows that a card gates each risky call and that approve and deny behave as specified; it does not test a human reviewer's judgement. During the final project.open card, ArcGIS Pro's modal "Save all edits?" prompt appeared because feature edits were pending, and was answered the same way; that hang is fixed after the evidence commit (project.open now refuses with pending_edits).

Covered by the latest committed run

  • Release build, every test project and the package contents
  • The four loaded add-in DLLs match the package
  • Host probe (41 operations) and the MCP smoke test (16 tools)
  • Three bundled workflows, three runs each, layouts inspected (cosmetic legend and scale-bar overlaps recorded)
  • The live operation matrix: 41 of 41 operations, 90 of 90 cases passed (58 happy paths, 32 negative cases), eight dockpane approval cards with 7 approved and 1 denied
  • Default mode, no autonomous bypass

Not covered

  • Autonomous mode
  • The separate feature, geoprocessing and ArcPy section of the acceptance script (not selected for this run; the operation matrix exercises those operations one by one)
  • A person deciding the approval cards (see the note above)

For anything a run does not cover, use the manual acceptance checklist on your own installation.

Quick start

Install the add-in, point your client at the gateway

Requirements: Windows x64, a licensed ArcGIS Pro 3.7 (tested on 3.7.1), and the .NET Runtime 10.x (x64) from dotnet.microsoft.com (the Runtime, not the SDK). To check, run dotnet --list-runtimes and look for a Microsoft.NETCore.App 10. line. The steps use version 0.3.1 as the example; the same steps ship as INSTALL.txt in the zip.

  1. Download and verify

    From the latest release, download ArcGISProMCP-0.3.1-win-x64-self-signed-preview.zip and SHA256SUMS. In PowerShell, in that folder, check the zip before extracting it:

    $zip = 'ArcGISProMCP-0.3.1-win-x64-self-signed-preview.zip'
    $expected = (Select-String -Path .\SHA256SUMS -SimpleMatch $zip).Line.Split(' ')[0]
    if ((Get-FileHash $zip -Algorithm SHA256).Hash -eq $expected) { 'OK' } else { 'MISMATCH - do not install' }
  2. Unblock and extract into C:\ArcGISProMCP\

    Unblock-File $zip
    Expand-Archive $zip -DestinationPath C:\ArcGISProMCP

    Or right-click the zip > Properties > Unblock, then Extract All to C:\ArcGISProMCP, removing the folder name Explorer suggests so the folder is not nested twice. The zip has one root folder, so the gateway is at C:\ArcGISProMCP\ArcGISProMCP-0.3.1-win-x64-development-preview\server\arcgis-pro-mcp.exe.

  3. Install the add-in

    Verify and trust the included publisher certificate using the self-signed installation guide. Close ArcGIS Pro and double-click ArcGISProMCP.AddIn.esriAddinX. Keep signed-add-in restrictions enabled; managed computers may need IT approval.

  4. Open a disposable project and the pane

    Open a disposable copy of a project. On the Add-In tab, click MCP Studio to open the ArcGIS MCP pane; its status should read Ready. Keep it open: approval cards appear there.

  5. Connect your MCP client

    Claude Desktop: Settings > Developer > Edit Config (%APPDATA%\Claude\claude_desktop_config.json). Add the entry inside mcpServers, keeping any servers already there, then quit Claude Desktop from its tray icon and start it again.

    {
      "mcpServers": {
        "arcgis-pro": {
          "command": "C:\\ArcGISProMCP\\ArcGISProMCP-0.3.1-win-x64-development-preview\\server\\arcgis-pro-mcp.exe"
        }
      }
    }

    Claude Code

    claude mcp add --scope user arcgis-pro -- "C:\ArcGISProMCP\ArcGISProMCP-0.3.1-win-x64-development-preview\server\arcgis-pro-mcp.exe"
    claude mcp list

    VS Code: .vscode\mcp.json, or MCP: Open User Configuration

    {
      "servers": {
        "arcgis-pro": {
          "type": "stdio",
          "command": "C:\\ArcGISProMCP\\ArcGISProMCP-0.3.1-win-x64-development-preview\\server\\arcgis-pro-mcp.exe"
        }
      }
    }

    Any other MCP client: run the same path as a stdio server. Do not set ARCGIS_PRO_MCP_AUTONOMOUS_MODE: it skips the approval cards.

  6. Verify

    The client lists the arcgis-pro server with 16 tools. Ask "What project is open in ArcGIS Pro?", then ask for a small edit, such as updating one attribute, and approve the card in the ArcGIS MCP pane.

    Trouble? arcgis_unavailable means ArcGIS Pro is not running or the add-in did not load. arcgis_host_ambiguous means several ArcGIS Pro windows are open: close the extra ones, or add "env": { "ARCGIS_PRO_MCP_HOST_PID": "<pid>" } to the client entry with the PID shown in the pane. If the client says the server failed, check the path and the .NET runtime.

Every client, troubleshooting, upgrade and uninstall: install guide. All settings: reference.

Known limits

What this preview does not do

  • The add-in and gateway are self-signed and require explicit certificate trust. Live acceptance of the signed package is pending.
  • Workflows cannot run confirmation-gated steps in default mode; run those operations one at a time through approval.
  • Workflows are not transactional or resumable after a crash, and nothing is rolled back automatically.
  • ArcPy and gp.run can execute arbitrary user code. Neither is a sandbox.
  • Revision checks are an optimistic guard, not a lock. Some direct edits in Pro, such as reordering layers, do not invalidate an approval.
  • After each write the host waits up to 3 seconds for ArcGIS Pro's event echoes to settle; heavy layout and 3D steps sometimes reach that cap. Reading the final state still waits for Pro's main thread, so while Pro is busy (for example loading a newly added layer) a write can take much longer to return.
  • Feature editing excludes batch edits and multipart construction. Advanced renderers, workspace connections and PDF export are outside the registry.
  • Idempotency, workflow history and resources do not survive an ArcGIS Pro restart.

The full list: known limits and security and operational limits.