Token导航 LogoToken导航TokenDH.com
esri gis MCP logo
运维云端stdio官方级别未说明来源级核验

esri gis MCP

MCP Server

该MCP服务器提供对eThekwini市地理信息系统(GIS)数据的无缝访问,支持自动发现数据集、空间查询和统计分析,适用于市政规划和空间分析场景。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
开放数据PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

bonnie-mapipa

提供方

bonnie-mapipa

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

eThekwini ESRI GIS MCP

用于访问eThekwini市开放式GIS数据门户的模型上下文协议(MCP)服务器。

概述

此MCP服务器通过ArcGIS REST服务提供对eThekwini市地理信息系统(GIS)数据的无缝访问。它可以从eThekwini GIS门户自动发现可用的数据集和服务,从而轻松查询和分析市政空间数据。

✅ 已成功连接到141多个eThekwini数据集,包括:

  • 物业租赁和土地信息
  • 道路和交通基础设施
  • 市政边界和行政区域
  • 环境数据(湿地、海岸带、洪泛区)
  • 公共设施(学校、医院、图书馆)
  • 公用事业和基础设施数据
  • 规划和分区信息

特性

🔄 自动发现

  • 自动从eThekwini的开放数据门户中发现可用数据集
  • 在将新数据集和服务添加到门户时检测它们
  • 具有可配置刷新间隔的智能缓存

🔍 综合搜索

  • 按关键字、类别和标签搜索数据集
  • 按市政服务类别(交通、环境等)筛选
  • 跨数据集名称、描述和元数据的全文搜索

🗺️ 空间查询

  • 使用空间和属性过滤器查询特征层
  • 感兴趣地理区域的边界框查询
  • 围绕特定坐标的缓冲区查询
  • 支持各种空间关系(交叉、包含、内部等)

📊 统计分析

  • 从数字字段(计数、总和、最小值、最大值、平均值、标准偏差)获取统计信息
  • 字段信息和元数据提取
  • 层架构发现

🛠️ 市政服务一体化

  • 列出可用的市政服务类别
  • 按服务类型对数据集的访问进行分类
  • 市政特定数据结构和工作流程

🚀 部署选项

1. 标准MCP服务器 (直接集成)

与MCP兼容的客户端(如Claude Desktop、Azure AI Foundry或自定义应用程序)一起使用。

2. Azure功能部署 (云API)

作为web应用程序和AI代理的REST API部署:

  • Azure AI Foundry集成 -非常适合AI代理知识库
  • REST API访问 -所有MCP工具的HTTP端点
  • 自动缩放 -自动处理流量峰值
  • 南非主办 -部署在约翰内斯堡以获得最佳性能

👉 Azure功能设置指南

安装

标准MCP安装

  1. 克隆存储库:
git clone https://github.com/bonnie-mapipa/ethekwini-gis-mcp.git
cd ethekwini-gis-mcp
  1. 安装依赖项:
pip install -r requirements.txt
  1. 运行MCP服务器:
python src/ethekwini_gis_mcp.py

配置

MCP客户端配置

将以下内容添加到MCP客户端配置中:

{
  "mcpServers": {
    "ethekwini-gis": {
      "command": "python",
      "args": ["src/ethekwini_gis_mcp.py"],
      "cwd": "/path/to/ethekwini-gis-mcp",
      "env": {}
    }
  }
}

环境变量

通过环境变量进行可选配置:

# Refresh interval in seconds (default: 900 = 15 minutes)
export ETHEKWINI_REFRESH_INTERVAL=900

# Maximum records per query (default: 100)
export ETHEKWINI_MAX_RECORDS=100

# HTTP timeout in seconds (default: 60)
export ETHEKWINI_TIMEOUT=60

可用工具

数据集发现

  • refresh_datasets -刷新和发现新的数据集和服务
  • search_datasets -按关键字、类别或标签搜索数据集
  • get_dataset_info -获取特定数据集的详细信息
  • list_municipal_services -列出可用的市政服务类别

数据查询

  • query_feature_layer -从数据集的特征层查询特征
  • spatial_query_by_coordinates -查询边界框内或坐标附近的特征
  • get_layer_fields -获取要素图层的字段信息
  • get_layer_statistics -获取图层中数值字段的统计信息

使用示例

搜索交通数据

# Search for transportation-related datasets
search_datasets(
    query="transport roads traffic", 
    category="Transportation",
    limit=10
)

查询道路网络特征

# Query roads in a specific area
spatial_query_by_coordinates(
    service_url="https://services1.arcgis.com/.../FeatureServer/",
    xmin=30.8, ymin=-29.9,  # Durban area coordinates
    xmax=31.1, ymax=-29.7,
    max_records=50
)

获取统计信息

# Get statistics for a numeric field
get_layer_statistics(
    service_url="https://services1.arcgis.com/.../FeatureServer/",
    field_name="POPULATION",
    statistic_type="sum",
    where="DISTRICT='eThekwini'"
)

高级功能查询

