Skip to main content
Glama

GIS MCP Server

GIS MCP Server

A Model Context Protocol (MCP) server implementation that connects Large Language Models (LLMs) to GIS operations using GIS libraries, enabling AI assistants to perform geospatial operations and transformations.

🌐 Website: gis-mcp.com

Alpha

Version 0.6.0 (Beta) is under active development. We welcome contributions and developers to join us in building this project.

🎥 Demo

Rasterio Demo

📋 Table of Contents

🚀 Features

GIS MCP Server empowers AI assistants with advanced geospatial intelligence. Key features include:

  • 🔹 Comprehensive Geometry Operations – Perform intersection, union, buffer, difference, and other geometric transformations with ease.
  • 🔹 Advanced Coordinate Transformations – Effortlessly reproject and transform geometries between coordinate reference systems.
  • 🔹 Accurate Measurements – Compute distances, areas, lengths, and centroids precisely.
  • 🔹 Spatial Analysis & Validation – Validate geometries, run proximity checks, and perform spatial overlays or joins.
  • 🔹 Raster & Vector Support – Process raster layers, compute indices like NDVI, clip, resample, and merge with vector data.
  • 🔹 Spatial Statistics & Modeling – Leverage PySAL for spatial autocorrelation, clustering, and neighborhood analysis.
  • 🔹 Easy Integration – Connect seamlessly with MCP-compatible clients like Claude Desktop or Cursor IDE.
  • 🔹 Flexible & Extensible – Supports Python-based GIS libraries and is ready for custom tools or workflow extensions.

🌟 Tip: With GIS MCP Server, your AI can now “think spatially,” unlocking new capabilities for environmental analysis, mapping, and location intelligence.


📋 Prerequisites

  • Python 3.10 or higher
  • MCP-compatible client (like Claude Desktop or Cursor)
  • Internet connection for package installation

🛠 Installation

Choose the installation method that best suits your needs:

🛠 Installing via Smithery

To install GIS MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @mahdin75/gis-mcp --client claude

📦 pip Installation

The pip installation is recommended for most users:

  1. Install uv package manager:
pip install uv
  1. Create the Virtual Environment (Python 3.10+):
uv venv --python=3.10
  1. Install the package:
uv pip install gis-mcp
  1. Start the server:
gis-mcp
pip Configuration

To use the pip installation with Claude or Cursor, add the following configuration:

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 (create .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": [] } } }

After configuration:

  1. Make sure to replace YourUsername with your actual username
  2. For development installation, replace /path/to/gis-mcp with the actual path to your project
  3. Restart your IDE to apply the changes
  4. You can now use all GIS operations through Claude or Cursor!

🛠 Development Installation

For contributors and developers:

  1. Install uv package manager:
pip install uv
  1. Create the Virtual Environment:
uv venv --python=3.10
  1. Install the package in development mode:
uv pip install -e .
  1. Start the server:
python -m gis_mcp
Development Configuration

To use the development installation with Claude or Cursor, add the following configuration:

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 (create .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"] } } }

After configuration:

  1. Make sure to replace YourUsername with your actual username
  2. For development installation, replace /path/to/gis-mcp with the actual path to your project
  3. Restart your IDE to apply the changes
  4. You can now use all GIS operations through Claude or Cursor!

📚 Available Functions

This section provides a comprehensive list of all available functions organized by library.

🔷 Shapely Functions (29 total)

Basic Geometric Operations:

  • buffer - Create buffer around geometry
  • intersection - Find intersection of two geometries
  • union - Combine two geometries
  • difference - Find difference between geometries
  • symmetric_difference - Find symmetric difference

Geometric Properties:

  • convex_hull - Calculate convex hull
  • envelope - Get bounding box
  • minimum_rotated_rectangle - Get minimum rotated rectangle
  • get_centroid - Get centroid point
  • get_bounds - Get geometry bounds
  • get_coordinates - Extract coordinate array
  • get_geometry_type - Get geometry type name

Transformations:

  • rotate_geometry - Rotate geometry by angle
  • scale_geometry - Scale geometry by factors
  • translate_geometry - Move geometry by offset

Advanced Operations:

  • triangulate_geometry - Create triangulation
  • voronoi - Create Voronoi diagram
  • unary_union_geometries - Union multiple geometries

Measurements:

  • get_length - Calculate geometry length
  • get_area - Calculate geometry area

Validation & Utilities:

  • is_valid - Check geometry validity
  • make_valid - Fix invalid geometry
  • simplify - Simplify geometry
  • snap_geometry - Snap to reference geometry
  • nearest_point_on_geometry - Find nearest point
  • normalize_geometry - Normalize orientation
  • geometry_to_geojson - Convert to GeoJSON
  • geojson_to_geometry - Convert from GeoJSON

🔷 PyProj Functions (11 total)

Coordinate Transformations:

  • transform_coordinates - Transform point coordinates
  • project_geometry - Project geometry between CRS

CRS Information:

  • get_crs_info - Get detailed CRS information
  • get_available_crs - List available CRS systems
  • get_utm_zone - Get UTM zone for coordinates
  • get_utm_crs - Get UTM CRS for coordinates
  • get_geocentric_crs - Get geocentric CRS

Geodetic Calculations:

  • get_geod_info - Get ellipsoid information
  • calculate_geodetic_distance - Calculate distance on ellipsoid
  • calculate_geodetic_point - Calculate point at distance/azimuth
  • calculate_geodetic_area - Calculate area on ellipsoid

🔷 GeoPandas Functions (11 total)

I/O Operations:

  • read_file_gpd - Read geospatial file with preview
  • write_file_gpd - Export GeoDataFrame to file

Join & Merge Operations:

  • append_gpd - Concatenate GeoDataFrames vertically
  • merge_gpd - Database-style attribute joins
  • overlay_gpd - Spatial overlay operations
  • dissolve_gpd - Dissolve by attribute
  • explode_gpd - Split multi-part geometries

Spatial Operations:

  • clip_vector - Clip geometries
  • sjoin_gpd - Spatial joins
  • sjoin_nearest_gpd - Nearest neighbor spatial joins
  • point_in_polygon - Point-in-polygon tests

🔷 Rasterio Functions (18 total)

Basic Raster Operations:

  • metadata_raster - Get raster metadata
  • get_raster_crs - Get raster CRS
  • extract_band - Extract single band
  • raster_band_statistics - Calculate band statistics
  • raster_histogram - Compute pixel histograms

Raster Processing:

  • clip_raster_with_shapefile - Clip raster with polygons
  • resample_raster - Resample by scale factor
  • reproject_raster - Reproject to new CRS
  • tile_raster - Split into tiles

Raster Analysis:

  • compute_ndvi - Calculate vegetation index
  • raster_algebra - Mathematical operations on bands
  • concat_bands - Combine single-band rasters
  • weighted_band_sum - Weighted band combination

Advanced Analysis:

  • zonal_statistics - Statistics within polygons
  • reclassify_raster - Reclassify pixel values
  • focal_statistics - Moving window statistics
  • hillshade - Generate hillshade from DEM
  • write_raster - Write array to raster file

🔷 PySAL Functions (15 total)

Spatial Autocorrelation:

  • morans_i - Global Moran's I statistic
  • gearys_c - Global Geary's C statistic
  • gamma_statistic - Gamma index
  • getis_ord_g - Global Getis-Ord G statistic

Local Statistics:

  • moran_local - Local Moran's I
  • getis_ord_g_local - Local Getis-Ord G*
  • join_counts_local - Local join counts

Global Statistics:

  • join_counts - Binary join counts test
  • adbscan - Adaptive density-based clustering

Spatial Weights:

  • weights_from_shapefile - Create weights from shapefile
  • distance_band_weights - Distance-based weights
  • knn_weights - K-nearest neighbors weights
  • build_transform_and_save_weights - Build, transform, and save weights
  • ols_with_spatial_diagnostics_safe - OLS regression with spatial diagnostics
  • build_and_transform_weights - Build and transform weights

Total Functions Available: 84

🛠 Client Development

Example usage of the tools:

Buffer Operation

Tool: buffer Parameters: { "geometry": "POINT(0 0)", "distance": 10, "resolution": 16, "join_style": 1, "mitre_limit": 5.0, "single_sided": false }

Coordinate Transformation

Tool: transform_coordinates Parameters: { "coordinates": [0, 0], "source_crs": "EPSG:4326", "target_crs": "EPSG:3857" }

Geodetic Distance

Tool: calculate_geodetic_distance Parameters: { "point1": [0, 0], "point2": [10, 10], "ellps": "WGS84" }

🔮 Planned Features

  • Implement advanced spatial indexing
  • Implement network analysis capabilities
  • Add support for 3D geometries
  • Implement performance optimizations
  • Add support for more GIS libraries

🤝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please ensure your PR description clearly describes the problem and solution. Include the relevant issue number if applicable.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

  • Model Context Protocol - The core MCP implementation
  • Shapely - Python package for manipulation and analysis of geometric objects
  • PyProj - Python interface to PROJ library
  • GeoPandas - Python package for working with geospatial data
  • Rasterio - Python package for reading and writing geospatial raster data
  • PySAL - PySAL, the Python spatial analysis library for geospatial data science with an emphasis on geospatial vector data written in Python.

📞 Support

For support, please open an issue in the GitHub repository.

💬 Community

Join our Discord community for discussions, updates, and support:

👥 Contributors

Made with contrib.rocks.

🏆 Badges

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

Ein Model Context Protocol-Server, der LLMs mit GIS-Operationen verbindet und es KI-Assistenten ermöglicht, genaue georäumliche Analysen durchzuführen, darunter geometrische Operationen, Koordinatentransformationen und räumliche Messungen.

  1. 🎥 Demo
    1. 📋 Inhaltsverzeichnis
      1. 🚀 Funktionen
        1. 📋 Voraussetzungen
          1. 🛠️ Installation
            1. 📦 Pip-Installation
            2. 🛠️ Entwicklungsinstallation
          2. 🛠️ Verfügbare Tools
            1. Formschöne Operationen
            2. PyProj-Operationen
          3. 🛠️ Kundenentwicklung
            1. Pufferbetrieb
            2. Koordinatentransformation
            3. Geodätische Distanz
          4. 🔮 Geplante Funktionen
            1. 🤝 Beitragen
              1. 📄 Lizenz
                1. 🔗 Ähnliche Projekte
                  1. 📞 Unterstützung
                    1. 🏆 Abzeichen

                      Related MCP Servers

                      • A
                        security
                        A
                        license
                        A
                        quality
                        A Model Context Protocol server that provides LLM Agents with a comprehensive toolset for IP geolocation, network diagnostics, system monitoring, cryptographic operations, and QR code generation.
                        Last updated -
                        16
                        627
                        11
                        TypeScript
                        Apache 2.0
                      • A
                        security
                        A
                        license
                        A
                        quality
                        A Model Context Protocol server that provides basic mathematical and statistical functions to LLMs, enabling them to perform accurate numerical calculations through a simple API.
                        Last updated -
                        13
                        22
                        JavaScript
                        MIT License
                      • A
                        security
                        A
                        license
                        A
                        quality
                        A Model Context Protocol server that provides Google Maps API integration, allowing users to search locations, get place details, geocode addresses, calculate distances, obtain directions, and retrieve elevation data through LLM processing capabilities.
                        Last updated -
                        7
                        657
                        68
                        TypeScript
                        MIT License
                      • A
                        security
                        A
                        license
                        A
                        quality
                        A Model Context Protocol server that connects Large Language Models to the GeoServer REST API, enabling AI assistants to query and manipulate geospatial data through natural language.
                        Last updated -
                        9
                        35
                        Python
                        MIT License
                        • Linux
                        • Apple

                      View all related MCP servers

                      MCP directory API

                      We provide all the information about MCP servers via our MCP API.

                      curl -X GET 'https://glama.ai/api/mcp/v1/servers/mahdin75/gis-mcp'

                      If you have feedback or need assistance with the MCP directory API, please join our Discord server