ArcGIS MCP服务器
模型上下文协议(MCP)服务器,提供与ArcGIS Online的无缝集成,使AI助手能够搜索和查询地理空间要素层。
概述
此MCP服务器充当AI语言模型和ArcGIS Online之间的桥梁,允许智能地理空间数据发现和分析。它通过ArcGIS Online进行身份验证,并提供了强大的工具,用于以针对AI消费优化的格式查找和检索要素层数据。
特性
- 安全认证:使用基于环境的凭据连接到ArcGIS Online
- 智能图层搜索:使用自然语言关键字发现要素层
- 数据提取:从要素图层检索属性表作为结构化CSV数据
- 多层支持:处理单层和功能服务集合
- 错误处理:用于故障排除的强大错误报告
可用工具
search_layers
在ArcGIS Online中搜索与关键字匹配的要素图层,并返回各个图层的REST服务URL。
参数:
keyword(string):查找匹配图层的搜索词(例如,“消防栓”、“道路”、“公园”)
退货: 匹配层名称及其REST服务URL的格式化列表。
例子:
Fire Hydrants: https://services.arcgis.com/.../FeatureServer/0
Water Distribution System: https://services.arcgis.com/.../FeatureServer/1工作流提示: 首先使用此工具发现要素层,然后将返回的URL链接到其他工具。
summarize_field
为ArcGIS要素图层中的特定字段提供全面的统计数据。
参数:
service_url(string):功能层的REST服务URL(从search_layers)field_name(string):要分析的字段的名称(从get_feature_table)
退货: 字段类型适当的统计数据包括:
- 所有类型:总计数、空百分比、唯一值、前10个最常见的频率值
- 数字字段:最小值、最大值、平均值、中位数、众数、标准差
- 日期字段:最早日期、最晚日期和日期范围
例子:
Field: Status
Type: esriFieldTypeString
Total features: 150
Null values: 5 (3.3%)
Unique values: 3
Top 10 values:
'Active': 120 (82.8%)
'Maintenance': 20 (13.8%)
'Inactive': 5 (3.4%)工作流提示: 完整的工作流程: search_layers → get_feature_table (查看字段)→ summarize_field (分析)。
search_content
在ArcGIS Online中搜索任何类型的内容项,并返回其项目ID。
参数:
keyword(string):查找匹配内容的搜索词(例如,“流量”、“人口”、“仪表板”)item_type(可选字符串):针对特定内容类型进行筛选(例如,“网络地图”、“仪表板”、“功能服务”)
退货: 匹配项目标题及其项目ID和内容类型的格式化列表。
例子:
Traffic Analysis Dashboard: abc123def456 | Type: Dashboard
Population Web Map: xyz789uvw012 | Type: Web Map
Transportation Network: def456ghi789 | Type: Feature Serviceget_feature_table
使用REST服务URL从指定的要素层检索属性表的示例(前20行)。
参数:
service_url(string):目标功能层的REST服务URL(从search_layers)
退货: CSV格式的前20行属性数据,不包括用于高效处理的几何图形。注:这是一个示例,不是完整的表格。
例子:
OBJECTID,Name,Type,Status,Install_Date
1,Hydrant_001,Fire Hydrant,Active,2020-01-15
2,Hydrant_002,Fire Hydrant,Maintenance,2019-08-22工作流提示: 使用后 search_layers 预览数据结构并识别字段名称以供进一步分析。
设置
先决条件
- Python 3.11或更高版本
- 具有适当权限的ArcGIS Online帐户
安装
- 克隆存储库
- 安装依赖项:
pip install -e .- 创建一个
.env使用ArcGIS Online凭据创建文件:
ARCGIS_USERNAME=your_username
ARCGIS_PASSWORD=your_password运行服务器
python main.py服务器将启动并通过stdio传输监听MCP连接。
建筑
该服务器使用FastMCP框架构建,并利用ArcGIS Python API与ArcGIS Online服务无缝集成。它在启动时处理身份验证,并维护持久连接以实现高效查询。
工作流
内容发现
- 搜索内容:使用
search_content按关键字和类型查找项目(网络地图、仪表板等) - 用于特征层分析:使用
search_layers而是找到用于数据提取的特定层
特定于图层的数据分析(推荐工作流)
- 查找图层:使用
search_layers按关键字定位特定特征层 - 预览数据:使用
get_feature_table使用REST URL查看字段名和示例数据(20行) - 分析字段:使用
summarize_field获取特定感兴趣领域的详细统计数据
用例
- 数据发现:使用自然语言查询查找相关的地理空间数据集和应用程序
- 空间分析:提取属性数据,用于AI驱动的分析和洞察
- 报告生成:自动从多个要素层收集数据,以生成综合报告
- 质量保证:以编程方式检查功能层内容和服务配置
