Skip to main content
Glama
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