项目简介
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 安装 (推荐)
- 准备环境:
- 确保您的系统已安装 Python 3.10 或更高版本。
- 安装 'uv' 包管理器:
pip install uv
- 创建并激活虚拟环境:
- 创建虚拟环境:
uv venv --python=3.10 - 激活虚拟环境:
- 在 Windows PowerShell 中:
.\.venv\Scripts\Activate.ps1 - 在 Linux 或 macOS 中:
source .venv/bin/activate
- 在 Windows PowerShell 中:
- 创建虚拟环境:
- 安装 'gis-mcp':
uv pip install gis-mcp - 可选:安装可视化功能(例如交互式地图):
uv pip install gis-mcp[visualize] - 启动服务器:
- 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
- 在 Windows PowerShell 中设置环境变量并启动:
- STDIO 模式 (默认,适用于本地开发和IDE集成):
使用 Docker 安装
- 构建 Docker 镜像 (从 PyPI 安装):
在仓库根目录下运行:
docker build -t gis-mcp . - 运行容器 (HTTP 模式,端口9010):
服务器将在容器内的 'http://localhost:9010/mcp' 上提供服务,并通过 'http://localhost:9010/mcp' 在宿主机上访问。docker run -p 9010:9010 gis-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与计算