Skip to main content
Glama

mcp-rosreestr

MCP server for Russian Rosreestr open cadastral data — lookup by cadastral number, address or coordinates; cadastral value with history.

PyPI version License: MIT MCP-compatible Python 3.11+


MCP-сервер (Model Context Protocol — открытый протокол интеграции AI-агентов с внешними источниками данных), дающий ИИ-агенту прямой доступ к публичным открытым данным Росреестра РФ через НСПД (Национальная система пространственных данных, nspd.gov.ru) и Публичную кадастровую карту (ПКК) как fallback.

Часть семейства MCP-серверов atomno (atomno-mcp.ru). Открытый MIT — никакой PII собственников, только публичные характеристики объекта.

Что умеет

Тул

Что делает

lookup_by_cadastral

По кадастровому номеру (например, 77:01:0001066:1234) возвращает площадь, год постройки, кадастровую стоимость, ВРИ (вид разрешённого использования), адрес.

lookup_by_address

По свободному тексту адреса возвращает список найденных объектов с их КН (кадастровыми номерами) и confidence score.

lookup_by_coords

По геокоординатам (lat/lon в WGS84) показывает все объекты в этой точке (земельные участки, здания, помещения).

get_cadastral_value

Текущая кадастровая стоимость + локально кэшированная история переоценок.

Related MCP server: mcp-fns-check

Быстрый старт

# Через uvx (рекомендуется — без установки)
uvx atomno-mcp-rosreestr

# Или через pipx
pipx install atomno-mcp-rosreestr
mcp-rosreestr

Подключение в Cursor

Добавьте в ~/.cursor/mcp.json:

{
  "mcpServers": {
    "rosreestr": {
      "command": "uvx",
      "args": ["atomno-mcp-rosreestr"]
    }
  }
}

Подключение в Claude Desktop

%APPDATA%/Claude/claude_desktop_config.json (Windows) или ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "rosreestr": {
      "command": "uvx",
      "args": ["atomno-mcp-rosreestr"]
    }
  }
}

CLI

atomno-mcp-rosreestr --help          # usage
atomno-mcp-rosreestr --version       # 0.1.0
atomno-mcp-rosreestr --check-config  # кэш + upstream NSPD/PKK
atomno-mcp-rosreestr --transport http --port 8000  # сетевой транспорт

Health-check

atomno-mcp-rosreestr --check-config

Выведет состояние локального кэша и доступность upstream-сервисов (NSPD, PKK).

Конфигурация (env vars)

Canonical-имена — с префиксом MCP_ROSREESTR_. Legacy ROSREESTR_* поддерживаются с DeprecationWarning.

Переменная

Описание

Default

MCP_ROSREESTR_HTTP_TIMEOUT

HTTP-таймаут для upstream-запросов (секунды)

15.0

MCP_ROSREESTR_CACHE_PATH

Путь к локальной SQLite-базе с кэшем

./mcp_rosreestr_cache.sqlite

MCP_ROSREESTR_CACHE_TTL_LIVE

TTL «живых» данных (стоимость) в секундах

86400 (24 ч)

MCP_ROSREESTR_CACHE_TTL_STATIC

TTL «статичных» данных (площадь, год) в секундах

604800 (7 дней)

MCP_ROSREESTR_USER_AGENT

Кастомный User-Agent для upstream

atomno-mcp-rosreestr/<version> ...

MCP_ROSREESTR_LOG_LEVEL

Уровень логирования (DEBUGCRITICAL)

INFO

MCP_ROSREESTR_API_KEY

Pro-фичи (не требуется для open client)

Источники данных

  • НСПД (nspd.gov.ru) — основной источник, актуальный геопортал Росреестра.

  • ПКК (pkk5.rosreestr.ru) — fallback (legacy), используется только если НСПД не отвечает или объект не найден.

API оба недокументированные и могут меняться. Клиент написан defensively: при изменении формы ответа поля деградируют до None, а не падают.

Кэширование и ratelimit

  • Все ответы кэшируются локально в SQLite с раздельными TTL: 24 часа для волатильных (стоимость), 7 дней для статичных (адрес, площадь, год постройки).

  • История кадастровых стоимостей накапливается локально из периодических обращений (open-данные не выдают полный аудит-trail).

  • Запросы к upstream — politely-paced, без агрессивного fan-out.

