SuperAPI AI Directory

gis-mcp

Geospatial operations and transformations using GIS libraries.

Open website

About this tool

GIS-MCP is an open-source Model Context Protocol (MCP) server whose role is to connect AI assistants with large language models (LLMs) and GIS/geospatial operations. According to the materials, it enables AI agents to perform geospatial analysis, spatial data processing, vector and raster operations, coordinate transformation, spatial statistics, mapping, and other GIS workflows through MCP-compatible clients (such as Claude Desktop or Cursor IDE).

Current version is 0.15.0 (Beta). The materials list official documentation https://gis-mcp.com、PyPI page https://pypi.org/project/gis-mcp/ and source code address https://github.com/mahdin75/gis-mcp。

In terms of main capabilities, the materials state that it provides 92+ GIS tools, covering the following libraries and data categories: Shapely, GeoPandas, PyProj, Rasterio, PySAL, visualization, satellite imagery, climate, ecology, mobility, and land cover data. Specific features include: comprehensive geometry operations (geometric transformations such as intersection, union, buffer, difference, etc.), advanced coordinate transformation (reprojection and transformation between different coordinate reference systems), precise measurement (distance, area, length, and centroid), spatial analysis and validation (geometry validity validation, proximity checks, spatial overlay or join), raster and vector support (processing raster layers, calculating indices such as NDVI, clipping, resampling, merging with vector data), spatial statistics and modeling (spatial autocorrelation, clustering, and neighborhood analysis using PySAL), integration with MCP-compatible clients (such as Claude Desktop or Cursor IDE), HTTP/SSE transport (running as an HTTP service and providing RESTful storage endpoints for file upload/download), flexible storage (local file system by default, with optional Google Cloud Storage buckets).

Available functions are categorized by library. Shapely has 29 in total, including 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, etc. PyProj has 13 in total, including 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, etc. GeoPandas has 13 in total, including 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, etc. Rasterio has 20 in total, including 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, etc. PySAL has 18 in total, including 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, etc. Visualization: 2 in total: create_map (generates PNG, PDF, JPG static maps from sources such as shapefiles, rasters, WKT geometries, and coordinate arrays, supporting multi-layer styles, legends, titles, and grid overlays) and create_web_map (uses Folium to generate interactive HTML maps, supporting layer controls, legends, scale bars, dynamic titles, tooltips, and mini maps, with support for multiple basemaps and responsive design). Administrative boundaries: 1: download_boundaries (downloads GADM administrative boundaries and saves them as GeoJSON). Climate data: 1: download_climate_data (downloads ERA5 or other CDS climate datasets). Ecological data: 2: get_species_info (retrieves species taxonomic information), download_species_occurrences (downloads species occurrence records and saves them as JSON). Mobility data: 2: download_street_network (downloads the street network of a specified location and saves it as GraphML), calculate_shortest_path (calculates the shortest path between two points using a saved street network). Land cover data: 2: download_worldcover (downloads ESA WorldCover, with clipping and reprojection), compute_s2_ndvi (calculates NDVI from Sentinel-2 L2A, with clipping and reprojection support).

In terms of usage, the prerequisites provided in the materials are: Python 3.10 or higher, an MCP-compatible client (such as Claude Desktop or Cursor), and an internet connection required to install the package. There are three installation methods. Docker installation: the Dockerfile and Dockerfile.local enable HTTP transport mode by default, and the server runs on port 9010 at the address http://localhost:9010/mcp;主 The Dockerfile installs the package from PyPI, while Dockerfile.local installs from local source code. pip installation (recommended for most users): first install the uv package manager, create and activate a Python 3.10+ virtual environment (Windows PowerShell has a corresponding activation method), then install the package; if interactive map visualization capabilities are needed, additionally install the Folium and PyDeck dependencies (folium>=0.15.0, pydeck>=0.9.0). After starting the server, STDIO transport mode is used by default, which is suitable for local development and integration with Claude Desktop or the Cursor IDE, and HTTP transport mode can also be enabled for network deployment. Development installation: provided for contributors and developers, creating a virtual environment and installing the package in development mode. In HTTP or SSE transport mode, the available endpoints include the MCP endpoint http://host:port/mcp(HTTP)或 http://host:port/sse(SSE),以及存储端点 POST /storage/upload, GET /storage/download?path=<file>, GET /storage/list?path=<dir>. When configuring Claude Desktop or the Cursor IDE, the corresponding configuration must be added; for Cursor, .cursor/mcp.json must be created, and care must be taken to replace YourUsername with the actual username, and in development installations to replace it with the actual project path; after configuration, restart the IDE for it to take effect.

The materials also provide examples of building GIS AI agents, including LangChain (Python) for park buffer proximity analysis, LangGraph (Python) for stateful site selection coverage and multi-agent setback workflows, and explain that only the analysis agent calls GIS MCP tools; you can run python agents/LangGraph/verify_graph.py and python agents/LangGraph/verify_multi_agent.py for verification without an LLM; templates are provided in templates/ (langchain-gis-agent, langgraph-gis-workflow, langgraph-multi-agent-gis), as well as the OpenAI Agents SDK (Node.js). In addition, llms.txt and llms-full.txt are provided for use when building agents through vibe coding.

Applicable scenarios include: performing accurate geospatial analysis in chatbots, environmental analysis, mapping, location intelligence, spatial statistics and modeling, etc. The materials also note support for custom tools or workflow extensions, and support for basic Python GIS libraries.

In terms of limitations: the current version is still Beta (0.15.0); the materials do not provide descriptions of fees, pricing, or other features not listed.