返回市场
弧GIS MCP

弧GIS MCP

作者:GarrickGarcia6 星标更新:2025-08-11

项目介绍

ArcGIS MCP Server

一个模型上下文协议(MCP)服务器,提供与ArcGIS Online的无缝集成,使AI助手能够搜索和查询地理空间要素图层。

概述

此MCP服务器作为AI语言模型与ArcGIS Online之间的桥梁,允许进行智能地理空间数据发现和分析。它通过ArcGIS Online进行身份验证,并提供了强大的工具,用于以优化AI消费的格式查找和检索要素图层数据。

特性

  • 安全认证:使用基于环境的凭据连接到ArcGIS Online
  • 智能图层搜索:使用自然语言关键词发现要素图层
  • 数据提取:从要素图层中检索结构化的CSV属性表
  • 多图层支持:处理单个图层和要素服务集合
  • 错误处理:强大的错误报告功能,便于故障排除

可用工具

search_layers

在ArcGIS Online中搜索与关键词匹配的要素图层,并返回各个图层的REST服务URL。

参数:

  • keyword (字符串):用于查找匹配图层的搜索词(例如,“消防栓”,“道路”,“公园”)

返回值: 匹配图层名称及其REST服务URL的格式化列表。

示例:

消防栓: https://services.arcgis.com/.../FeatureServer/0
供水系统: https://services.arcgis.com/.../FeatureServer/1

工作流程提示:首先使用此工具发现要素图层,然后将返回的URL链接到其他工具。

summarize_field

为ArcGIS要素图层中的特定字段提供全面统计信息。

参数:

  • service_url (字符串):要素图层的REST服务URL(从search_layers获得)
  • field_name (字符串):要分析的字段名称(从get_feature_table获得)

返回值: 适合字段类型的统计信息包括:

  • 所有类型:总数、空值百分比、唯一值、前10个最常见的值及其频率
  • 数值字段:最小值、最大值、平均值、中位数、众数、标准差
  • 日期字段:最早日期、最晚日期及日期范围

示例:

字段: 状态
类型: esriFieldTypeString
总特征数: 150
空值数: 5 (3.3%)
唯一值数: 3

前10个值:
  '活动': 120 (82.8%)
  '维护': 20 (13.8%)
  '不活动': 5 (3.4%)

工作流程提示:完成的工作流:search_layersget_feature_table(查看字段)→ summarize_field(分析)。

search_content

在ArcGIS Online中搜索任何类型的内容项,并返回其项目ID。

参数:

  • keyword (字符串):用于查找匹配内容的搜索词(例如,“交通”,“人口”,“仪表板”)
  • item_type (可选字符串):过滤特定内容类型(例如,“Web地图”,“仪表板”,“要素服务”)

返回值: 匹配项标题及其项目ID和内容类型的格式化列表。

示例:

交通分析仪表板: abc123def456 | 类型: 仪表板
人口Web地图: xyz789uvw012 | 类型: Web地图
运输网络: def456ghi789 | 类型: 要素服务

get_feature_table

使用REST服务URL从指定的要素图层中检索属性表的样本(前20行)。

参数:

  • service_url (字符串):目标要素图层的REST服务URL(从search_layers获得)

返回值: 属性数据的前20行,以CSV格式返回,不包含几何信息,以便高效处理。注意:这是样本,不是完整的表格。

示例:

OBJECTID,名称,类型,状态,安装日期
1,消防栓_001,消防栓,活动,2020-01-15
2,消防栓_002,消防栓,维护,22019-08-22

工作流程提示:在search_layers之后使用,预览数据结构并识别字段名称以供进一步分析。

安装

预备条件

  • Python 3.11或更高版本
  • 具有适当权限的ArcGIS Online账户

安装步骤

  1. 克隆仓库

  2. 安装依赖项:

    pip install -e .
    
  3. 创建一个.env文件,其中包含您的ArcGIS Online凭据:

    ARCGIS_USERNAME=您的用户名
    ARCGIS_PASSWORD=您的密码
    

运行服务器

python main.py

服务器启动后,将通过stdio传输监听MCP连接。

架构

该服务器使用FastMCP框架构建,并利用ArcGIS Python API实现与ArcGIS Online服务的无缝集成。它在启动时处理身份验证,并维持持久连接以实现高效的查询。

工作流程

内容发现

  1. 搜索内容:使用search_content按关键词和类型(Web地图、仪表板等)查找项目
  2. 针对要素层分析:使用search_layers代替,以查找特定图层进行数据提取

图层特定数据分析(推荐工作流程)

  1. 查找图层:使用search_layers按关键词定位特定要素图层
  2. 预览数据:使用get_feature_table与REST URL查看字段名称和样本数据(20行)
  3. 分析字段:使用summarize_field获取特定字段的详细统计信息

使用案例

  • 数据发现:使用自然语言查询找到相关的地理空间数据集和应用程序
  • 空间分析:提取属性数据进行AI驱动的分析和洞察
  • 报告生成:自动收集来自多个要素图层的数据以生成综合报告
  • 质量保证:程序化检查要素图层内容和服务配置