Skip to main content
Glama
Sangwxx

ArcGIS Pro Bridge MCP Server

by Sangwxx

ArcGIS Pro Bridge MCP Server

ArcGIS Pro Bridge MCP Server 是一个给 ArcGIS Pro 用的本地 MCP Server。

它的作用可以直接理解成:

  • 让 Trae、Cursor、Claude Desktop 这类支持 MCP 的 AI 客户端,能够读取你本机的 ArcGIS Pro 工程信息

  • 让 AI 能在 ArcGIS Pro 自带的 Python 环境中执行 ArcPy

  • 尽量减少 GISer 手动折腾 Python 环境的成本

这个项目不是 ArcGIS Pro 插件,也不是双击就能打开的桌面软件。它更像一个“后台桥接服务”,由 AI 客户端按 MCP 方式调用。

它适合做什么

当前版本适合这些场景:

  • 读取当前 ArcGIS Pro 工程中的地图和图层

  • 检查哪些图层的数据源已经断开

  • 读取 .aprx 工程中的布局、地图框和默认地图候选

  • 读取 .gdb 的要素类、字段和空间参考

  • 让 AI 生成 ArcPy 脚本

  • 让 AI 执行 Buffer、Clip、Merge 等 ArcPy 地理处理

Related MCP server: ARCclaude

它不适合做什么

当前版本不适合直接用于这些场景:

  • 对公网开放的远程 GIS 服务

  • 无人值守地直接修改生产数据

  • 替代 ArcGIS Pro 图形界面

  • 当作通用文件管理工具浏览任意本地目录

它的定位是“本机上的 ArcGIS Pro AI 桥接工具”,不是通用桌面助手。

使用前需要准备什么

请先确认:

  • 你使用的是 Windows

  • 你的电脑已经安装 ArcGIS Pro

  • ArcGIS Pro 可以正常启动

  • 你的电脑中有 Python 3.11 或更高版本

  • 建议安装 uv

最容易误解的地方

这是最重要的一节。

1. MCP 配置里的 JSON 不是命令行命令

README 或 examples/ 目录里提供的 JSON 配置,不是复制到 PowerShell 或 CMD 里直接运行的。

这些 JSON 的正确用途是:

  • 粘贴到 Trae 的 MCP 配置界面

  • 或写入 Cursor / Claude Desktop 的 MCP 配置文件

如果你把 JSON 直接复制到命令行里运行,是不会按预期工作的。

2. uv run arcgis_mcp_server.py 不是给你长期手动测试 stdout 用的

这条命令的作用是启动一个 stdio 型 MCP Server。

它启动后会一直等待客户端请求,这是正常现象,不是卡死。

正常使用时,一般应由 Trae、Cursor、Claude Desktop 自动拉起它,而不是你手动先开一个终端,再自己写测试脚本去读 stdout。

3. 这个项目主要是 ArcGIS MCP,不是文件系统 MCP

它擅长的问题是:

  • ArcGIS 环境是否发现成功

  • .aprx 工程里有什么

  • .gdb 里有什么

  • ArcPy 能不能执行

它不适合用来回答:

  • 当前项目目录里有什么文件

  • 帮我列出任意本地目录结构

这类需求更适合 shell 或单独的文件系统 MCP。

正确使用流程

建议按下面顺序使用:

  1. 获取项目并进入项目目录

  2. 运行 uv sync

  3. 把 MCP 配置 JSON 填到 Trae / Cursor / Claude Desktop 的 MCP 配置里

  4. 重启客户端,或刷新 MCP Server 列表

  5. 在聊天中直接让 AI 调用 MCP Tool

不推荐的错误流程

这些做法很容易导致“看起来卡住”:

  • 把 MCP 配置 JSON 当成命令行命令去运行

  • 手动启动 uv run arcgis_mcp_server.py 后,再自己写 Python 脚本去测试 stdout

  • 明明要测试 ArcGIS MCP,却问“当前目录下有哪些文件”

  • 没有明确要求 AI 使用 MCP,结果它自己转去走 shell

快速开始

第一步:安装依赖

进入项目目录后,运行 uv sync

注意:

  • arcpy 不会通过 uv 安装

  • arcpy 来自 ArcGIS Pro 自带环境

  • 本项目会在运行时自动寻找它

第二步:把 MCP 配置加到客户端

重要:配置 JSON 中的 <项目目录> 必须替换为你克隆项目的实际路径,直接复制会导致服务无法启动。

具体可复制配置请看:

第三步:重启客户端

无论是 Trae、Cursor 还是 Claude Desktop,配置完成后都建议完全重启一次。

第四步:先做最简单的测试

第一次不要直接让 AI 做复杂分析。

建议先让它只调用:

  • ping

  • health_check

  • doctor

确认 MCP 调用链路和 ArcPy 运行时都正常后,再继续读取工程、GDB 或执行地理处理。

如何接入 Trae

Trae 里最关键的是要理解:

  • 你填的是 MCP 配置

  • 不是终端命令

正确做法

  1. 打开 Trae 的 MCP 配置页面

  2. 新增一个本地 MCP Server

  3. 把示例 JSON 粘贴到 MCP 配置区域

  4. 保存配置

  5. 重启 Trae,或者刷新 MCP 列表

可参考:

如果你的 Trae 已经显示服务名称,并且旁边是绿色勾,通常说明:

  • 配置格式基本正确

  • Trae 能识别这个 MCP Server

但这还不代表当前这次对话一定已经真正调用了 MCP Tool。

如何接入 Cursor

Cursor 的思路和 Trae 类似,也是把 MCP 配置写入它的 MCP 配置位置,而不是复制到终端。

建议做法:

  1. 打开 Cursor 的 MCP 配置入口

  2. 新增一个本地 stdio MCP Server

  3. 填入示例 JSON

  4. 保存并重启 Cursor,或刷新工具列表

可参考:

如何接入 Claude Desktop

Claude Desktop 通过 MCP 配置文件接入,需要特别注意 Windows 下的 PATH 问题。

推荐方式(使用批处理启动脚本):

  1. 找到 Claude Desktop 的 MCP 配置文件

  2. examples/claude-desktop-mcp-config.json 填写,替换 <项目目录> 为实际路径

  3. 保存文件

  4. 完全退出 Claude Desktop

  5. 重新打开 Claude Desktop

为什么推荐用批处理脚本?

Claude Desktop 是 Windows GUI 应用,它的 PATH 环境变量与终端不同。即使你在终端里能跑 uv,Claude Desktop 也可能找不到它。项目根目录的 start-mcp-server.bat 会自动在常见位置查找 uv,并设置正确的工作目录。

备选方式(直接使用 uv):

如果你已将 uv 所在目录添加到 Windows 系统 PATH(而非仅用户 PATH),也可以参考 examples/cursor-mcp-config.json 使用 uv run 方式。

第一次使用时建议怎么问

第一次测试,建议问题尽量简单、尽量像 ArcGIS 问题,而不是“帮我测试 server”。

推荐顺序:

  1. 先调用 ping,确认这次请求真的走到了 MCP Tool

  2. 再调用 health_checkdoctor,确认 ArcGIS Pro Python 和 ArcPy 运行时

  3. 再读取当前工程图层

  4. 再读取指定 GDB 或 .aprx 工程概览

  5. 最后再执行 buffer_featuresclip_features 或通用 execute_arcpy_code

更多可直接复制的中文提示词见:

如何判断 AI 是否真的调用了 MCP

这也是非常关键的一节。

如果 AI 真正调用了 MCP

通常会出现这些特征:

  • 直接返回 pinghealth_checkdoctorinspect_gdbinspect_project_context 等结果

  • 结果内容明显是 ArcGIS 结构化信息

  • 不会自己去写测试脚本

  • 不会要求你手动长期开着一个 server 窗口读 stdout

如果 AI 没有真正调用 MCP

通常会出现这些特征:

  • 它开始自己写 test_mcp_server.pyinspect_gdb.py 之类的脚本

  • 它在终端里手动运行 uv run arcgis_mcp_server.py

  • 它尝试自己解析 stdout

  • 过程看起来“卡住很久”

如果出现这些现象,通常不是 ArcGIS 真的慢,而是它没有按 MCP 协议去使用这个服务。

推荐给 Trae 的测试提示词

如果你怀疑 Trae 没真正走 MCP,可以直接复制这段话给它:

“不要使用 shell,不要写任何测试脚本,不要手动启动任何 server。只允许使用已经配置好的 MCP 工具。请先调用 ping,再调用 health_check,并把返回结果完整告诉我。如果你没有实际调用 MCP 工具,请明确说明。”

这段提示词的作用,是强制它别绕去 shell 路线。

常见使用场景

你可以这样使用它:

  • 先让 AI 读取当前 ArcGIS Pro 工程中的地图、图层和字段

  • 让 AI 检查哪些图层断开了数据源

  • 让 AI 读取某个 .aprx 工程的布局和地图框

  • 让 AI 读取某个 .gdb 的结构

  • 让 AI 直接执行常见的 Buffer 和 Clip 分析

  • 让 AI 先生成 ArcPy,再由你确认后执行

当前可用 Tool

当前主要 Tool 包括:

  • ping

  • health_check

  • doctor

  • detect_arcgis_environment

  • execute_arcpy_code

  • buffer_features

  • clip_features

  • build_gis_resource_uri

  • list_gis_layers

  • inspect_project_context

  • inspect_gdb

  • generate_sync_plan

当前可用 Resource

当前主要 Resource 包括:

  • arcgis://server/status

  • arcgis://resources/catalog

  • arcgis://project/current/layers

  • arcgis://project/current/context

  • arcgis://project/{project_ref}/layers

  • arcgis://project/{project_ref}/context

  • arcgis://gdb/{gdb_ref}/schema

常见问题

0. Claude Desktop 无法连接 / Server 未出现

如果配置完成后 Claude Desktop 没有识别到 MCP Server,或报连接失败,请按顺序排查:

先确认 Server 本身能启动: 在项目目录下打开终端,运行 uv run python arcgis_mcp_server.py,如果不报错且进入等待状态,说明 Server 本身没问题。

