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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8461eb919fdc253d9f434444d15c8a1c8e12865315d92a5d83b2f2388a6ab4b
|
|
| MD5 |
bb0e5ebbc5f665df04c48bb61b6dc393
|
|
| BLAKE2b-256 |
39b0147cbfa8fc4197b27c386d0c5d69c1d650bd801873a470df01a594f4801a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c700a4726fbc0eea10de2d07eaf23dca77b7841be69ac2f9c5732ad1aeaf10c
|
|
| MD5 |
05295c9dcbdf95fe7fc6bdb83a4088a3
|
|
| BLAKE2b-256 |
2682464b473aee340decdd5b45e72c3ded05be1e7294df4ccb01618c558d2718
|