
nicogis/mcp-server-arcgis-pro-addin
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
MCP-сервер с ArcGIS Pro Add-In
Обзор
Этот репозиторий показывает, как интегрироваться с . Цель состоит в том, чтобы представить функции ArcGIS Pro в качестве инструментов MCP, чтобы GitHub Copilot (в режиме агента) или любой клиент MCP могли взаимодействовать с вашей средой GIS. - (C# с ArcGIS Pro SDK): работает в процессе с ArcGIS Pro и раскрывает операции ГИС через локальный канал IPC (Named Pipes). Консольное приложение .NET 8: определяет инструменты MCP, взаимодействует с Add-In через Named Pipes и настраивается как MCP-сервер в Visual Studio через .mcp.json. Это может позволить Copilot (режим агента) запрашивать карты, перечислять слои, считать функции, увеличивать слои и многое другое - непосредственно в ArcGIS Pro. - Visual Studio 2022 (для поддержки режима MCP Agent Mode) - ArcGIS Pro SDK для .NET - ArcGIS Установка Pro (одна и та же машина) - .NET 8 SDK Add-In запускает ArcGIS Pro. Он обрабатывает такие операции, как: - pro.getActiveMapName - pro.listLayers - pro.countFeatures - pro.zoomToLayer Сервер MCP использует пакет ModelContextProtocol NuGet. 1.
Обзор (машинный перевод)
Этот репозиторий демонстрирует, как интегрировать сервер Model Context Protocol (MCP) с ArcGIS Pro Add-In. Цель состоит в том, чтобы представить функции ArcGIS Pro в качестве инструментов MCP, чтобы GitHub Copilot (в режиме агента) или любой клиент MCP могли взаимодействовать с вашей средой GIS.
Обзор
ArcGIS Pro Add-In** (C# с ArcGIS Pro SDK): запускает в процессе с ArcGIS Pro и раскрывает операции ГИС через локальный канал IPC (Named Pipes).
MCP Server (приложение для консоли .NET 8): определяет инструменты MCP, взаимодействует с Add-In через Named Pipes и настраивается как MCP-сервер в Visual Studio через .mcp.json.
Это может позволить Copilot (режим агента) запрашивать карты, перечислять слои, считать функции, увеличивать слои и многое другое - непосредственно в ArcGIS Pro.
Предпосылки
Visual Studio 2022 **17.14 или более поздняя ** (для поддержки режима MCP Agent Mode) ArcGIS Pro SDK для .NET
-
ArcGIS Pro установлен (та же машина)
-
.NET 8 SDK
Структура решения
ArcGIS Pro Add-In Add-In запускает сервер Named Pipe на ArcGIS Pro. Он выполняет такие операции, как:
- [[Т1]]
- [[Т2]]
- [[Т3]]
- [[Т4]]
Пример: Модуль.
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
README
Показан фрагмент оригинального README. Открыть оригинал.
MCP Server with ArcGIS Pro Add-In (C# .NET 8)
This repository demonstrates how to integrate a Model Context Protocol (MCP) server with an ArcGIS Pro Add-In. The goal is to expose ArcGIS Pro functionality as MCP tools so that GitHub Copilot (in Agent mode) or any MCP client can interact with your GIS environment.
Overview
- ArcGIS Pro Add-In (C# with ArcGIS Pro SDK): runs in-process with ArcGIS Pro and exposes GIS operations through a local IPC channel (Named Pipes).
- MCP Server (.NET 8 console app): defines MCP tools, communicates with the Add-In via Named Pipes, and is configured as an MCP server in Visual Studio through
.mcp.json.
This can allow Copilot (Agent Mode) to query maps, list layers, count features, zoom to layers, and more — directly in ArcGIS Pro.
Prerequisites
- Visual Studio 2022 17.14 or later (for MCP Agent Mode support)
- ArcGIS Pro SDK for .NET
- ArcGIS Pro installed (same machine)
- .NET 8 SDK
Solution Structure
ArcGisProMcpSample/
+- ArcGisProBridgeAddIn/ # ArcGIS Pro Add-In project (in-process)
¦ +- Config.daml
¦ +- Module.cs
¦ +- ProBridgeService.cs # Named Pipe server + command handler
¦ +- IpcModels.cs # IPC request/response DTOs
+- ArcGisMcpServer/ # MCP server project (.NET 8)
¦ +- Program.cs
¦ +- Tools/ProTools.cs # MCP tool definitions (bridge client)
¦ +- Ipc/BridgeClient.cs # Named Pipe client
¦ +- Ipc/IpcModels.cs # Shared IPC DTOs
+- .mcp.json # MCP server manifest for VS Copilot
ArcGIS Pro Add-In
The Add-In starts a Named Pipe server on ArcGIS Pro launch. It handles operations like:
pro.getActiveMapNamepro.listLayerspro.countFeaturespro.zoomToLayer
Example: Module.cs (in sample is in a button)
protected override bool Initialize()
{
_service = new ProBridgeService("ArcGisProBridgePipe");
_service.Start();
return true; // initialization successful
}
protected override bool CanUnload()
{
_service?.Dispose();
return true;
}
Example: ProBridgeService handler
case "pro.countFeatures":
{
if (req.Args == null ||
!req.Args.TryGetValue("layer", out string? layerName) ||
string.IsNullOrWhiteSpace(layerName))
return new(false, "arg 'layer' required", null);
int count = await QueuedTask.Run(() =>
{
var fl = MapView.Active?.Map?.Layers
.OfType()
.FirstOrDefault(l => l.Name.Equals(layerName, StringComparison.OrdinalIgnoreCase));
if (fl == null) return 0;
using var fc = fl.GetFeatureClass();
return (int)fc.GetCount();
});
return new(true, null, new { count });
}
MCP Server (.NET 8)
The MCP server uses the official ModelContextProtocol NuGet package.
Program.cs
await Host.CreateDefaultBuilder(args)
Установка
This server does not publish a one-line install command.
Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →