项目简介

GIS MCP Server是一个强大的后端服务,旨在扩展LLM的地理空间智能。它通过标准化协议(MCP)对外暴露多种GIS功能,包括几何操作、坐标转换、栅格与矢量数据处理、空间统计、地图可视化以及地理空间数据下载等。用户可以通过LLM客户端(如Claude Desktop或Cursor IDE)轻松调用这些功能,实现AI驱动的地理空间应用。

主要功能点

  • 几何操作: 执行缓冲区分析、交集、并集、差集等矢量几何变换。
  • 坐标转换与测量: 支持不同坐标参考系统间的坐标转换,并计算地理距离和面积。
  • 栅格数据处理: 进行栅格裁剪、重采样、重投影、NDVI计算、统计分析及山体阴影生成。
  • 矢量数据管理: 读写多种格式的地理空间文件,执行矢量叠加、合并、溶解、裁剪和空间连接。
  • 空间统计分析: 利用PySAL库进行莫兰指数、Getis-Ord G等空间自相关和聚类分析。
  • 地图可视化: 生成高质量的静态地图(PNG、PDF、JPG)和交互式Web地图(HTML)。
  • 地理空间数据下载: 提供行政边界、气候数据、生态物种、街道网络、地表覆盖和卫星影像的下载能力。

安装步骤

您可以选择以下任一方式安装和运行GIS MCP服务器:

使用 pip 安装 (推荐)

  1. 准备环境:
    • 确保您的系统已安装 Python 3.10 或更高版本。
    • 安装 'uv' 包管理器:
      pip install uv
  2. 创建并激活虚拟环境:
    • 创建虚拟环境:
      uv venv --python=3.10
    • 激活虚拟环境:
      • 在 Windows PowerShell 中:
        .\.venv\Scripts\Activate.ps1
      • 在 Linux 或 macOS 中:
        source .venv/bin/activate
  3. 安装 'gis-mcp':
    uv pip install gis-mcp
  4. 可选:安装可视化功能(例如交互式地图):
    uv pip install gis-mcp[visualize]
  5. 启动服务器:
    • STDIO 模式 (默认,适用于本地开发和IDE集成):
      gis-mcp
      服务器将启动并监听标准输入输出。
    • HTTP 模式 (适用于网络部署或特定客户端):
      • 在 Windows PowerShell 中设置环境变量并启动:
        $env:GIS_MCP_TRANSPORT='http'
        $env:GIS_MCP_PORT='9010'
        gis-mcp
      • 在 Linux 或 macOS 中设置环境变量并启动:
        export GIS_MCP_TRANSPORT=http
        export GIS_MCP_PORT=9010
        gis-mcp
      服务器将在 'http://localhost:9010/mcp' 上提供服务。

使用 Docker 安装

  1. 构建 Docker 镜像 (从 PyPI 安装): 在仓库根目录下运行:
    docker build -t gis-mcp .
  2. 运行容器 (HTTP 模式,端口9010):
    docker run -p 9010:9010 gis-mcp
    服务器将在容器内的 'http://localhost:9010/mcp' 上提供服务,并通过 'http://localhost:9010/mcp' 在宿主机上访问。

服务器配置 (MCP 客户端使用)

MCP 客户端需要配置服务器信息才能与之建立连接。以下是为常见的MCP客户端(如Claude Desktop或Cursor IDE)提供的配置示例。

STDIO 模式配置 (默认,适用于本地开发和IDE集成)

在您的 MCP 客户端配置中,找到 'mcpServers' 部分并添加以下 JSON 配置。请将 'YourUsername' 替换为您的实际用户名,并将 '/path/to/gis-mcp' 替换为您的项目实际路径(如果您是开发安装)。

{
  "mcpServers": {
    "gis-mcp": {
      "command": "/home/YourUsername/.venv/bin/gis-mcp",
      "args": []
    }
  }
}
  • 配置说明:
    • '"gis-mcp"':这是您为该MCP服务器定义的名称,可根据需要修改。
    • '"command"':指向您安装 'gis-mcp' 后生成的实际可执行脚本路径。
      • Linux/macOS 示例: '/home/YourUsername/.venv/bin/gis-mcp'
      • Windows 示例: 'C:\Users\YourUsername\.venv\Scripts\gis-mcp'
      • 如果您是开发安装: 命令应指向虚拟环境中的 Python 解释器,并以模块形式运行:
        • Linux/macOS 示例: '/path/to/gis-mcp/.venv/bin/python'
        • Windows 示例: 'C:\path\to\gis-mcp\.venv\Scripts\python'
        • 此时,'args' 字段应为 '["-m", "gis_mcp"]'。
    • '"args"':启动命令的额外参数。在 STDIO 模式下通常留空 '[]'。

HTTP 模式配置 (适用于网络部署或特定客户端)

如果您以 HTTP 模式启动了 GIS MCP 服务器(例如在 'http://localhost:9010/mcp'),请在客户端配置中添加以下 JSON 片段:

{
  "mcpServers": {
    "gis-mcp-http": {
      "transport": "http",
      "url": "http://localhost:9010/mcp"
    }
  }
}
  • 配置说明:
    • '"gis-mcp-http"':为该 MCP 服务器定义的名称,可根据需要修改。
    • '"transport"':明确指定传输协议为 '"http"'。
    • '"url"':MCP 服务器的 HTTP 端点。请务必根据您的实际部署修改主机('localhost')和端口('9010')。

配置完成后,请务必重启您的 MCP 客户端或 IDE 以应用更改。

基本使用方法

一旦服务器启动并客户端配置完成,您就可以在LLM客户端中通过自然语言请求GIS操作。

  • 示例 (请求几何体缓冲): 向LLM客户端提问: "Please create a 10 unit buffer around the point (0,0)." LLM客户端会自动调用 'buffer' 工具,并提供结果。

  • 示例 (请求坐标转换): 向LLM客户端提问: "Transform the coordinates (0,0) from EPSG:4326 to EPSG:3857." LLM客户端会自动调用 'transform_coordinates' 工具,并提供转换后的坐标。

  • 示例 (创建静态地图): 向LLM客户端提问: "Create a static map named 'my_city_map.png' showing 'buildings.shp' in red and 'roads.shp' in black, with a title 'City Infrastructure'." LLM客户端将调用 'create_map' 工具并返回生成的地图文件路径。

信息

分类

AI与计算