GIS MCP Server

GIS MCP Server

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.

Category
访问服务器

Tools

buffer

Create a buffer around a geometry.

calculate_geodetic_point

Calculate point at given distance and azimuth.

intersection

Find intersection of two geometries.

union

Combine two geometries.

symmetric_difference

Find symmetric difference between geometries.

convex_hull

Calculate convex hull of a geometry.

voronoi

Create a Voronoi diagram from points.

difference

Find difference between geometries.

envelope

Get bounding box of a geometry.

minimum_rotated_rectangle

Get minimum rotated rectangle of a geometry.

rotate_geometry

Rotate a geometry.

scale_geometry

Scale a geometry.

translate_geometry

Translate a geometry.

triangulate_geometry

Create a triangulation of a geometry.

get_geometry_type

Get the type of a geometry.

project_geometry

Project a geometry between CRS.

unary_union_geometries

Create a union of multiple geometries.

get_centroid

Get the centroid of a geometry.

get_length

Get the length of a geometry.

get_area

Get the area of a geometry.

get_bounds

Get the bounds of a geometry.

get_coordinates

Get the coordinates of a geometry.

is_valid

Check if a geometry is valid.

make_valid

Make a geometry valid.

simplify

Simplify a geometry.

transform_coordinates

Transform coordinates between CRS.

get_crs_info

Get information about a CRS.

get_available_crs

Get list of available CRS.

get_geod_info

Get information about a geodetic calculation.

calculate_geodetic_distance

Calculate geodetic distance between points.

calculate_geodetic_area

Calculate area of a polygon using geodetic calculations.

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.

README

GIS MCP Server

<div align="center"> <h3>✨ Want to perform accurate geospatial analysis in your chatbot? ✨</h3> <p><strong>Install GIS-MCP and transform your AI's spatial capabilities!</strong></p> <br/> <img src="docs/gis-mcp.png" alt="GIS MCP Server Logo" width="300"/> </div>

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.

<a href="https://glama.ai/mcp/servers/@mahdin75/gis-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@mahdin75/gis-mcp/badge" alt="GIS Server MCP server" /> </a>

Alpha

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

🎥 Demo

<div align="center"> <img src="docs/demo.gif" alt="GIS MCP Server Demo" width="800"/> </div>

📋 Table of Contents

🚀 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:

  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 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

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

  • 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:

  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.

🔗 Related Projects

📞 Support

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

🏆 Badges

<div align="center"> <!-- Glama AI will be added here --> <br/><br/><br/> <a href="https://mcp.so/server/gis-mcp-server/mahdin75"> <img src="https://mcp.so/logo.png" alt="MCP.so Badge" width="150"/> </a> </div>

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选