# Query with attribute and spatial filters
query_feature_layer(
    service_url="https://services3.arcgis.com/HO0zfySJshlD6Twu/arcgis/rest/services/Roads/FeatureServer/",
    layer_id=0,
    where="STATUS='Active' AND CATEGORY='Residential'",
    return_geometry=True,
    max_records=100,
    out_fields="NAME,STATUS,CATEGORY,POPULATION"
)

使用租赁数据集(已验证)

# Query the eThekwini Leases dataset - this is working!
query_leases_dataset(
    where="SUBURB='Durban'",
    layer_id=11,
    format="geojson", 
    max_records=20
)

# Returns GeoJSON with properties including:
# OBJECTID, PROPKEY, SUBURB, STRNAME, LEASENUM, FARMTOWNNA, ERF, etc.

真实数据集示例

MCP服务器发现了141多个真实数据集,包括:

  • 租赁:包含24个字段的物业租赁信息
  • 道路:道路网络数据
  • 病房:市辖区边界
  • 学校:教育机构
  • 医院:医疗设施
  • 湿地:环境保护区
  • 消防站:紧急服务地点
  • 图书馆:公共图书馆位置
  • 分区:土地利用分区信息

数据源

此MCP服务器从以下位置访问数据:

  • eThekwini开放数据门户: https://gis-ethekwini.opendata.arcgis.com
  • ArcGIS REST服务:功能服务、地图服务和地理处理服务
  • 市政数据集:交通、环境、规划、公用事业和行政数据

自动发现机制

如何检测新API

MCP服务器使用多种机制来发现新的数据集和API:

  1. 定期刷新:每15分钟自动刷新一次数据集缓存
  2. 手动刷新:使用 refresh_datasets 手动更新缓存的工具
  3. API监测:监视eThekwini开放数据API中的新项目
  4. 服务发现:自动检测和编目新的ArcGIS REST服务

缓存管理

  • 缓存持续时间:默认为15分钟(可配置)
  • 强制刷新:手动刷新忽略缓存超时
  • 增量更新:仅在可能的情况下获取新的/更新的数据集
  • 错误处理:API错误缓存数据的优雅回退

新数据集集成

当新数据集添加到eThekwini门户时:

  1. 自动检测:在下一个缓存刷新周期检测到
  2. 工具生成:可以为特定数据集动态生成新工具
  3. 资源注册:新资源会自动向MCP注册
  4. 元数据抽取:自动发现服务信息和架构

API覆盖范围

当前支持的服务

  • 功能服务:具有完整查询功能的矢量数据
  • 地图服务:光栅和缓存地图服务
  • 地质处理服务:空间分析和处理工具
  • 图像服务:航空图像和卫星数据

服务类型

  • 交通网络(道路、公共交通)
  • 行政边界(区、区)
  • 环境数据(空气质量、绿地)
  • 公用事业基础设施(水、电)
  • 规划和分区信息
  • 人口普查和人口统计数据

技术架构

组件

  • MCP服务器:核心协议实施
  • 数据集发现引擎:自动服务发现和编目
  • 查询引擎:空间和属性查询处理
  • 缓存管理器:具有刷新逻辑的智能缓存
  • 错误处理程序:强大的错误处理和回退机制

性能优化

  • 并发请求:并行API调用可加快发现速度
  • 智能缓存:减少API调用并改进响应时间
  • 查询优化:高效的参数处理和结果处理
  • 连接池:重用HTTP连接以获得更好的性能

🤖 Azure AI Foundry集成

Azure Function部署实现了与Azure AI Foundry代理的无缝集成:

快速设置

  1. 部署功能:使用 ./azure_function/deploy.bat (Windows)或 ./azure_function/deploy.sh (Linux/macOS)
  2. 创建AI代理:在Azure AI Foundry中添加函数URL作为自定义技能
  3. 配置身份验证:使用功能键进行安全访问

代理功能示例

🗺️ "Show me transport datasets in eThekwini"
📍 "Find municipal boundaries near coordinates -29.8587, 31.0218"
📊 "Get statistics for the water infrastructure dataset"
🔍 "Search for datasets containing 'environmental' data"

功能端点

  • GET /api/datasets -列出所有数据集
  • POST /api/datasets/{id}/query -查询特定数据集
  • POST /api/datasets/{id}/spatial -空间查询
  • GET /api/search?q={term} -搜索数据集

📚 完整的Azure功能文档

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

  • eThekwini市提供GIS数据的开放访问
  • 用于ArcGIS REST API和开放数据平台的Esri
  • 协议规范的模型上下文协议(MCP)社区

支持

有关问题、疑问或贡献,请访问我们的 或者打开一个问题。

______________________________________________________________________

备注:此MCP服务器旨在处理来自eThekwini开放数据门户的公开数据。确保遵守市政当局的数据使用政策和服务条款。

目录标签

目录标签

开放数据PythonClaude地理信息系统本地部署市政数据空间分析ArcGIS集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP