Skip to main content
Glama

ГИС MCP Сервер

Реализация сервера Model Context Protocol (MCP), которая подключает большие языковые модели (LLM) к операциям ГИС с использованием библиотек ГИС (в настоящее время поддерживаются Shapely и PyProj), позволяя помощникам ИИ выполнять геопространственные операции и преобразования.

Альфа

Версия 0.2.0 (Альфа) находится в стадии активной разработки. Мы приветствуем вклады и разработчиков, которые присоединятся к нам в создании этого проекта.

🎥 Демо

Related MCP server: Math-MCP

📋 Содержание

🚀 Особенности

  • 🔍 Комплексные геометрические операции (пересечение, объединение, буферизация и т. д.)

  • 🌐 Расширенные преобразования координат и проекции

  • 📏 Точные расчеты расстояния и площади

  • 🗺️ Пространственный анализ и проверка

  • 🛠️ Простая интеграция с MCP-совместимыми клиентами

📋 Предварительные условия

  • Python 3.10 или выше

  • MCP-совместимый клиент (например, Claude Desktop или Cursor)

  • Интернет-соединение для установки пакета

🛠️ Установка

Выберите наиболее подходящий для ваших нужд способ установки:

📦 Установка пипа

Установка pip рекомендуется для большинства пользователей:

  1. Установите менеджер пакетов UV:

pip install uv
  1. Создание виртуальной среды (Python 3.10+):

uv venv --python=3.10
  1. Установите пакет:

uv pip install gis-mcp
  1. Запустите сервер:

gis-mcp

Конфигурация pip

Чтобы использовать установку pip с Claude или Cursor, добавьте следующую конфигурацию:

Клод Десктоп:

Окна:

{ "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": [] } } }

Курсор IDE (создать .cursor/mcp.json ):

Окна:

{ "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": [] } } }

После настройки:

  1. Обязательно замените YourUsername на свое фактическое имя пользователя.

  2. Для установки в режиме разработки замените /path/to/gis-mcp на фактический путь к вашему проекту.

  3. Перезапустите IDE, чтобы применить изменения.

  4. Теперь вы можете использовать все операции ГИС через Клода или Курсор!

🛠️ Разработка Установка

Для участников и разработчиков:

  1. Установите менеджер пакетов UV:

pip install uv
  1. Создайте виртуальную среду:

uv venv --python=3.10
  1. Установите пакет в режиме разработки:

uv pip install -e .
  1. Запустите сервер:

python -m gis_mcp

Конфигурация разработки

Чтобы использовать установку разработки с Claude или Cursor, добавьте следующую конфигурацию:

Клод Десктоп:

Окна:

{ "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"] } } }

Курсор IDE (создать .cursor/mcp.json ):

Окна:

{ "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"] } } }

После настройки:

  1. Обязательно замените YourUsername на свое фактическое имя пользователя.

  2. Для установки в режиме разработки замените /path/to/gis-mcp на фактический путь к вашему проекту.

  3. Перезапустите IDE, чтобы применить изменения.

  4. Теперь вы можете использовать все операции ГИС через Клода или Курсор!

🛠️ Доступные инструменты

Операции Shapely

Основные операции

Инструмент

Описание

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

Масштабировать геометрию с помощью коэффициентов x и y

translate_geometry

Перемещение геометрии со смещениями по осям x, y и z

Расширенные операции

Инструмент

Описание

triangulate_geometry

Создать триангуляцию геометрии

voronoi

Построить диаграмму Вороного из точек

unary_union_geometries

Создать объединение нескольких геометрий

Измерения

Инструмент

Описание

get_length

Получить длину геометрии

get_area

Получить площадь геометрии

Проверка и упрощение

Инструмент

Описание

is_valid

Проверьте правильность геометрии

make_valid

Сделать геометрию допустимой

simplify

Упростить геометрию с заданным допуском

Операции PyProj

Преобразования координат

Инструмент

Описание

transform_coordinates

Преобразование координат между CRS

project_geometry

Проецирование геометрии между CRS

Информация CRS

Инструмент

Описание

get_crs_info

Получите подробную информацию о CRS

get_available_crs

Получить список всех доступных CRS

get_utm_zone

Получить зону UTM для заданных координат

get_utm_crs

Получить UTM CRS для заданных координат

get_geocentric_crs

Получить геоцентрическую систему отсчета координат для заданных координат

Геодезические расчеты

Инструмент

Описание

get_geod_info

Получить информацию о геодезическом расчете

calculate_geodetic_distance

Рассчитать геодезическое расстояние между точками

calculate_geodetic_point

Вычислить точку на заданном расстоянии и азимуте

calculate_geodetic_area

Вычислить площадь многоугольника с помощью геодезических расчетов

🛠️ Развитие клиентов

Пример использования инструментов:

Буферная операция

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

Преобразование координат

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

Геодезическое расстояние

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

🔮 Планируемые функции

  • Добавить поддержку большего количества библиотек ГИС — GDAL/OGR

  • Внедрить расширенную пространственную индексацию

  • Добавить поддержку растровых операций

  • Реализовать возможности сетевого анализа

  • Добавить поддержку 3D-геометрии

  • Реализовать оптимизацию производительности

🤝 Вклад

Мы приветствуем ваши вклады! Вот как вы можете помочь:

  1. Форк репозитория

  2. Создайте ветку функций ( git checkout -b feature/AmazingFeature )

  3. Зафиксируйте ваши изменения ( git commit -m 'Add some AmazingFeature' )

  4. Отправка в ветку ( git push origin feature/AmazingFeature )

  5. Открыть запрос на извлечение

Убедитесь, что описание вашего PR четко описывает проблему и ее решение. Включите соответствующий номер проблемы, если применимо.

📄 Лицензия

Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.

🔗 Связанные проекты

📞 Поддержка

Для получения поддержки, пожалуйста, создайте запрос в репозитории GitHub.

🏆 Значки

Latest Blog Posts

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