返回市场
地理信息系统-MCP

地理信息系统-MCP

作者:mahdin7572 星标更新:2025-11-23

项目介绍

技术文档摘要

GIS MCP Server

PyPI 版本 PyPI 下载量 Ask DeepWiki 传输方式 使用LangChain构建AI代理 <br/></br>

<div align="center"> <h3>✨ 想在聊天机器人中进行精确的空间分析吗?✨</h3> <p><strong>安装GIS-MCP并提升AI的空间能力!</strong></p> <br/> <img src="docs/Logo.png" alt="GIS MCP Server Logo" width="300"/> <br/> </div>

这是一个通过GIS库连接大型语言模型(LLMs)与GIS操作的模型上下文协议(MCP)服务器实现,使AI助手能够执行空间操作和转换。


🌐 网站: gis-mcp.com

当前版本是0.11.0(测试版):

我们欢迎贡献者和开发者加入我们共同建设这个项目。

🎥 演示

<div align="center"> <img src="docs/demo.gif" alt="GIS MCP Server 演示" width="800"/> </div>

Rasterio 演示

<div align="center"> <a href="https://www.veed.io/view/95ff85f4-efbb-4154-9a04-d966c6ae1737?panel=share"> <br/> <em>点击观看 Rasterio 演示视频或访问文档文件夹</em> </a> </div>

📋 目录

🚀 功能

GIS MCP Server 赋予AI助手高级的空间智能。主要功能包括:

  • 🔹 全面的几何操作 – 轻松执行交集、联合、缓冲区、差集等几何变换。
  • 🔹 高级坐标变换 – 在坐标参考系统之间轻松重新投影和变换几何图形。
  • 🔹 准确测量 – 精确计算距离、面积、长度和质心。
  • 🔹 空间分析与验证 – 验证几何图形,运行邻近检查,并执行空间叠加或连接。
  • 🔹 栅格与矢量支持 – 处理栅格层,计算如NDVI等指数,剪切、重采样和合并矢量数据。
  • 🔹 空间统计与建模 – 使用PySAL进行空间自相关、聚类和邻域分析。
  • 🔹 易于集成 – 无缝连接到兼容MCP的客户端,如Claude Desktop或Cursor IDE。
  • 🔹 灵活且可扩展 – 支持基于Python的GIS库,并准备好用于定制工具或工作流程扩展。

🌟 提示: 使用GIS MCP Server,您的AI现在可以“思考空间”,解锁新的环境分析、制图和位置智能能力。


📋 前置条件

  • Python 3.10 或更高版本
  • 兼容MCP的客户端(如Claude Desktop或Cursor)
  • 安装包所需的互联网连接

🛠 安装

选择最适合您需求的安装方法:

🐳 Docker 安装

GIS MCP Server 可以使用Docker运行,提供一个预装所有依赖项的隔离环境。

重要: DockerfileDockerfile.local 默认启用 HTTP 传输模式。服务器运行在端口 9010 并可通过 http://localhost:9010/mcp 访问。

使用 Dockerfile

Dockerfile 从 PyPI 安装包:

  1. 构建 Docker 镜像:
docker build -t gis-mcp .
  1. 运行容器(默认启用 HTTP 模式):
docker run -p 9010:9010 gis-mcp

使用 Dockerfile.local

Dockerfile.local 从本地源文件安装包(适用于开发或自定义构建):

  1. 构建 Docker 镜像:
docker build -f Dockerfile.local -t g_ismcp:local .
  1. 运行容器(默认启用 HTTP 模式):
docker run -p 9010:9010 gis-mcp:local

服务器将在 HTTP 传输模式下通过 http://localhost:9010/mcp 访问。

有关 Docker 配置和环境变量的更多详细信息,请参阅 Docker 安装指南

📦 pip 安装

推荐大多数用户使用 pip 安装:

  1. 安装 uv 包管理器:
pip install uv
  1. 创建虚拟环境(Python 3.10+):
uv venv --python=3.10
  1. 激活虚拟环境:

在 Windows (PowerShell) 中:

.\.venv\Scripts\Activate.ps1

在 Linux 中:

source .venv/bin/activate
  1. 安装包:
uv pip install gis-mcp

安装带有可视化功能

要安装带有可视化功能(Folium 和 PyDeck 用于交互式地图):

uv pip install gis-mcp[visualize]

这将安装额外的依赖项:

  • folium>=0.15.0 - 用于创建交互式网页地图
  • pydeck>=0.9.0 - 用于高级 3D 可视化
  1. 启动服务器:
gis-mcp

默认情况下,服务器运行在 STDIO 传输模式,适合本地开发和与 Claude Desktop 或 Cursor IDE 的集成。

您也可以在 HTTP 传输模式 下运行服务器以进行网络部署:

export GIS_MCP_TRANSPORT=http
export GIS_MCP_PORT=8080
gis-mcp

有关传输模式(STDIO 对比 HTTP)的更多详细信息,请参阅 HTTP 传输配置 文档。

pip 配置

要使用 pip 安装与 Claude 或 Cursor 集成,请添加以下配置:

Claude Desktop:

Windows:

{
  "mcpServers": {
    "gis-mcp": {
      "command": "C:\\Users\\YourUsername\\.venv\\Scripts\\gis-mcp",
      "args": []
    }
  }
}

Linux/Mac:

{
  "mcpServers": {
    "gis-mcp": {
      "command": "/home/YourUsername/.venv/bin/gis-mcp",
      "args": []
    }
  }
}

Cursor IDE(创建 .cursor/mcp.json):

Windows:

{
  "mcpServers": {
    "gis-mcp": {
      "command": "C:\\Users\\YourUsername\\.venv\\Scripts\\gis-mcp",
      "args": []
    }
  }
}

Linux/Mac:

{
  "mcpServers": {
    "gis-mcp": {
      "command": "/home/YourUsername/.venv/bin/gis-mcp",
      "args": []
    }
  }
}

配置后:

  1. 确保用您的实际用户名替换 YourUsername
  2. 对于开发安装,用实际项目路径替换 /path/to/gis-mcp
  3. 重启您的IDE以应用更改
  4. 您现在可以通过 Claude 或 Cursor 使用所有 GIS 操作!

🛠 开发安装

对于贡献者和开发者:

  1. 安装 uv 包管理器:
pip install uv
  1. 创建虚拟环境:
uv venv --python=3.10
  1. 在开发模式下安装包:
uv pip install -e .
  1. 启动服务器:
python -m gis_mcp

开发配置

要使用开发安装与 Claude 或 Cursor 集成,请添加以下配置:

Claude Desktop:

Windows:

{
  "mcpServers": {
    "gis-mcp": {
      "command": "C:\\path\\to\\gis-mcp\\.venv\\Scripts\\python",
      "args": ["-m", "gis_mcp"]
    }
  }
}

Linux/Mac:

{
  "mcpServers": {
    "gis-mcp": {
      "command": "/path/to/gis-mcp/.venv/bin/python",
      "args": ["-m", "gis_mcp"]
    }
  }
}

Cursor IDE(创建 .cursor/mcp.json):

Windows:

{
  "mcpServers": {
    "gis-mcp": {
      "command": "C:\\path\\to\\gis-mcp\\.venv\\Scripts\\python",
      "args": ["-m", "gis_mcp"]
    }
  }
}

Linux/Mac:

{
  "mcpServers": {
    "gis-mcp": {
      "command": "/path/to/gis-mcp/.venv/bin/python",
      "args": ["-m", "gis_mcp"]
    }
  }
}

配置后:

  1. 确保用您的实际用户名替换 YourUsername
  2. 对于开发安装,用实际项目路径替换 /path/to/gis-mcp
  3. 重启您的IDE以应用更改
  4. 您现在可以通过 Claude 或 Cursor 使用所有 GIS 操作!

🤖 构建您的第一个 GIS AI 代理

准备好创建自己的能够执行空间操作的AI代理了吗?我们的综合教程将引导您从零开始!

您将学到什么

  • ✅ 如何在 HTTP 模式下设置 GIS MCP 服务器
  • ✅ 如何从头开始构建 LangChain 代理
  • ✅ 如何将您的代理连接到 GIS 工具
  • ✅ 如何使用 OpenRouter 访问多个 AI 模型(DeepSeek、Gemini、GPT-4、Claude 等)
  • ✅ 如何自定义和扩展您的代理

