
nicogis/mcp-server-arcgis-pro-addin
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
ArcGIS Pro Add-In を使用した MCP サーバー
概要
このリポジトリは、統合する方法を示しています。 目標は、GitHub Copilot(エージェントモード)またはMCPクライアントがGIS環境とやり取りできるように、MCPツールとしてArcGIS Proの機能を公開することです。 - (C# と ArcGIS Pro SDK): ArcGIS Pro で処理を実行し、ローカル IPC チャネル (名前付きパイプ) を介して GIS 操作を公開します。 - (.NET 8 コンソールアプリ): MCP ツールを定義し、名前付きパイプを介して Add-In と通信し、.mcp.json を介して Visual Studio の MCP サーバーとして構成されます。 これは、Copilot(Agent Mode)がマップ、リストレイヤー、カウント機能、レイヤーへのズームなどのクエリマップ、ArcGIS Proの直接に許可することができます。 - Visual Studio 2022(MCP Agent モードサポート用) - ArcGIS Pro SDK for .NET - ArcGIS Pro インストール(本体) - .NET 8 SDK Add-In は ArcGIS Pro の起動を開始します。 以下のような操作を処理する: - pro.getActiveMapName - pro.listLayers - pro.countFeatures - pro.zoomToLayer MCP サーバーは、公式の ModelContextProtocol NuGet パッケージを使用します。 1.
概要(AI 翻訳)
このリポジトリは、ArcGIS Pro Add-In で Model Context Protocol (MCP) Server を統合する方法を示しています。 目標は、GitHub Copilot(エージェントモード)またはMCPクライアントがGIS環境とやり取りできるように、MCPツールとしてArcGIS Proの機能を公開することです。
お問い合わせ
概要
-ArcGIS Pro Add-In(ArcGIS Pro SDK付きC#):ArcGIS Proでin-processを実行し、ローカルIPCチャネル(名前付きパイプ)を介してGIS操作を公開します。
-MCP Server(.NET 8コンソールアプリ):MCPツールを定義し、名前付きパイプを介してAdd-Inと通信し、[.mcp.json]を介してVisual StudioのMCPサーバーとして構成されます。
これは、Copilot(Agent Mode)がマップ、リストレイヤー、カウント機能、レイヤーへのズームなどのクエリマップ、ArcGIS Proの直接に許可することができます。
お問い合わせ
前提条件
- Visual Studio 2022 17.14以降 (MCP エージェント モード サポート用)
- .NET用のArcGIS Pro SDK
- ArcGIS Proインストール(サメマシン)
- .NET 8 SDK の
お問い合わせ
ソリューション構造
お問い合わせ
#ArcGIS Pro アドオン Add-In は、ArcGIS Pro 起動時に Named Pipe server を開始します。 以下のような操作を処理します。
- [
pro.getActiveMapName - [
pro.listLayers - [
pro.countFeatures - [
pro.zoomToLayer
##例: `モジュール.
このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。
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 のガイドから始めましょう →