Integrations
GIS MCP Server
A Model Context Protocol (MCP) server implementation that connects Large Language Models (LLMs) to GIS operations using GIS libraries (Currently Shapely and PyProj supported), enabling AI assistants to perform geospatial operations and transformations.
Alpha
Version 0.2.0 (Alpha) is under active development. We welcome contributions and developers to join us in building this project.
🎥 Demo
📋 Table of Contents
- Features
- Prerequisites
- Installation
- Available Tools
- Client Development
- Planned Features
- Contributing
- License
- Related Projects
- Support
- Badges
🚀 Features
- 🔍 Comprehensive geometric operations (intersection, union, buffer, etc.)
- 🌐 Advanced coordinate transformations and projections
- 📏 Precise distance and area calculations
- 🗺️ Spatial analysis and validation
- 🛠️ Easy integration with MCP-compatible clients
📋 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:
📦 pip Installation
The pip installation is recommended for most users:
- Install uv package manager:
- Create the Virtual Environment (Python 3.10+):
- Install the package:
- Start the server:
pip Configuration
To use the pip installation with Claude or Cursor, add the following configuration:
Claude Desktop:
Windows:
Linux/Mac:
Cursor IDE (create .cursor/mcp.json
):
Windows:
Linux/Mac:
After configuration:
- Make sure to replace
YourUsername
with your actual username - For development installation, replace
/path/to/gis-mcp
with the actual path to your project - Restart your IDE to apply the changes
- You can now use all GIS operations through Claude or Cursor!
🛠️ Development Installation
For contributors and developers:
- Install uv package manager:
- Create the Virtual Environment:
- Install the package in development mode:
- Start the server:
Development Configuration
To use the development installation with Claude or Cursor, add the following configuration:
Claude Desktop:
Windows:
Linux/Mac:
Cursor IDE (create .cursor/mcp.json
):
Windows:
Linux/Mac:
After configuration:
- Make sure to replace
YourUsername
with your actual username - For development installation, replace
/path/to/gis-mcp
with the actual path to your project - Restart your IDE to apply the changes
- You can now use all GIS operations through Claude or Cursor!
🛠️ Available Tools
Shapely Operations
Basic Operations
Tool | Description |
---|---|
buffer | Create a buffer around geometries with customizable parameters |
intersection | Find intersection of two geometries |
union | Combine two geometries |
difference | Find difference between geometries |
symmetric_difference | Find symmetric difference between geometries |
Geometric Properties
Tool | Description |
---|---|
convex_hull | Calculate convex hull of a geometry |
envelope | Get bounding box of a geometry |
minimum_rotated_rectangle | Get minimum rotated rectangle of a geometry |
get_centroid | Get the centroid of a geometry |
get_bounds | Get the bounds of a geometry |
get_coordinates | Get the coordinates of a geometry |
get_geometry_type | Get the type of a geometry |
Transformations
Tool | Description |
---|---|
rotate_geometry | Rotate a geometry with specified angle and origin |
scale_geometry | Scale a geometry with x and y factors |
translate_geometry | Translate a geometry with x, y, and z offsets |
Advanced Operations
Tool | Description |
---|---|
triangulate_geometry | Create a triangulation of a geometry |
voronoi | Create a Voronoi diagram from points |
unary_union_geometries | Create a union of multiple geometries |
Measurements
Tool | Description |
---|---|
get_length | Get the length of a geometry |
get_area | Get the area of a geometry |
Validation and Simplification
Tool | Description |
---|---|
is_valid | Check if a geometry is valid |
make_valid | Make a geometry valid |
simplify | Simplify a geometry with specified tolerance |
PyProj Operations
Coordinate Transformations
Tool | Description |
---|---|
transform_coordinates | Transform coordinates between CRS |
project_geometry | Project a geometry between CRS |
CRS Information
Tool | Description |
---|---|
get_crs_info | Get detailed information about a CRS |
get_available_crs | Get list of all available CRS |
get_utm_zone | Get UTM zone for given coordinates |
get_utm_crs | Get UTM CRS for given coordinates |
get_geocentric_crs | Get geocentric CRS for given coordinates |
Geodetic Calculations
Tool | Description |
---|---|
get_geod_info | Get information about a geodetic calculation |
calculate_geodetic_distance | Calculate geodetic distance between points |
calculate_geodetic_point | Calculate point at given distance and azimuth |
calculate_geodetic_area | Calculate area of a polygon using geodetic calculations |
🛠️ Client Development
Example usage of the tools:
Buffer Operation
Coordinate Transformation
Geodetic Distance
🔮 Planned Features
- Add support for more GIS libraries - GDAL/OGR
- Implement advanced spatial indexing
- Add support for raster operations
- Implement network analysis capabilities
- Add support for 3D geometries
- Implement performance optimizations
🤝 Contributing
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - 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.
🔗 Related Projects
- Model Context Protocol - The core MCP implementation
- Shapely - Python package for manipulation and analysis of geometric objects
- PyProj - Python interface to PROJ library
📞 Support
For support, please open an issue in the GitHub repository.
🏆 Badges
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
A Model Context Protocol server that connects LLMs to GIS operations, enabling AI assistants to perform accurate geospatial analysis including geometric operations, coordinate transformations, and spatial measurements.
- 🎥 Demo
- 📋 Table of Contents
- 🚀 Features
- 📋 Prerequisites
- 🛠️ Installation
- 🛠️ Available Tools
- 🛠️ Client Development
- 🔮 Planned Features
- 🤝 Contributing
- 📄 License
- 🔗 Related Projects
- 📞 Support
- 🏆 Badges
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA 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 -1634TypeScriptApache 2.0
- AsecurityAlicenseAqualityA 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 -132TypeScriptMIT License
- AsecurityAlicenseAqualityA 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 -74614TypeScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server that connects LLMs to the Compiler Explorer API, enabling them to compile code, explore compiler features, and analyze optimizations across different compilers and languages.Last updated -Python