检查配置文件中的路径:

  • 确认 <项目目录> 已替换为你的实际路径

  • 确认路径中的反斜杠正确(JSON 中需写成 \\

  • 确认 start-mcp-server.bat 确实存在于项目根目录

检查 uv 是否对 GUI 应用可见:

  • 打开新的 CMD 窗口,运行 where uv

  • 如果显示路径在 %USERPROFILE%\\.local\\bin\\ 下,Claude Desktop 很可能找不到它

  • 解决方案:使用 cmd /c + 批处理脚本方式配置(见 Claude Desktop 接入章节)

检查 Claude Desktop 日志:

  • Claude Desktop 的日志通常位于 %APPDATA%\\Claude Desktop\\logs\\

  • 查看最新日志文件中是否有 arcgis-pro-bridge 相关报错

确认配置文件位置正确:

  • Claude Desktop 的 MCP 配置文件通常在:%APPDATA%\\Claude Desktop\\claude_desktop_config.json

  • 如果文件不存在,需要手动创建

如果以上都检查过仍未解决,请在项目 Issues 中附上 Claude Desktop 日志中的相关错误信息。

1. 找不到 ArcGIS Pro 或找不到 arcpy

请先检查:

  • ArcGIS Pro 是否已经安装

  • ArcGIS Pro 是否可以正常启动

  • 是否先调用过 detect_arcgis_environment

如果仍然失败,可以手动设置环境变量:

  • ARCGIS_PRO_PYTHON

  • ARCGIS_PRO_INSTALL_DIR

2. 读取不到当前工程

如果 ArcGISProject("CURRENT") 无法附着,这通常是 ArcGIS Pro 当前运行上下文的限制,不一定是程序错误。

这时建议直接传入 .aprx 路径,而不是依赖 CURRENT

3. 图层数据源断开

常见原因包括:

  • 数据路径改变

  • 网络盘没有挂载

  • GDB 被移动

  • SDE 连接不可用

建议先调用:

  • list_gis_layers

  • inspect_project_context

先把断开的数据源找出来。

4. ArcPy 执行时报锁定错误

常见原因包括:

  • 图层正在编辑

  • 数据正在被 ArcGIS Pro 占用

  • 外部程序正在读写数据

建议先关闭编辑状态,再重试。

5. 处理很慢或超时

可以尝试:

  • 缩小处理范围

  • 减少一次处理的数据量

  • 提高 timeout_seconds

安全提醒

execute_arcpy_code 本质上是“在本机执行代码”。

所以请务必注意:

  • 只在你信任的电脑上使用

  • 不要直接暴露到公网

  • 不要让 AI 未经确认就修改正式数据

  • 对重要数据先备份,再执行写操作

更详细说明见:

示例目录

如果你需要直接复制配置或查看完整示例,请看:

本地校验

项目当前使用这些检查命令:

  • uv run ruff check .

  • uv run ruff format --check .

  • uv run python -m unittest discover -s tests -p "test_*.py"

开源信息

Available Tools

13 tools
buffer_featuresC

执行常用 Buffer 分析,返回输出要素摘要和执行信息。

ParametersJSON Schema
NameRequiredDescriptionDefault
in_featuresYes
out_feature_classYes
buffer_distance_or_fieldYes
dissolve_optionNoNONE
dissolve_fieldNo
methodNoPLANAR
workspaceNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It mentions returning a summary and execution info, but does not disclose that it creates a new feature class, potential side effects, required permissions, or error conditions. The behavioral disclosure is insufficient for safe operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no unnecessary words. It directly states the action and output, achieving maximum conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema being present (which reduces the need to explain return values), the tool has 8 parameters and 3 required ones. The description omits essential context such as parameter roles, typical use cases, or workflow integration, leaving the agent underinformed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the 8 parameters. Parameters like 'buffer_distance_or_field' and 'dissolve_option' are left entirely undefined, forcing the agent to guess their meaning despite the schema lacking descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it executes common Buffer analysis and returns a summary, which clearly identifies the core function. However, it does not differentiate from sibling tools like 'clip_features' or 'list_gis_layers', limiting its distinctiveness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. A GIS agent would have to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_gis_resource_uriC

根据资源类型与本地路径生成可读取的 ArcGIS Resource URI。

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_kindYes
pathNo
open_current_projectNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It does not disclose behavior regarding null path, valid resource_kind values, or effects of open_current_project. The sole sentence is insufficient for transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is concise, but it lacks necessary detail. There is no structured breakdown of parameters or usage, making it adequate but not optimally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of URI generation and the presence of an output schema, the description is incomplete. It does not explain what constitutes a 'readable' URI, nor does it cover edge cases or prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description only mentions resource_kind and path, omitting open_current_project. It adds minimal meaning beyond parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates an ArcGIS Resource URI based on resource type and local path. It uses a specific verb and resource, distinguishing it from sibling tools which perform different operations like buffer or clip features.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any context-specific advice. The description merely states the function without contextual usage hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clip_featuresC

执行常用 Clip 分析,返回输出要素摘要和执行信息。

ParametersJSON Schema
NameRequiredDescriptionDefault
in_featuresYes
clip_features_pathYes
out_feature_classYes
cluster_toleranceNo
workspaceNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only mentions that it returns a summary and execution info, but does not disclose whether it modifies data, requires specific permissions, or other behavioral traits typical of a clip operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it omits essential details about the tool's behavior and parameters. It front-loads the main action but fails to earn its place by not adding sufficient context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the parameter count of 6 (3 required), zero annotations, and no output schema description, the description is severely incomplete. It does not explain the return format, parameter details, or execution context, leaving an agent with insufficient information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning no parameter descriptions are provided in the input schema. The tool description does not add any meaning to the parameters beyond their names, so the agent lacks understanding of what each parameter expects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it executes a Clip analysis and returns a summary and execution info. The verb '执行' (execute) and resource 'Clip 分析' (Clip analysis) are specific. However, it doesn't differentiate from sibling tools like buffer_features, but the purpose is distinct enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no exclusions or prerequisites. The description provides no context on preferred use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

debug_runtime_contextA

返回当前 MCP 进程的运行上下文,用于排查 Trae 或沙箱环境差异。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It clearly describes a read operation returning runtime context, which is transparent enough for a simple tool with no side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the action and purpose, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an existing output schema, the description fully explains the tool's purpose and behavior, making it complete for its intended use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters (schema coverage 100%, 0 params), so the baseline is 4. The description adds no parameter info as none are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns runtime context for debugging environment differences, which is specific and distinguishes it from sibling tools like health_check and ping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates it is used for troubleshooting Trae or sandbox environment differences, providing clear context for when to use it, though no explicit exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_arcgis_environmentA

检测 ArcGIS Pro 安装与 Python 解释器路径。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavioral traits, but it only states what is detected without explaining the detection mechanism, scope (e.g., OS-specific), or possible outcomes (e.g., success/failure indicators).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence that immediately conveys the tool's function. It is concise and front-loaded without superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists, the description is largely complete. However, it could be more explicit about what the detection entails (e.g., checking environment variables or file existence) to fully satisfy completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the input schema has 100% coverage automatically. The description does not add meaning beyond the schema, but the baseline for zero-parameter tools is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: detecting ArcGIS Pro installation and the Python interpreter path. This specific verb+resource combination distinguishes it from sibling tools like health_check or ping, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It lacks information about prerequisites, recommended contexts, or situations where a different tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

doctorC

返回面向 GISer 的完整环境诊断报告。

ParametersJSON Schema
NameRequiredDescriptionDefault
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It states it returns a report but does not disclose whether it modifies state, requires authentication, or has rate limits. The output schema exists but its content is unknown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is too brief for the lack of other information. While concise in length, it omits necessary details, making it under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema existence, the description could be minimal but still lacks completeness. It does not explain the report content or differentiate from sibling tools like health_check.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the only parameter (timeout_seconds). It adds no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a complete environment diagnostic report for GISers, using a specific verb and resource. It distinguishes from siblings like health_check, but does not elaborate on what 'environment' includes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives such as health_check or inspect_gdb. The description lacks context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_arcpy_codeC

在 ArcGIS Pro Python 环境中执行 ArcPy 代码并返回 stdout、stderr 与异常信息。

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
workspaceNo
project_pathNo
open_current_projectNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It only mentions outputs (stdout, stderr, exceptions) but omits critical behavioral traits: arbitrary code execution risks, side effects on data, environment isolation, or authentication requirements. This is a significant gap for a code execution tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence effectively conveys the core purpose. Could be improved by front-loading the return values, but overall concise and no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an existing output schema (not shown), the description lacks depth regarding runtime environment, security precautions, resource limits, and detailed return structure. For a powerful execution tool, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameter schema has 0% description coverage and description adds no explanation beyond parameter names. Parameters like 'workspace', 'project_path', and 'open_current_project' remain semantically opaque. For a 5-parameter tool with no schema descriptions, the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes ArcPy code in the ArcGIS Pro environment and returns stdout, stderr, and exceptions. It uniquely identifies this tool as code execution, distinct from sibling GIS operation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no prerequisites mentioned, and no scenarios where use is not recommended. This lack of context leaves the agent without decision-making support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_sync_planC

数据同步逻辑的占位接口,后续可扩展为差异分析与脚本生成能力。

ParametersJSON Schema
NameRequiredDescriptionDefault
source_descriptionYes
project_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description notes it is a placeholder, implying incomplete implementation, but does not disclose other behavioral traits such as return format, authorization needs, or side effects. No annotations are provided to compensate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence conveying the essential information concisely. However, it is in Chinese and lacks structured presentation, slightly reducing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description does not explain the current output or how to interpret results. The placeholder status limits completeness, but more detail is needed for a functional tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description should add meaning to the two parameters (source_description and project_context). It fails to do so, leaving the parameters' roles and constraints entirely unspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it is a placeholder for data synchronization logic, indicating future extension to differential analysis and script generation. While it identifies the tool's domain, it lacks specificity about current functionality, making it vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus siblings like buffer_features or clip_features. The placeholder nature suggests limited utility, but criteria are not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

health_checkC

返回轻量级健康检查,帮助快速判断 MCP 与 ArcGIS 环境是否可用。

ParametersJSON Schema
NameRequiredDescriptionDefault
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as whether the check makes network calls, requires authentication, or has side effects. The tool's internal operations are opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence in Chinese, efficiently conveying the tool's purpose without redundancy. It is appropriately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the description lacks details on what the health check actually checks (e.g., specific services, response structure). The tool's simplicity does not fully excuse the lack of context, especially given ambiguity with sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the only parameter 'timeout_seconds'. The description does not explain its purpose or effect, leaving the agent to infer from the title 'Timeout Seconds'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns a lightweight health check to determine the availability of MCP and ArcGIS environment. The verb 'returns' and resource 'health check' are specific, but it does not distinguish from the sibling 'ping' tool, which also likely checks connectivity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'ping' or 'detect_arcgis_environment'. There are no exclusions or context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_gdbB

检查 GDB 的要素类、字段与空间参考,并返回对应 Resource URI。

ParametersJSON Schema
NameRequiredDescriptionDefault
gdb_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full responsibility. It reveals basic behavior (check and return URI) but fails to disclose read-only nature, potential network or file system dependencies, or any side effects. Significant gaps for a simple inspection tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is one sentence, front-loaded with the key action. It is concise without waste. However, it could be slightly expanded to include parameter clarification without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (removing need to describe returns), the description is minimally adequate for a simple inspection tool with one parameter. However, it lacks completeness about the nature of the GDB path and any constraints, leaving some ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It does not explain what gdb_path expects (e.g., file path, URL, local vs network). The parameter title 'Gdb Path' provides minimal context; no additional semantic clarity is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it inspects a geodatabase's feature classes, fields, and spatial reference, returning a Resource URI. The verb '检查' (inspect) and resource 'GDB' are specific, and it distinguishes from siblings like inspect_project_context or list_gis_layers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Does not mention prerequisites, limitations, or when not to use it. The description only states functionality without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_project_contextC

读取工程概览,包括布局、地图框、默认地图候选与数据源状态。

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNo
open_current_projectNo
timeout_secondsNo
include_source_detailsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description implies read-only behavior via '读取' but does not explicitly state non-destructiveness, performance implications, or any side effects. Does not explain the purpose of timeout_seconds or security considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded with the primary action. However, it is slightly under-specified given the tool's complexity (4 parameters, output schema).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the presence of an output schema, the description lacks context for using the parameters, especially the distinction between project_path and open_current_project. It does not address how the tool fits into a workflow or its relationship to siblings like debug_runtime_context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no explanation of the four parameters. The agent has no understanding of project_path, open_current_project, timeout_seconds, or include_source_details beyond their titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a project overview and lists included components (layout, map frame, default map candidate, data source status). It distinguishes from other tools like buffer_features, but does not differentiate from the similar-sounding debug_runtime_context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no prerequisites, and no differentiation between the project_path and open_current_project parameters. Agent receives no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_gis_layersC

列出工程中的地图、图层、字段与空间参考,并返回对应 Resource URI。

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNo
open_current_projectNo
timeout_secondsNo
include_fieldsNo
include_data_source_detailsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations available. The description does not disclose behavioral traits such as read-only nature, permission requirements, or side effects. It merely states the output without explaining behavior beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core purpose. No wasted words, but could be expanded slightly for completeness without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the description omits context about input parameters and when to use the tool. With 5 parameters and no guidance, the description is incomplete for effective tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain any parameters. The five parameters (project_path, open_current_project, timeout_seconds, include_fields, include_data_source_details) are not mentioned, leaving the agent to infer their meaning from titles alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists maps, layers, fields, and spatial references and returns Resource URIs. It provides a specific verb ('list') and resource ('GIS layers'), but does not distinguish from sibling tools like inspect_gdb or inspect_project_context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage context or guidance provided. The description does not indicate when to use this tool versus alternatives, nor any prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingA

返回一个最小可验证结果,用于确认客户端已真正调用 MCP Tool。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description indicates non-destructive read operation (returns result). No annotations provided, but description sufficiently covers behavior. Could explicitly state no side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence front-loads the core purpose. No unnecessary words; perfect conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple ping tool with no parameters and an output schema, the description fully conveys the tool's behavior. No additional context needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema; description adds nothing extra. Baseline 4 for zero-parameter tools where schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it returns a minimal verifiable result to confirm client-MCP tool invocation. Distinguishes from sibling tools like health_check by being intentionally minimal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Purpose implies usage for connectivity verification but provides no explicit when-to-use, when-not-to-use, or alternative tools. Adequate for a simple ping tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv0.1.0
    • First observedbuffer_features
    • First observedbuild_gis_resource_uri
    • First observedclip_features
    • First observeddebug_runtime_context
    • First observeddetect_arcgis_environment
    • First observeddoctor
    • First observedexecute_arcpy_code
    • First observedgenerate_sync_plan
    • First observedhealth_check
    • First observedinspect_gdb
    • First observedinspect_project_context
    • First observedlist_gis_layers
    • First observedping

TDQS

C2.9/5.0

Scored across 13 tools

Disambiguation3/5

Several tools have overlapping diagnostic purposes (health_check, doctor, debug_runtime_context, ping, detect_arcgis_environment). While descriptions differentiate them, an agent may still struggle to pick the right one. Other tools like inspect_gdb, list_gis_layers, and build_gis_resource_uri are more distinct.

Naming Consistency3/5

Most tools follow a verb_noun pattern (buffer_features, clip_features, build_gis_resource_uri, etc.), but 'doctor', 'health_check', and 'ping' break the pattern as nouns or noun-verb combos. The mix is noticeable but not chaotic.

Tool Count4/5

13 tools is within the ideal 3-15 range for a specialized bridge server. The count feels reasonable, covering diagnostics, inspection, basic geoprocessing, and code execution without being overwhelming.

Completeness3/5

The tool surface covers core areas: environment detection, project inspection, simple spatial operations, and arbitrary arcpy execution. However, it lacks common GIS operations like intersect or dissolve, and the 'generate_sync_plan' is a placeholder. The arcpy execution tool mitigates some gaps but not all workflows are directly supported.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Drive Esri's ArcGIS Pro from an AI agent — the ArcGIS Pro counterpart to QGIS MCP. A headless ArcPy CLI plus an in-process .NET 8 add-in that exposes the live Pro session as MCP tools (ping, zoom_to, query, run_gp, export_layout) so an agent drives the running project while you watch.
    6
    62
    PolyForm Noncommercial 1.0.0