Перейти к содержимому

MCP-сервер MDRealty

Model Context Protocol (MCP) позволяет AI-ассистентам вызывать внешние инструменты. Наш MCP-сервер даёт им прямой доступ к каталогу недвижимости MDRealty в Черногории, и ассистент отвечает на вопросы об объектах по актуальным объявлениям, а не наугад.

Сервер предоставляет 13 инструментов только для чтения: поиск объектов по фильтрам и запросу на естественном языке, полную карточку объекта, похожие объекты, города, типы объектов и сделок, тематические подборки и наши статьи о покупке недвижимости в Черногории. Каждый ответ ведёт на страницу объекта на mdrealty.me.

Как подключиться

Адрес сервера

https://mdrealty.me/api/mcp/mcp

Транспорт: Streamable HTTP. Поддерживаются версии протокола до 2025-11-25.

Авторизация

OAuth 2.1 с динамической регистрацией клиента и PKCE. Клиент регистрируется сам, открывает нашу страницу согласия, и Вы нажимаете «Разрешить» — аккаунт и пароль не нужны. После этого клиент получает собственный ключ.

Клиенты

  • Claude (веб и приложение): откройте Настройки → Коннекторы, добавьте собственный коннектор и вставьте адрес сервера.
  • ChatGPT: включите режим разработчика в настройках коннекторов, создайте коннектор с адресом сервера и выберите OAuth.
  • Claude Code: выполните команду ниже в терминале.
    claude mcp add --transport http mdrealty https://mdrealty.me/api/mcp/mcp
  • Cursor и другие клиенты: добавьте сервер в файл конфигурации MCP.
    {
      "mcpServers": {
        "mdrealty": {
          "url": "https://mdrealty.me/api/mcp/mcp"
        }
      }
    }

Инструменты

Список строится из самого сервера, поэтому всегда совпадает с тем, что видит Ваш клиент.

Search properties

search_propertiesТолько чтение

Search real estate properties in Montenegro. Supports natural language queries like "apartment in Budva near the sea under 200k" or structured filters. Returns up to 20 properties with key details. Prices in EUR.

Параметры

querystring
Natural language search, e.g. "villa with pool in Tivat"
citySlugstring
City name or slug, e.g. "budva", "tivat", "kotor", "herceg-novi". Supports partial matching.
listingType"sale" | "rent" | "daily-rent"
Listing type: sale, rent (long-term), daily-rent (short-term). Default: sale
propertyTypestring
Type slug: apartments, houses, villas, land, business, offices, hotels, residential-complexes, luxury-complexes, exclusive
minPricenumber
Min price in EUR
maxPricenumber
Max price in EUR
bedroomsinteger
Minimum bedrooms
bathroomsinteger
Minimum bathrooms
minAreanumber
Min area in m²
maxAreanumber
Max area in m²
maxDistanceToSeanumber
Max distance to sea in meters
limitinteger
Results per page (max 20). Default: 10
offsetinteger
Skip N results for pagination. Default: 0
sort"relevance" | "price_asc" | "price_desc" | "area_asc" | "area_desc" | "newest" | "sea_distance"
Sort order. Default: relevance
locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Response language. Default: en

Возвращает: totalCount, properties, hasMore, searchTip

Get property details

get_propertyТолько чтение

Get full details of a specific property by internal ID or slug. "propertyId" is the internal database ID, NOT the property number shown in titles (e.g. "Apartment in Budva No. 2584" has propertyId=2473, propertyNumber="2584"). Use slug for reliable lookups.

Параметры

propertyIdinteger
Internal database ID (the "id" field in search results), not the number shown in the title
slugstring
Property URL slug
locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Response language. Default: en
includeImageboolean
Also return the main photo inline as an image block. Default: false (photo URLs are always included)

Возвращает: id, propertyNumber, slug, title, url, canonicalUrl, price, currency, priceFormatted, propertyType, listingType, city, district, area, bedrooms, bathrooms, distanceToSea, imageUrl, isVerified, excerpt, contactUrl, description, address, latitude, longitude, landArea, rooms, floor, totalFloors, yearBuilt, furnished, parking, features, galleryUrls, totalPhotos, virtualTourUrl, videoUrl, agent, pricePerSqm, isSuperPrice, isUrgent, isNew

Find similar properties

find_similar_propertiesТолько чтение

Find properties similar to a given one. Uses AI embeddings to find visually and semantically similar listings. Great for "show me more like this" scenarios.

Параметры

propertyIdintegerобязательный
Reference property ID
limitinteger
Number of similar properties (max 12). Default: 6
locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Response language. Default: en

Возвращает: totalCount, properties, hasMore, searchTip

List cities

list_citiesТолько чтение

Get list of all cities where MDRealty has properties. Use city slugs from this list for the citySlug filter in search_properties.

Параметры

locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Response language. Default: en

Возвращает: cities

List property types

list_property_typesТолько чтение

Get available property types (apartment, house, villa, land, etc.) with slugs for search filters.

Параметры

locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Response language. Default: en

Возвращает: propertyTypes

List listing types

list_listing_typesТолько чтение

Get available listing types (sale, rent) with slugs for search filters.

Параметры

locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Response language. Default: en

Возвращает: listingTypes

List thematic collections

list_collectionsТолько чтение

List available thematic property collections, e.g. "Beachfront Villas", "Investment Apartments". Curated groups of properties organized by theme.

Параметры

locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Response language. Default: en
limitinteger
Max results. Default: 10

Возвращает: collections

List articles

list_articlesТолько чтение

List blog articles about Montenegro real estate. Covers buying guides, investment tips, area overviews, and market analysis.

Параметры

categorystring
Category slug to filter by
limitinteger
Max results. Default: 10
offsetinteger
Skip N results. Default: 0
locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Response language. Default: en

Возвращает: totalCount, articles, hasMore

Get article

get_articleТолько чтение

Get a blog article by slug or ID. Articles include guides about Montenegro locations, buying process, and investment advice.

Параметры

slugstring
Article URL slug
idinteger
Article ID
locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Response language. Default: en

Возвращает: id, slug, title, url, canonicalUrl, excerpt, category, imageUrl, publishedAt, content, relatedProperties

Estimate purchase costs

estimate_deal_costТолько чтение

Authoritative purchase-cost calculator for Montenegro, the same as /tools/deal-cost-calculator on mdrealty.me: property transfer tax (PROGRESSIVE — 3% up to €150,000, 5% for €150,000–500,000, 6% above; a new build from a VAT-registered developer is exempt) and the notary fee by the official tariff (Sl. list CG 49/2026; +5% of the tariff per party beyond two, +€15 per court interpreter, cadastre filing, 21% VAT). Also returns the agency fee: none for a listing from the MDRealty catalog, a separate deal-support fee for a property found elsewhere. Pass a price, or propertyId/slug of a catalog listing to use its price. Always use this instead of computing taxes or fees yourself.

Параметры

pricenumber
Property price in EUR. Not needed when propertyId or slug is given.
propertyIdinteger
Internal ID of a catalog listing (the "id" field of search results) — its price is used
slugstring
Slug of a catalog listing — its price is used
dealSupportboolean
The property was found elsewhere and MDRealty is asked to handle the purchase. Ignored for catalog listings.
newBuildFromVatPayerboolean
New build bought from a VAT-registered developer — no transfer tax. Default: the listing's own exemption for a catalog listing, otherwise false
buyersinteger
People buying (spouses = 2, a company = 1). Default: 1
sellersinteger
People selling, same rule. Default: 1
interpretersinteger
Court interpreters at the signing, one per language. Default: 0
cadastreFilingboolean
The notary files the cadastre application. Default: true
locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Language of the links. Default: en

Возвращает: price, currency, property, transferTax, notary, extraFees, agencyFee, totalCosts, totalWithProperty, totalWithDealSupport, calculatorUrl, notes

Mortgage calculator

mortgage_calculatorТолько чтение

Monthly mortgage payment for a property price in EUR — the same annuity calculation and defaults as /tools/mortgage-calculator on mdrealty.me: down payment 30%, 20 years, and unless a rate is given, the cheapest current bank rate for the borrower segment (5% when no bank rate is on file). Indicative only: bank terms in Montenegro differ.

Параметры

pricenumberобязательный
Property price in EUR
downPaymentPctnumber
Down payment as % of the price. Default: 30
downPaymentnumber
Down payment in EUR — overrides downPaymentPct
termYearsinteger
Loan term in years. Default: 20
annualRatePctnumber
Annual interest rate, %. Default: the cheapest current bank rate for the segment
segment"resident" | "non_resident_permit" | "non_resident" | "young" | "diaspora"
Borrower: resident, non_resident_permit (has a residence permit), non_resident, young, diaspora. Default: resident
locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Language of the link. Default: en

Возвращает: price, downPayment, downPaymentPct, loan, termYears, annualRatePct, rateSource, bank, monthlyPayment, totalPaid, totalInterest, calculatorUrl, note

Market price statistics

get_market_statsТолько чтение

Asking-price statistics of real estate in Montenegro from the MDRealty catalog: number of active listings, price and price-per-m² quartiles (25th percentile, median, 75th) and median area — for the whole country, a city or a region, a property type and a deal type (sale, monthly rent, nightly rent). A region (e.g. budvanskaya-rivera) covers every town in it; city.isRegion marks it. Groups with fewer than 5 listings are not shown. Refreshed daily; computedAt says when. Use it to answer "how much does an apartment in Budva cost per m²" instead of guessing from search results.

Параметры

citySlugstring
City or region slug from list_cities ("budva" works too); omit for the whole country and every city
propertyTypestring
Property type slug from list_property_types, e.g. apartments; omit for all types
listingType"sale" | "rent" | "daily-rent"
sale, rent (monthly) or daily-rent (nightly). Default: all three
limitinteger
Groups to return, 1–200. Default: 50
locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Language of city and type names. Default: en

Возвращает: computedAt, currency, minGroupSize, totalGroups, groups, hasMore, note, searchTip

Compare properties

compare_propertiesТолько чтение

Side-by-side comparison of 2–4 MDRealty listings: price, price per m², area, bedrooms, bathrooms, distance to the sea, city, year built and the listing page, plus how each price per m² compares with the market median for similar listings (the same figures as get_market_stats). Pass the ids from search results, or slugs.

Параметры

propertyIdsinteger[]
Internal IDs (the "id" field of search results), not the listing number in the title
slugsstring[]
Listing slugs
locale"ru" | "en" | "sr" | "de" | "fr" | "tr" | "pl"
Language of titles, names and links. Default: en

Возвращает: properties, notFound, summary, marketComputedAt, note

Партнёрские и служебные ключи открывают дополнительные инструменты, например поиск по фото и проверку дублей. Чтобы получить партнёрский ключ, напишите нам.

JSON API без MCP

Агенты, которые не умеют MCP — GPT Actions, инструменты LangChain, обычные HTTP-клиенты, — могут читать тот же каталог через JSON API. Ключ и регистрация не нужны; ответы те же, что у инструментов MCP.

  • GET /api/ai/properties — поиск объектов с теми же фильтрами, что у search_properties
  • GET /api/ai/properties/{slug} — один объект по slug, как get_property
  • GET /api/ai/cities — города с объектами, как list_cities

Пример

curl "https://mdrealty.me/api/ai/properties?citySlug=budva&query=sea%20view&limit=5"

Описание OpenAPI 3.1/api/ai/openapi.json

Ограничения

  • 60 запросов в минуту на ключ. Сверх этого сервер отвечает 429 с заголовком Retry-After.
  • Все публичные ключи с одного IP-адреса делят общий лимит — 300 запросов в минуту.
  • Подключение клиентов ограничено по IP-адресу: 20 регистраций и 20 запросов токена в час.
  • JSON API без ключа: 60 запросов в минуту с одного IP-адреса, до 20 объектов на страницу (больший limit урезается), offset не больше 200.
  • До 20 объектов на страницу; для следующих страниц используйте offset.
  • Цены указаны в евро. Объявления меняются ежедневно — прежде чем опираться на цену, уточните наличие у агента.

Условия использования

  • Используйте данные, чтобы отвечать на вопросы Ваших пользователей о недвижимости в Черногории.
  • Указывайте MDRealty как источник и давайте ссылку на объект: показывайте пользователю поле url, при цитировании — canonicalUrl.
  • Не копируйте каталог массово, не перепродавайте данные и не стройте на их основе конкурирующую базу.
  • Содержимое нельзя использовать для обучения AI-моделей (robots.txt: Content-Signal ai-train=no).
  • Мы можем ограничить или отозвать ключи, которые используются со злоупотреблением.
  • Вызовы инструментов хранятся в журнале 90 дней — для работы и защиты сервиса: название инструмента, параметры со скрытыми email и телефонами, укороченный IP-адрес. Ключи, которые ни разу не использовались, удаляются через 30 дней.

Машиночитаемое описание

Агенты могут найти и настроить сервер и без этой страницы:

Контакты

Вопросы, партнёрский ключ или недостающий инструмент — пишите на sales@mdrealty.me.