开始

👉 跟随完整的教程 →

📝 阅读 Medium 文章 →

该教程面向初学者,不需要任何先前的 AI 或 GIS 经验。您将构建一个能够执行以下操作的工作代理:

  • 计算点之间的距离
  • 在不同系统之间转换坐标
  • 在位置周围创建缓冲区
  • 执行空间分析
  • 以及更多!

适合人群:开发人员、数据科学家、GIS 专业人士以及对构建 AI 驱动的空间应用程序感兴趣的任何人。

📚 可用函数

本节提供了按库组织的所有可用函数的综合列表。

🔷 Shapely 函数(29 个)

基本几何操作:

  • buffer - 创建几何图形周围的缓冲区
  • intersection - 查找两个几何图形的交集
  • union - 结合两个几何图形
  • difference - 查找几何图形之间的差异
  • symmetric_difference - 查找对称差异

几何属性:

  • convex_hull - 计算凸包
  • envelope - 获取边界框
  • minimum_rotated_rectangle - 获取最小旋转矩形
  • get_centroid - 获取中心点
  • get_bounds - 获取几何图形边界
  • get_coordinates - 提取坐标数组
  • get_geometry_type - 获取几何图形类型名称

转换:

  • rotate_geometry - 旋转几何图形
  • scale_geometry - 缩放几何图形
  • translate_geometry - 移动几何图形

高级操作:

  • triangulate_geometry - 创建三角剖分
  • voronoi - 创建 Voronoi 图
  • unary_union_geometries - 合并多个几何图形

测量:

  • get_length - 计算几何图形长度
  • get_area - 计算几何图形面积

验证及实用工具:

  • is_valid - 检查几何图形的有效性
  • make_valid - 修复无效几何图形
  • simplify - 简化几何图形
  • snap_geometry - 拼接到参考几何图形
  • nearest_point_on_geometry - 查找最近点
  • normalize_geometry - 规范化方向
  • geometry_to_geojson - 转换为 GeoJSON
  • geojson_to_geometry - 从 GeoJSON 转换

🔷 PyProj 函数(13 个)

坐标变换:

  • transform_coordinates - 转换点坐标
  • project_geometry - 在 CRS 之间投影几何图形

CRS 信息:

  • get_crs_info - 获取详细的 CRS 信息
  • get_available_crs - 列出可用的 CRS 系统
  • get_utm_zone - 获取坐标对应的 UTM 区域
  • get_utm_crs - 获取坐标对应的 UTM CRS
  • get_geocentric_crs - 获取地心 CRS

大地测量计算:

  • get_geod_info - 获取椭球体信息
  • calculate_geodetic_distance - 在椭球体上计算距离
  • calculate_geodetic_point - 在距离/方位角处计算点
  • calculate_geodetic_area - 在椭球体上计算面积

🔷 GeoPandas 函数(13 个)

I/O 操作:

  • read_file_gpd - 使用预览读取地理空间文件
  • write_file_gpd - 导出 GeoDataFrame 到文件

连接与合并操作:

  • append_gpd - 垂直连接 GeoDataFrames
  • merge_gpd - 数据库风格的属性连接
  • overlay_gpd - 空间覆盖操作
  • dissolve_gpd - 根据属性溶解
  • explode_gpd - 分割多部分几何图形

空间操作:

  • clip_vector - 剪切几何图形
  • sjoin_gpd - 空间连接
  • sjoin_nearest_gpd - 最近邻空间连接
  • point_in_polygon - 点在多边形内测试

🔷 Rasterio 函数(20 个)

基本栅格操作:

  • metadata_raster - 获取栅格元数据
  • get_raster_crs - 获取栅格 CRS
  • extract_band - 提取单个波段
  • raster_band_statistics - 计算波段统计数据
  • raster_histogram - 计算像素直方图

栅格处理:

  • clip_raster_with_shapefile - 使用多边形剪切栅格
  • resample_raster - 按比例因子重采样
  • reproject_raster - 重新投影到新 CRS
  • tile_raster - 分割为瓦片

栅格分析:

  • compute_ndvi - 计算植被指数
  • raster_algebra - 波段上的数学运算
  • concat_bands - 组合单波