ГИС 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 рекомендуется для большинства пользователей:
Установите менеджер пакетов UV:
pip install uvСоздание виртуальной среды (Python 3.10+):
uv venv --python=3.10Установите пакет:
uv pip install gis-mcpЗапустите сервер:
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": []
}
}
}После настройки:
Обязательно замените
YourUsernameна свое фактическое имя пользователя.Для установки в режиме разработки замените
/path/to/gis-mcpна фактический путь к вашему проекту.Перезапустите IDE, чтобы применить изменения.
Теперь вы можете использовать все операции ГИС через Клода или Курсор!
🛠️ Разработка Установка
Для участников и разработчиков:
Установите менеджер пакетов UV:
pip install uvСоздайте виртуальную среду:
uv venv --python=3.10Установите пакет в режиме разработки:
uv pip install -e .Запустите сервер:
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"]
}
}
}После настройки:
Обязательно замените
YourUsernameна свое фактическое имя пользователя.Для установки в режиме разработки замените
/path/to/gis-mcpна фактический путь к вашему проекту.Перезапустите IDE, чтобы применить изменения.
Теперь вы можете использовать все операции ГИС через Клода или Курсор!
🛠️ Доступные инструменты
Операции Shapely
Основные операции
Инструмент | Описание |
| Создайте буфер вокруг геометрических объектов с настраиваемыми параметрами |
| Найти пересечение двух геометрий |
| Объединить две геометрии |
| Найдите разницу между геометриями |
| Найдите симметричную разницу между геометриями |
Геометрические свойства
Инструмент | Описание |
| Вычислить выпуклую оболочку геометрии |
| Получить ограничивающую рамку геометрии |
| Получить минимальный повернутый прямоугольник геометрии |
| Получить центроид геометрии |
| Получить границы геометрии |
| Получить координаты геометрии |
| Получить тип геометрии |
Трансформации
Инструмент | Описание |
| Поворот геометрии на заданный угол и начало координат |
| Масштабировать геометрию с помощью коэффициентов x и y |
| Перемещение геометрии со смещениями по осям x, y и z |
Расширенные операции
Инструмент | Описание |
| Создать триангуляцию геометрии |
| Построить диаграмму Вороного из точек |
| Создать объединение нескольких геометрий |
Измерения
Инструмент | Описание |
| Получить длину геометрии |
| Получить площадь геометрии |
Проверка и упрощение
Инструмент | Описание |
| Проверьте правильность геометрии |
| Сделать геометрию допустимой |
| Упростить геометрию с заданным допуском |
Операции PyProj
Преобразования координат
Инструмент | Описание |
| Преобразование координат между CRS |
| Проецирование геометрии между CRS |
Информация CRS
Инструмент | Описание |
| Получите подробную информацию о CRS |
| Получить список всех доступных CRS |
| Получить зону UTM для заданных координат |
| Получить UTM CRS для заданных координат |
| Получить геоцентрическую систему отсчета координат для заданных координат |
Геодезические расчеты
Инструмент | Описание |
| Получить информацию о геодезическом расчете |
| Рассчитать геодезическое расстояние между точками |
| Вычислить точку на заданном расстоянии и азимуте |
| Вычислить площадь многоугольника с помощью геодезических расчетов |
🛠️ Развитие клиентов
Пример использования инструментов:
Буферная операция
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-геометрии
Реализовать оптимизацию производительности
🤝 Вклад
Мы приветствуем ваши вклады! Вот как вы можете помочь:
Форк репозитория
Создайте ветку функций (
git checkout -b feature/AmazingFeature)Зафиксируйте ваши изменения (
git commit -m 'Add some AmazingFeature')Отправка в ветку (
git push origin feature/AmazingFeature)Открыть запрос на извлечение
Убедитесь, что описание вашего PR четко описывает проблему и ее решение. Включите соответствующий номер проблемы, если применимо.
📄 Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.
🔗 Связанные проекты
Модель контекстного протокола — основная реализация MCP
Shapely — пакет Python для манипулирования и анализа геометрических объектов
PyProj — интерфейс Python к библиотеке PROJ
📞 Поддержка
Для получения поддержки, пожалуйста, создайте запрос в репозитории GitHub.