Тестирование

git clone https://github.com/atomno-mcp/mcp-rosreestr
cd mcp-rosreestr
pip install -e ".[dev]"
pytest -v

Disclaimer / правовые ограничения

  • Не аффилирован с Федеральной службой государственной регистрации, кадастра и картографии (Росреестр), НСПД (nspd.gov.ru) или Публичной кадастровой картой (ПКК). Независимый open-source клиент к публичным API.

  • Только открытые данные — кадастровые номера, площадь, адрес, кадастровая стоимость. Нет ПДн (персональных данных) собственников, паспортов, телефонов.

  • Законное использование — due-diligence, оценка недвижимости, аналитика на основе публичных реестров. Не для сбора ПДн, спама или обхода ограничений upstream.

  • Данные носят справочный характер; для юридически значимых решений заказывайте официальную выписку ЕГРН (Единый государственный реестр недвижимости).

  • Upstream API недокументированы и могут меняться без предупреждения. Используете на свой риск.

Лицензия

MIT © Atomno

Ссылки

Available Tools

4 tools
get_cadastral_valueA

Return the current cadastral value of a Russian property by cadastral number, plus any locally cached revaluation history. Tax base for property tax. Note: full audit trail of historical revaluations is only available via Pro tools or an EGRN extract.

ParametersJSON Schema
NameRequiredDescriptionDefault
cadastral_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
sourceNo
historyNo
cadastral_numberYes
current_value_rubNo
current_value_dateNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It states it returns current value and cached history, and notes limitations on historical data. However, it does not mention whether the operation is read-only, authentication requirements, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first concisely states the primary function, and the second adds a crucial limitation. No redundant words, and the structure is front-loaded with essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter and presence of an output schema, the description covers the core functionality and its limitation. It provides sufficient context for a simple retrieval tool, though it could mention error cases or value format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, cadastral_number, has 0% schema description coverage. The tool description does not elaborate on the format, pattern, or example of a valid cadastral number, leaving the agent without necessary guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the current cadastral value and revaluation history for a Russian property by cadastral number. It specifies the resource (cadastral number), the action (return), and the context (tax base). This distinguishes it from sibling tools which are lookup-focused.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the tool is used for property tax base, providing a clear use case. It also notes that a full audit trail requires Pro tools or EGRN extract, guiding agents on when to consider alternatives. However, it does not explicitly contrast with sibling tools like lookup_by_address.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_by_addressA

Find Russian cadastral objects matching a free-text address. Searches the public NSPD geoportal index. Returns up to limit hits with cadastral numbers and a confidence score.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
addressYes
object_typesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYes
sourceNo
resultsNo
took_msNo
warningsNo
query_normalizedNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Indicates it is a read operation (Searches, Returns). Does not disclose rate limits, caching, or potential side effects, but given the nature it seems safe.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with no waste. First sentence states purpose, second specifies source, third describes output. Front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple and description covers primary behavior. Output schema exists, so return value details are optional. Missing explanation for object_types parameter reduces completeness slightly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description only explains 'limit' (up to `limit` hits). Does not explain 'address' or 'object_types' parameters, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb (Find), resource (Russian cadastral objects), and input (free-text address). Distinguishes from sibling tools (lookup_by_cadastral, lookup_by_coords) by specifying the search method and source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage when address is available, but does not explicitly mention when not to use or compare with alternatives. Sibling names provide context but no direct guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_by_cadastralB

Get the public characteristics of a Russian cadastral object by cadastral number (formatted XX:XX:XXXXXXX:XXXX, for example 77:01:0001066:1234). Returns area, year built, cadastral cost, permitted use and address. Open data only — no owner PII.

