Skip to main content

MCP server for Russian National Spatial Data System (НСПД)

Project description

nspd-mcp

Экспериментальный прототип MCP-сервера для ФГИС «Единая цифровая платформа «Национальная система пространственных данных» (НСПД).

Предоставляет AI-агентам (через Model Context Protocol) инструменты для поиска и получения сведений об объектах недвижимости: земельных участках, зданиях, сооружениях, кадастровых кварталах и других пространственных данных.

НЕ для промышленного использования. Данные могут быть неполными, устаревшими или временно недоступными.


Возможности

  • Поиск объектов по кадастровому номеру или текстовому запросу
  • Пространственный поиск — по координатам (lat/lng) и в полигоне (GeoJSON)
  • Детальная информация — части ЗУ, виды разрешённого использования, связанные объекты
  • Ресурсы — список слоёв, данные объекта по кадастровому номеру, health-check
  • Промпты — анализ земельного участка, сравнение объектов
  • Три транспорта — stdio, SSE, HTTP

Установка

Из исходного кода

pip install nspd-mcp

Через Docker

docker build -t nspd-mcp .
docker run -i --rm nspd-mcp                             # stdio
docker run --rm -p 8000:8000 nspd-mcp --transport http  # http

Использование

# stdio (по умолчанию, для десктопных агентов)
nspd-mcp

# SSE (для веб-интерфейсов)
nspd-mcp --transport sse --port 8000

# HTTP (для облачных развёртываний)
nspd-mcp --transport http --port 8000

Настройка

Все параметры задаются переменными окружения с префиксом PYNSPD_:

Переменная По умолчанию Описание
PYNSPD_CLIENT_TIMEOUT 30 Таймаут HTTP-запросов к API НСПД, сек
PYNSPD_CLIENT_RETRIES 5 Количество повторных попыток при ошибках
PYNSPD_CACHE_PATH ./.nspd_cache Путь к кэшу ответов
PYNSPD_PROXY HTTP/HTTPS прокси
PYNSPD_TRANSPORT stdio Транспорт: stdio, sse, http
PYNSPD_LOG_LEVEL INFO Уровень логирования
PYNSPD_LOG_FORMAT json Формат логов: json или console

Инструменты MCP

Инструмент Назначение
search_objects Поиск объектов по кадастровому номеру или тексту
get_feature_by_cn Быстрый просмотр объекта по кадастровому номеру
get_feature_details Доп. вкладки: части ЗУ, ВРИ, связанные объекты
search_at_coordinates Поиск по координатам (lat/lng)
search_in_polygon Поиск в полигоне (GeoJSON) с авто-разбиением
get_server_metrics Метрики и конфигурация сервера

Ресурсы MCP

URI Описание
nspd://layers Список всех доступных слоёв (~60)
nspd://feature/{cn} Данные объекта по кадастровому номеру
nspd://health Health-check сервера

Промпты

Промпт Назначение
analyze_land_plot Комплексный анализ земельного участка
compare_properties Сравнение двух объектов недвижимости

Разработка

pip install -e ".[dev]"
ruff check src/          # линтинг
pytest tests/unit -v     # unit-тесты
pytest -v                # все тесты

Интеграционные тесты требуют доступа к API НСПД (включить NSPD_INTEGRATION_TESTS=1).

Архитектура

  • FastMCP — фреймворк MCP-сервера
  • pynspd — неофициальная библиотека для API НСПД
  • hishel — HTTP-кэш (TTL 24ч для объектов, 7д stale-запас)
  • src-layout на hatchling

Слои НСПД имеют русские названия (например, "Земельные участки из ЕГРН", "Здания", "Кадастровые кварталы"). Для получения полного списка используйте ресурс nspd://layers.

Лицензия

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nspd_mcp-1.0.2.tar.gz (37.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nspd_mcp-1.0.2-py3-none-any.whl (39.1 kB view details)

Uploaded Python 3

File details

Details for the file nspd_mcp-1.0.2.tar.gz.

File metadata

  • Download URL: nspd_mcp-1.0.2.tar.gz
  • Upload date:
  • Size: 37.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for nspd_mcp-1.0.2.tar.gz
Algorithm Hash digest
SHA256 a8461eb919fdc253d9f434444d15c8a1c8e12865315d92a5d83b2f2388a6ab4b
MD5 bb0e5ebbc5f665df04c48bb61b6dc393
BLAKE2b-256 39b0147cbfa8fc4197b27c386d0c5d69c1d650bd801873a470df01a594f4801a

See more details on using hashes here.

File details

Details for the file nspd_mcp-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: nspd_mcp-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 39.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for nspd_mcp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9c700a4726fbc0eea10de2d07eaf23dca77b7841be69ac2f9c5732ad1aeaf10c
MD5 05295c9dcbdf95fe7fc6bdb83a4088a3
BLAKE2b-256 2682464b473aee340decdd5b45e72c3ded05be1e7294df4ccb01618c558d2718

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page