城市开放数据常包含许可、311、行政区和公共设施图层。接入 MCP 后,助手可以从一句“查附近的投诉”开始搜索目录、读取元数据、查询服务并返回空间要素。便利不应掩盖边界:目录能被搜索,不表示每个服务都该被宽泛读取或自动用于决策。
ArcGIS Hub MCP Server 是面向 ArcGIS Hub 开放数据平台的 MCP server。仓库说明可通过更换域名配置访问不同 Hub 网站,并列出 Chattanooga、Austin、Cook County 与 Connecticut 的示例;ARCGIS_HUB_DOMAIN 的默认值是 data.chattanooga.gov。这意味着域名本身是第一道数据边界,应被固定在部署配置中,而非由模型在运行时自由改变。
ArcGIS Hub MCP 仓库预览图
图:ArcGIS Hub MCP GitHub 仓库预览图,来源:项目仓库页面。
核心机制:先发现,再读元数据,最后做受限查询
项目把查询分成三层。list_collections 返回 dataset、document、appAndMap 与 all 四类集合;search_datasets 接受文本、集合、limit 和 offset,默认最多 20 条、最大 100 条,并给出数据集是否可查询的标记。目录结果只是候选清单。
选中候选后,用 get_dataset 读取完整元数据和 access block,确认应走 query 还是 download。最后才使用 query_feature_service。该工具可接受数据集 ID 或直接 serviceUrl,并支持图层号、where、outFields、limit、offset 与点相交;默认最多 50 条,最大 1000 条,返回 GeoJSON FeatureCollection。分层调用让每个决定都能留痕:为什么选这个图层、使用了哪些字段、范围在哪里、返回了多少要素。
技术路径:把自然语言压缩为五个查询约束
城市服务问题可先让助手搜索“311”,再由人工或规则选定服务请求数据集。查询前固定五项:目标 Hub 域名、数据集 ID、图层号、允许字段和空间/时间范围。将 where 限制为预定义字段条件,将 outFields 限制为任务必需列,将 limit 设为小值并用分页获取确有需要的结果。
点面查询适合回答“这个坐标落在哪个议会选区”,但也应先验证坐标顺序、空间参考和边界图层版本。不要将一个点面相交结果直接写回案件或审批系统;先显示候选辖区、图层更新时间和原始要素 ID,供业务人员确认。
可核查事实
query_feature_service支持数据集 ID 或直接服务 URL,并可传入点坐标做空间相交查询。- 它的默认返回上限为 50、最大为 1000,返回 GeoJSON FeatureCollection。
get_dataset_csv支持选择列、limit 与简单文本过滤,并返回截断元数据。- 数据目录搜索默认最多返回 20 条,最大为 100 条。
- 项目将核心 ArcGISHubClient 设计为传输无关,可后续包装为 streamable HTTP 服务。
最小权限清单
- 固定允许的 Hub 域名,不让模型动态改写
ARCGIS_HUB_DOMAIN。 - 将目录搜索结果视为候选,不直接当作可信业务数据。
- 通过
get_dataset记录数据集 ID、更新时间、访问方式和许可说明。 - 为每个查询限定字段、空间范围、时间条件、limit 和分页策略。
- 保存输入提示、服务 URL、where、返回要素数、要素 ID 与执行时间。
- 先在公开、低风险图层验证点面结果,再开放更复杂的 Feature Service 查询。
- 将下载和大批量导出设为独立审批操作,不与常规读取混用。
风险边界
README 的跨域兼容说明不能替代对目标 Hub、服务权限、字段质量和更新频率的实测。公开数据也可能过期、缺失或包含不适合自动解释的字段;服务端 SQL 支持和限额会因站点而异。项目支持 HTTP 升级并不意味着应默认对外暴露写入能力。对于执法、福利、分区或基础设施调度,结果应保留来源链接与人工复核。
结论
ArcGIS Hub MCP Server 将目录、元数据和空间查询连接成一条可用路径。可靠接入的关键不是让模型一次取更多数据,而是把域名、数据集、字段、范围和返回量收紧并记录。这样,开放数据才能成为可审计的 GIS 证据,而不是不受控的自动化输入。