ParametersJSON Schema
NameRequiredDescriptionDefault
cadastral_numberYes
include_geometryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourceNo'nspd' (primary) | 'pkk_fallback' | 'cache'.
addressNo
in_egrnNoWhether the object is present in ЕГРН at all.
area_sqmNo
fetched_atNo
year_builtNo
object_typeNo
floor_numberNo
floors_totalNo
permitted_useNoFree-text ВРИ (вид разрешённого использования).
wall_materialNo
cadastral_numberYesКанонический КН XX:XX:XXXXXXX:XXXX.
geometry_geojsonNoGeoJSON polygon if include_geometry=true was requested.
last_update_dateNo
object_type_codeNoRaw type code from the upstream (e.g. 'ROOM', 'BUILDING').
registration_dateNo
address_normalizedNo
cadastral_cost_rubNo
permitted_use_codeNo
cadastral_cost_dateNo
construction_seriesNo
encumbrances_presentNoWhether public sources hint at encumbrances (зарегистрированные ограничения). Open data rarely exposes this — treated as a soft signal.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses that only open data is returned (no owner PII), which is a behavioral trait. However, it does not mention rate limits, authorization requirements, or what happens with invalid numbers, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, no redundant or extraneous content. Every sentence adds value: what it does, input format, output fields, data limitations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple data lookup with 2 parameters and an output schema (not shown), the description covers the main purpose, input format, output types, and data scope. Missing details on the include_geometry parameter and potential error states, but overall adequate for basic understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides format guidance for the required cadastral_number parameter (example and pattern) but does not explain the optional boolean parameter include_geometry. The listed return fields are helpful but not directly linked to the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves public characteristics by cadastral number, including a format example. However, it does not explicitly differentiate from sibling tools like get_cadastral_value, lookup_by_address, or lookup_by_coords which use different input methods.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies usage when you have a cadastral number but does not mention that other input methods are covered by sibling tools, nor does it provide exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_by_coordsA

Show Russian cadastral objects (parcels and buildings) at a given geographic point. Coordinates are WGS84 (EPSG:4326). Useful for 'what's at this dot on the map' lookups.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
object_typesNo
buffer_metersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
latYes
lonYes
sourceNo
resultsNo
took_msNo
buffer_metersNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions coordinate system but lacks details on read-only nature, permissions, response format, or pagination. Output schema exists, partially compensating.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the main action, no wasted words. Very concise and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters with no schema descriptions and an output schema, the description covers the core operation but omits parameter details. It is adequate but not fully complete for all parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description adds only coordinate system context for lat/lon; it does not explain object_types, buffer_meters, or their defaults. The agent would need to infer parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool shows Russian cadastral objects at a geographic point using a specific coordinate system. It differentiates itself from siblings by focusing on coordinate-based lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use-case ('what's at this dot on the map') and specifies coordinate system, but does not explicitly compare to sibling tools or state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: get_cadastral_value retrieves valuation data, lookup_by_address searches by address, lookup_by_cadastral gets characteristics by cadastral number, and lookup_by_coords finds objects at a point. No overlap in functionality.

Naming Consistency4/5

All tool names use snake_case and follow a verb_by_noun or verb_noun pattern (e.g., lookup_by_address, get_cadastral_value). The slight inconsistency between 'get' and 'lookup' is minor but does not cause confusion.

Tool Count5/5

With 4 tools, the server is well-scoped for its purpose—covering key lookup operations for Russian cadastral data. This is within the ideal range of 3-15 tools.

Completeness4/5

The tool set covers essential lookups (by address, cadastral number, coordinates, and value). Minor gaps include lack of spatial search by polygon or full property report, but these are reasonable omissions for a focused public data API.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables retrieval of Russian real estate cadastral data including coordinates, property information, area, cadastral value, and GeoJSON geometry by cadastral number using Rosreestr API.
    5
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for verifying Russian counterparties (legal entities and individual entrepreneurs) via public Federal Tax Service data: EGRUL/EGRIP, bankruptcy registry (EFRSB), Transparent Business, bailiff service (FSSP), and arbitration courts (KAD).
    8
    15
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for the Russian state registries EGRUL (legal entities) and EGRIP (individual entrepreneurs), built on official Federal Tax Service open-data dumps. Self-hosted via local SQLite.
    8
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/atomno-mcp/mcp-rosreestr'

If you have feedback or need assistance with the MCP directory API, please join our Discord server