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
Metadata
Release files for nspd-mcp 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| nspd_mcp-1.0.2.tar.gz | 37.6 kB | Without provenance | Details for nspd_mcp-1.0.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| nspd_mcp-1.0.2-py3-none-any.whl | Python 3 | none | any | Details for nspd_mcp-1.0.2-py3-none-any.whl |
Total release size: 76.7 kB
Release files / nspd_mcp-1.0.2.tar.gz
| Download URL | nspd_mcp-1.0.2.tar.gz |
|---|---|
| Size | 37.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a8461eb919fdc253d9f434444d15c8a1c8e12865315d92a5d83b2f2388a6ab4b
|
|
BLAKE2b-256 checksum How to use checksums |
39b0147cbfa8fc4197b27c386d0c5d69c1d650bd801873a470df01a594f4801a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.7
|
Release files / nspd_mcp-1.0.2-py3-none-any.whl
| Download URL | nspd_mcp-1.0.2-py3-none-any.whl |
|---|---|
| Size | 39.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c700a4726fbc0eea10de2d07eaf23dca77b7841be69ac2f9c5732ad1aeaf10c
|
|
BLAKE2b-256 checksum How to use checksums |
2682464b473aee340decdd5b45e72c3ded05be1e7294df4ccb01618c558d2718
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.7
|
Security for nspd-mcp 1.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.