MCP Rosreestr
by yasg1988
README.md
# MCP Rosreestr
MCP-сервер для получения данных Росреестра/НСПД по кадастровому номеру.
Главная идея: сервер делает запросы в НСПД **с той машины, где он запущен**. Если вы запускаете MCP на российском VPS или компьютере с российским IP, запросы идут с вашего IP. Никакой общий API-ключ автора проекта для этого не нужен.
## Что умеет
- получить объект по кадастровому номеру;
- вернуть GeoJSON-геометрию и доступные свойства объекта;
- обработать несколько кадастровых номеров одним запросом;
- проверить, с какого IP сейчас выходит машина, где запущен MCP.
## Важно про НСПД и HTTP 403
НСПД часто возвращает `HTTP 403`, если запрос идет:
- с иностранного IP;
- с некоторых датацентровых IP;
- без ожидаемых браузерных заголовков;
- через среду, где не обрабатывается SSL-цепочка НСПД.
Этот MCP по умолчанию работает в прямом режиме:
```text
ваш Claude/Cursor/Codex -> этот MCP -> НСПД
```
Поэтому для нормальной работы запускайте MCP на машине с российским IP. Это может быть ваш российский VPS, сервер в офисе или ПК в РФ.
## Установка
### 1. Поставьте Python
Нужен Python 3.10 или новее.
Проверка:
```bash
python --version
```
### 2. Скачайте проект
```bash
git clone https://github.com/yasg1988/mcp-rosreestr.git
cd mcp-rosreestr
```
### 3. Установите зависимости
```bash
pip install -r requirements.txt
```
## Подключение к Claude Desktop / Claude Code / Cursor
Добавьте MCP-сервер в конфиг клиента.
Пример:
```json
{
"mcpServers": {
"rosreestr": {
"command": "python",
"args": ["/полный/путь/к/mcp-rosreestr/server.py"],
"env": {
"ROSREESTR_MODE": "direct"
}
}
}
}
```
Замените `/полный/путь/к/mcp-rosreestr/server.py` на реальный путь.
Примеры путей:
```text
/home/user/mcp-rosreestr/server.py
C:/Projects/mcp-rosreestr/server.py
```
После изменения конфига перезапустите MCP-клиент.
## Режимы работы
### direct
Режим по умолчанию.
```json
"ROSREESTR_MODE": "direct"
```
MCP ходит в НСПД напрямую с IP вашей машины. Для большинства пользователей из РФ нужен именно этот режим.
### auto
```json
"ROSREESTR_MODE": "auto"
```
MCP проверяет страну текущего IP. Если IP российский, использует прямой режим. Если не российский, пробует API-прокси.
### api
```json
{
"ROSREESTR_MODE": "api",
"ROSREESTR_API_URL": "https://your-api.example.com",
"ROSREESTR_API_TOKEN": "your-token"
}
```
Этот режим нужен только если вы отдельно развернули свой API-прокси на российском IP. Обычному пользователю он не нужен.
## Доступные инструменты MCP
### get_cadastral_coordinates
Получает данные по одному кадастровому номеру.
Пример запроса в чате:
```text
Получи данные Росреестра по кадастровому номеру 12:05:0402002:390
```
Параметры:
| Параметр | Описание |
|---|---|
| `cadastral_number` | Кадастровый номер |
| `area_type` | Тип объекта, по умолчанию `1` |
### batch_get_cadastral_coordinates
Получает данные по нескольким кадастровым номерам.
Пример:
```text
Получи координаты участков 12:05:0101001:1, 12:05:0101001:2, 12:05:0101001:3
```
### check_ip_location
Показывает IP, страну и режим, который будет использовать MCP.
Пример:
```text
Проверь, российский ли IP у MCP Росреестра
```
## Типы объектов area_type
| Код | Что означает |
|---:|---|
| 1 | Объекты недвижимости: земельные участки, здания, сооружения |
| 2 | Кадастровое деление |
| 4 | Административное деление |
| 5 | Зоны и территории |
| 7 | Территориальные зоны |
| 15 | Комплексы объектов |
Чаще всего нужен `area_type=1`.
## Частые проблемы
### Ошибка HTTP 403
Скорее всего НСПД заблокировала запрос.
Что проверить:
1. Запущен ли MCP на машине с российским IP.
2. Не идет ли трафик через VPN/прокси с иностранным IP.
3. Работает ли НСПД в браузере с этой же машины.
4. Что показывает инструмент `check_ip_location`.
### MCP запускается, но данных нет
Проверьте:
1. Правильно ли написан кадастровый номер.
2. Подходит ли `area_type`.
3. Есть ли объект в НСПД.
### Ошибка `rosreestr2coord is not installed`
Установите зависимости:
```bash
pip install -r requirements.txt
```
## Что MCP не делает
- Не обходит блокировки НСПД.
- Не дает общий публичный API автора проекта.
- Не гарантирует работу с иностранного IP.
- Не хранит ваши запросы и не использует внешний сервер, если включен режим `direct`.
## Лицензия
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessUnresponsive