GIS-MCP 是一个开源的 Model Context Protocol(MCP)服务器,作用是连接 AI 助手与大语言模型(LLM)和 GIS/地理空间操作。根据资料,它让 AI 智能体可以通过兼容 MCP 的客户端(如 Claude Desktop 或 Cursor IDE)执行地理空间分析、空间数据处理、矢量与栅格操作、坐标转换、空间统计、制图以及其他 GIS 工作流。
当前版本为 0.15.0(Beta)。资料列出官方文档 https://gis-mcp.com、PyPI 页面 https://pypi.org/project/gis-mcp/ 和源码地址 https://github.com/mahdin75/gis-mcp。
主要能力方面,资料称其提供 92+ 个 GIS 工具,覆盖以下库与数据类别:Shapely、GeoPandas、PyProj、Rasterio、PySAL、可视化、卫星影像、气候、生态、移动和土地覆盖数据。具体功能包括:综合几何操作(相交、并集、缓冲区、差集等几何变换)、高级坐标转换(在不同坐标参考系统之间重投影和转换)、精确测量(距离、面积、长度和质心)、空间分析与验证(几何有效性验证、邻近检查、空间叠加或连接)、栅格与矢量支持(处理栅格图层、计算 NDVI 等指数、裁剪、重采样、与矢量数据合并)、空间统计与建模(使用 PySAL 进行空间自相关、聚类和邻域分析)、与 MCP 兼容客户端集成(如 Claude Desktop 或 Cursor IDE)、HTTP/SSE 传输(以 HTTP 服务运行并提供 RESTful 存储端点用于文件上传/下载)、灵活存储(默认本地文件系统,也可选用 Google Cloud Storage 桶)。
可用函数按库分类。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、unary_union_geometries、get_length、get_area、is_valid、make_valid、simplify、snap_geometry、nearest_point_on_geometry、normalize_geometry、geometry_to_geojson、geojson_to_geometry 等。PyProj 共 13 个,包括 transform_coordinates、project_geometry、get_crs_info、get_available_crs、get_utm_zone、get_utm_crs、get_geocentric_crs、get_geod_info、calculate_geodetic_distance、calculate_geodetic_point、calculate_geodetic_area 等。GeoPandas 共 13 个,包括 read_file_gpd、write_file_gpd、append_gpd、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、extract_band、raster_band_statistics、raster_histogram、clip_raster_with_shapefile、resample_raster、reproject_raster、tile_raster、compute_ndvi、raster_algebra、concat_bands、weighted_band_sum、zonal_statistics、reclassify_raster、focal_statistics、hillshade、write_raster 等。PySAL 共 18 个,包括 morans_i、gearys_c、gamma_statistic、getis_ord_g、moran_local、getis_ord_g_local、join_counts_local、join_counts、adbscan、weights_from_shapefile、distance_band_weights、knn_weights、build_transform_and_save_weights、ols_with_spatial_diagnostics_safe、build_and_transform_weights、spatial_markov、dynamic_lisa、gm_lag 等。可视化共 2 个:create_map(从 shapefile、栅格、WKT 几何和坐标数组等来源生成 PNG、PDF、JPG 静态地图,支持多图层样式、图例、标题和网格叠加)和 create_web_map(用 Folium 生成交互式 HTML 地图,支持图层控制、图例、比例尺、动态标题、提示框和小地图,支持多种底图和响应式设计)。行政边界 1 个:download_boundaries(下载 GADM 行政边界并保存为 GeoJSON)。气候数据 1 个:download_climate_data(下载 ERA5 或其他 CDS 气候数据集)。生态数据 2 个:get_species_info(获取物种分类信息)、download_species_occurrences(下载物种出现记录并保存为 JSON)。移动数据 2 个:download_street_network(下载指定地点的街道网络并保存为 GraphML)、calculate_shortest_path(使用已保存的街道网络计算两点间最短路径)。土地覆盖数据 2 个:download_worldcover(下载 ESA WorldCover,可裁剪和重投影)、compute_s2_ndvi(从 Sentinel-2 L2A 计算 NDVI,支持裁剪和重投影)。
使用方式上,资料给出的前置条件为:Python 3.10 或更高版本、MCP 兼容客户端(如 Claude Desktop 或 Cursor)、安装包所需的互联网连接。安装方式有三种。Docker 安装:Dockerfile 和 Dockerfile.local 默认启用 HTTP 传输模式,服务器运行在 9010 端口,地址为 http://localhost:9010/mcp;主 Dockerfile 从 PyPI 安装包,Dockerfile.local 从本地源码安装。pip 安装(推荐多数用户):先安装 uv 包管理器,创建 Python 3.10+ 虚拟环境并激活(Windows PowerShell 有对应激活方式),再安装包;如需交互地图可视化能力,可额外安装 Folium 和 PyDeck 依赖(folium>=0.15.0、pydeck>=0.9.0)。启动服务器后默认使用 STDIO 传输模式,适合本地开发和集成 Claude Desktop 或 Cursor IDE,也可启用 HTTP 传输模式用于网络部署。开发安装:为贡献者和开发者提供,创建虚拟环境并以开发模式安装包。在 HTTP 或 SSE 传输模式下,可用端点包括 MCP 端点 http://host:port/mcp(HTTP)或 http://host:port/sse(SSE),以及存储端点 POST /storage/upload、GET /storage/download?path=<file>、GET /storage/list?path=<dir>。配置 Claude Desktop 或 Cursor IDE 时需添加相应配置,Cursor 需创建 .cursor/mcp.json,并注意将 YourUsername 替换为实际用户名、开发安装时替换为实际项目路径,配置后重启 IDE 生效。
资料还提供了构建 GIS AI 智能体的示例,包括 LangChain(Python)用于公园缓冲区邻近分析、LangGraph(Python)用于有状态选址覆盖和多智能体退距工作流,并说明只有分析智能体调用 GIS MCP 工具;可运行 python agents/LangGraph/verify_graph.py 和 python agents/LangGraph/verify_multi_agent.py 进行无 LLM 验证;提供模板 templates/(langchain-gis-agent、langgraph-gis-workflow、langgraph-multi-agent-gis),以及 OpenAI Agents SDK(Node.js)。此外还提供 llms.txt 和 llms-full.txt 供通过 vibe coding 构建智能体时使用。
适用场景包括:在聊天机器人中执行准确的地理空间分析、环境分析、制图、位置智能、空间统计与建模等。资料同时提示支持自定义工具或工作流扩展,并支持 Python 基础 GIS 库。
限制方面:当前版本仍为 Beta(0.15.0);资料未提供收费、价格或其他未列出功能的说明。