{
  "openapi": "3.0.1",
  "info": {
    "title": "Real Estate MCP API - Casa 10 - Mediação Imobiliária",
    "version": "1.1",
    "description": "MCP контекст недвижимости для поиска объектов и отправки запросов на контакт. - Casa 10 - Mediação Imobiliária",
    "termsOfService": "https://www.casa10.pt/termos-e-condicoes",
    "contact": {
      "name": "Casa 10 - Mediação Imobiliária",
      "url": "https://www.casa10.pt/",
      "email": "vitor.rodelo@gmail.com"
    },
    "x-company-info": {
      "name": "Casa 10 - Mediação Imobiliária",
      "ami": "9616",
      "address": "Centro de Escritórios Panoramic, Av. do Atlântico 16 - 8.11, Parque das Nações, Lisboa  - Portugal, 1990-019"
    }
  },
  "servers": [
    {
      "url": "https://www.casa10.pt/",
      "description": "Идентификатор сервера MCP"
    }
  ],
  "components": {
    "schemas": {
      "searchToMatchRequest": {
        "type": "object",
        "properties": {
          "businessType": {
            "type": "string",
            "description": "Определяет или возвращает идентификатор типа сделки недвижимости"
          },
          "countryName": {
            "type": "string",
            "description": "Название страны, используемое в качестве критерия фильтрации. Это поле должно оставаться пустым, если страна не определена."
          },
          "stateName": {
            "type": "string",
            "description": "Название региона (район) для недвижимости (обязательно при поиске, если муниципалитет не указан)."
          },
          "townName": {
            "type": "string",
            "description": "Название муниципалитета для недвижимости (обязательно при поиске, если район не указан)."
          },
          "neighborhoodName": {
            "type": "string",
            "description": "Название или ID района, где находится недвижимость."
          },
          "zoneName": {
            "type": "string",
            "description": "Идентификатор географической зоны для фильтрации при поиске."
          },
          "masterCategoryIds": {
            "type": "array",
            "description": "Идентификаторы (ID) одной или нескольких основных групп категорий недвижимости (например, квартиры, дома, склады, земли, отели). Требуется указать хотя бы один, если не указан конкретный тип недвижимости."
          },
          "categoryIds": {
            "type": "array",
            "description": "Идентификаторы (ID) одного или нескольких конкретных типов недвижимости (например, квартира, дом, склад, участок, отель)."
          },
          "condition": {
            "type": "string",
            "description": "Состояние."
          },
          "minPrice": {
            "type": "integer",
            "description": "Минимальная цена в евро. Заполнять, когда пользователь указывает минимальный бюджет или нижний предел цены.",
            "format": "int32"
          },
          "maxPrice": {
            "type": "integer",
            "description": "Максимальная цена в евро. Заполнять, когда пользователь указывает максимальный бюджет или верхний предел цены.",
            "format": "int32"
          },
          "minBedrooms": {
            "type": "integer",
            "description": "Минимальное количество спален для фильтрации",
            "format": "int32"
          },
          "maxBedrooms": {
            "type": "integer",
            "description": "Максимальное количество спален для фильтрации",
            "format": "int32"
          },
          "bathrooms": {
            "type": "integer",
            "description": "Минимальное количество ванных комнат.",
            "format": "int32"
          },
          "listingReference": {
            "type": "string",
            "description": "Внутренний идентификатор недвижимости для идентификации."
          },
          "developmentName": {
            "type": "string",
            "description": "Название проекта."
          },
          "developmentFractions": {
            "type": "boolean",
            "description": "Указывает, должна ли поисковая система учитывать отдельные единицы проекта (например, квартиры или торговые помещения) вместо проекта в целом. При включении результаты содержат только единицы, связанные с проектом."
          },
          "developmentTags": {
            "type": "array",
            "description": "Теги жилых комплексов, используемые для фильтрации поиска."
          },
          "withVideos": {
            "type": "boolean",
            "description": "Ищет только объекты недвижимости с доступными видео. Применяется, когда пользователь упоминает выражения вроде 'с видео', 'есть видео', 'посмотреть видео объекта', 'видео онлайн', и т.д."
          },
          "withBluePrints": {
            "type": "boolean",
            "description": "Ищет только объекты недвижимости с доступными планами (blueprints). Применяется, когда пользователь упоминает 'с планом', 'есть план', 'планы дома', 'карта объекта', 'план этажа', 'посмотреть план' и т.д."
          },
          "withVirtualVisits": {
            "type": "boolean",
            "description": "Ищет только объекты с виртуальными турами. Применяется, когда пользователь упоминает 'виртуальный тур', '3D тур', 'интерактивный тур', 'виртуальный опыт', 'виртуальный просмотр', 'посмотреть виртуальный тур онлайн'."
          },
          "with360Photos": {
            "type": "boolean",
            "description": "Ищет только объекты недвижимости с доступными 360º фотографиями. Применяется, когда пользователь упоминает 'с 360º фото', 'есть 360º фото', 'с панорамными фото', 'есть панорамные фото', 'смотреть 360º фото онлайн' и т.д."
          },
          "featuresNames": {
            "type": "array",
            "description": "Особенности недвижимости, включая удобства, услуги и близлежащие места интереса, а также типы видов для полного и детального описания объекта"
          },
          "page": {
            "type": "integer",
            "description": "Номер страницы для отображения в результатах поиска.",
            "format": "int32"
          }
        },
        "description": "Схема, описывающая входные параметры поиска недвижимости."
      },
      "searchResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "Список результатов текущей страницы, основанный на количестве записей на странице.",
            "items": {
              "$ref": "#/components/schemas/DetailResponse"
            }
          },
          "count": {
            "type": "integer",
            "description": "Общее количество результатов, соответствующих критериям поиска.",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "description": "Номер текущей страницы в соответствии с критериями поиска.",
            "format": "int32"
          },
          "totalpages": {
            "type": "integer",
            "description": "Общее количество страниц, соответствующих критериям поиска.",
            "format": "int32"
          },
          "statetownnameequals": {
            "type": "boolean",
            "description": "Указывает, совпадает ли название региона с названием города."
          },
          "developmentname": {
            "type": "string",
            "description": "Название проекта; это поле заполняется только в том случае, если результаты относятся к конкретному проекту с этим названием."
          }
        },
        "description": "Схема, описывающая выходные параметры поиска недвижимости."
      },
      "detailRequest": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "description": "ID недвижимости для контакта.",
            "format": "int32"
          },
          "listingReference": {
            "type": "string",
            "description": "Внутренний идентификатор недвижимости для идентификации."
          },
          "developmentFractions": {
            "type": "boolean",
            "description": "Указывает, должна ли поисковая система учитывать отдельные единицы проекта (например, квартиры или торговые помещения) вместо проекта в целом. При включении результаты содержат только единицы, связанные с проектом."
          }
        },
        "description": "Схема, описывающая входные параметры для деталей недвижимости."
      },
      "detailResponse": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "description": "Уникальный идентификатор объявления о недвижимости.",
            "format": "int32"
          },
          "propertyType": {
            "type": "string",
            "description": "Тип недвижимости."
          },
          "condition": {
            "type": "string",
            "description": "Состояние недвижимости."
          },
          "listingReference": {
            "type": "string",
            "description": "Ссылка на объект, отображаемая в результатах поиска."
          },
          "firstPhoto": {
            "type": "string",
            "description": "URL миниатюры первой фотографии объекта недвижимости."
          },
          "description": {
            "type": "string",
            "description": "Подробное описание недвижимости."
          },
          "title": {
            "type": "string",
            "description": "Заголовок объявления."
          },
          "price": {
            "type": "string",
            "description": "Цена в евро."
          },
          "imiValue": {
            "type": "string",
            "description": "Сумма IMI к оплате за недвижимость, рассчитанная на основе VPT и применимых налоговых правил."
          },
          "business": {
            "type": "string",
            "description": "Тип сделки с недвижимостью."
          },
          "location": {
            "type": "string",
            "description": "Название местоположения."
          },
          "bedrooms": {
            "type": "integer",
            "description": "Количество спален в недвижимости.",
            "format": "int32"
          },
          "bathrooms": {
            "type": "integer",
            "description": "Количество ванных комнат в недвижимости.",
            "format": "int32"
          },
          "url": {
            "type": "string",
            "description": "Публичный URL объявления."
          },
          "hasVideos": {
            "type": "boolean",
            "description": "Указывает, есть ли у объекта доступные видео."
          },
          "hasBluePrints": {
            "type": "boolean",
            "description": "Указывает, есть ли у объекта доступные планы или чертежи."
          },
          "has360Photos": {
            "type": "boolean",
            "description": "Указывает, есть ли у объекта недвижимости доступные 360° фотографии."
          },
          "hasVirtualVisits": {
            "type": "boolean",
            "description": "Указывает, есть ли у объекта недвижимости виртуальные визиты или туры."
          },
          "features": {
            "description": "Эти ключи представляют описание конкретных характеристик недвижимости, включая физические атрибуты и важные локации, такие как бассейн, вид на море, близость к больницам, школам и другим важным объектам. Эта информация помогает детализировать и оценить недвижимость для улучшения фильтрации поиска и представления результатов в соответствии с предпочтениями пользователя.",
            "$ref": "#/components/schemas/Dictionary`2"
          }
        },
        "description": "Схема, описывающая выходные параметры деталей недвижимости."
      },
      "leadRequest": {
        "type": "object",
        "properties": {
          "listingId": {
            "type": "integer",
            "description": "ID недвижимости для контакта.",
            "format": "int32"
          },
          "listingReference": {
            "type": "string",
            "description": "Внутренний идентификатор недвижимости для идентификации."
          },
          "name": {
            "type": "string",
            "description": "Имя пользователя."
          },
          "email": {
            "type": "string",
            "description": "Адрес электронной почты пользователя (обязателен, если номер телефона не указан)."
          },
          "phone": {
            "type": "string",
            "description": "Номер телефона пользователя (необязательно, если указан адрес электронной почты)."
          },
          "phoneCountryCode": {
            "type": "string",
            "description": "Код страны телефона с плюсом, например, \"+7\" для России, \"+351\" для Португалии."
          },
          "message": {
            "type": "string",
            "description": "Пользовательское сообщение."
          }
        },
        "description": "Схема, описывающая входные параметры для отправки лидов недвижимости."
      },
      "leadResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Статус отправки контактной формы (например: успех, ошибка)."
          },
          "message": {
            "type": "string",
            "description": "Сообщение, описывающее результат отправки контактной формы."
          },
          "confirmedLead": {
            "type": "boolean",
            "description": ""
          }
        },
        "description": "Схема, описывающая выходные параметры отправки лидов недвижимости."
      },
      "companyInfoRequest": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "Идентификатор компании/агентства для запроса (необязательно, по умолчанию используется внутренний идентификатор компании).",
            "format": "int32"
          }
        },
        "description": "Входная схема для запроса информации о компании"
      },
      "companyInfoWithAgenciesResponse": {
        "type": "object",
        "properties": {
          "headquarters": {
            "description": "Информация о контактных данных компании, относящихся к головному офису.",
            "$ref": "#/components/schemas/CompanyInfoResponse"
          },
          "agencies": {
            "type": "array",
            "description": "Информация о контактных данных агентств компании.",
            "items": {
              "$ref": "#/components/schemas/CompanyInfoResponse"
            }
          }
        },
        "description": "Схема вывода с данными о компании"
      },
      "companyInfoResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Название компании"
          },
          "phone": {
            "type": "string",
            "description": "Телефон компании"
          },
          "mobile": {
            "type": "string",
            "description": "Мобильный телефон компании"
          },
          "email": {
            "type": "string",
            "description": "Контактный адрес электронной почты компании"
          },
          "address": {
            "type": "string",
            "description": "Адрес компании (без почтового индекса)"
          },
          "district": {
            "type": "string",
            "description": "Район, в котором находится компания"
          },
          "municipality": {
            "type": "string",
            "description": "Муниципалитет, в котором находится компания"
          },
          "parish": {
            "type": "string",
            "description": "Приход, в котором находится компания"
          },
          "zipCode": {
            "type": "string",
            "description": "Почтовый индекс адреса компании"
          },
          "businessHours": {
            "type": "string",
            "description": "Часы работы компании"
          },
          "googleMapsUrl": {
            "type": "string",
            "description": "Прямая ссылка на местоположение компании в Google Maps"
          }
        },
        "description": "Схема вывода с данными о компании"
      },
      "rasorInfoRequest": {
        "type": "object",
        "properties": {
          "rasorName": {
            "type": "string",
            "description": "Имя консультанта по недвижимости, о котором требуется получить подробную информацию."
          },
          "stateName": {
            "type": "string",
            "description": "Позволяет искать консультантов по округу."
          },
          "townName": {
            "type": "string",
            "description": "Позволяет искать консультантов по муниципалитету."
          }
        },
        "description": "Входная схема для запроса подробной информации о консультанте по недвижимости"
      },
      "rasorInfoResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Полное имя консультанта по недвижимости."
          },
          "phone": {
            "type": "string",
            "description": "Стационарный телефон консультанта по недвижимости."
          },
          "mobile": {
            "type": "string",
            "description": "Мобильный телефон консультанта по недвижимости."
          },
          "observations": {
            "type": "string",
            "description": "Дополнительные замечания, связанные с консультантом по недвижимости."
          },
          "email": {
            "type": "string",
            "description": "Электронная почта консультанта по недвижимости."
          },
          "address": {
            "type": "string",
            "description": "Полный адрес консультанта по недвижимости или офиса."
          },
          "city": {
            "type": "string",
            "description": "Муниципалитет, где работает консультант по недвижимости."
          },
          "parish": {
            "type": "string",
            "description": "Приход, где работает консультант по недвижимости."
          },
          "spokenLanguages": {
            "type": "array",
            "description": "Список языков, которыми владеет консультант по недвижимости."
          },
          "socialProfiles": {
            "type": "array",
            "description": "Список ссылок на социальные профили консультанта.",
            "items": {
              "$ref": "#/components/schemas/SocialProfile"
            }
          },
          "avatar": {
            "type": "string",
            "description": "Изображение аватара, связанного с консультантом."
          },
          "listingUrl": {
            "type": "string",
            "description": "URL страницы, отображающей все объекты недвижимости, назначенные консультанту или связанные с ним, обеспечивая прямой доступ к полному списку соответствующих объектов."
          },
          "detailUrl": {
            "type": "string",
            "description": "Страница, отображающая полную информацию об агенте, включая контактные данные, профессиональный профиль и связанные объекты недвижимости."
          }
        },
        "description": "Схема вывода с подробной информацией о консультанте по недвижимости"
      },
      "imiRequest": {
        "type": "object",
        "properties": {
          "townName": {
            "type": "string",
            "description": "Название муниципалитета, в котором находится недвижимость. Это поле обязательно для географической идентификации и определения ставки IMI. Пример: \"Лиссабон\", \"Порту\", \"Синтра\", \"Албуфейра\"."
          },
          "taxableValue": {
            "type": "number",
            "description": "Налогооблагаемая кадастровая стоимость недвижимости (VPT), зарегистрированная в Португальской налоговой службе. Это официальная фискальная стоимость, используемая для расчёта IMI. Значение должно быть положительным десятичным числом в евро. Пример: \"185000.00\".",
            "format": "decimal"
          },
          "dependentsNumber": {
            "type": "integer",
            "description": "Количество иждивенцев в домохозяйстве налогоплательщика за соответствующий налоговый год. Включает детей, пожилых родителей и других законно признанных иждивенцев, которые могут иметь право на снижение или освобождение от IMI. Допустимое значение: целое число ≥ 0. Пример: \"2\".",
            "format": "int32"
          },
          "isUrban": {
            "type": "boolean",
            "description": "Указывает, классифицируется ли недвижимость как городская или сельская. Городская недвижимость облагается IMI, а сельская может подлежать другим налоговым правилам. Пример: true/false."
          }
        },
        "description": "Схема входных данных, используемая для запроса расчета муниципального налога на недвижимость (IMI) для объекта недвижимости."
      },
      "imiResponse": {
        "type": "object",
        "properties": {
          "townName": {
            "type": "string",
            "description": "Название муниципалитета, учитываемое при расчёте IMI"
          },
          "taxableValue": {
            "type": "string",
            "description": "Налоговая стоимость имущества (VPT), учитываемая при расчёте IMI, в евро"
          },
          "dependentsNumber": {
            "type": "string",
            "description": "Количество иждивенцев, учитываемых для предоставления льгот при расчете IMI"
          },
          "isUrban": {
            "type": "string",
            "description": "Указание, является ли объект недвижимости городским или сельским, учитываемое при расчёте IMI"
          },
          "imiValue": {
            "type": "string",
            "description": "Окончательное значение IMI (Муниципальный налог на недвижимость), рассчитанное на основе предоставленных данных."
          },
          "imiTaxValue": {
            "type": "string",
            "description": "Ставка, использованная для расчета IMI."
          },
          "dependentDiscount": {
            "type": "string",
            "description": "Сумма скидки, основанная на количестве иждивенцев."
          },
          "dataYear": {
            "type": "integer",
            "description": "Год, на который основаны ставки, используемые для расчета IMI.",
            "format": "int32"
          }
        },
        "description": "Схема выходных данных, предоставляющая результат расчета IMI, включая подробную информацию о сумме к уплате."
      },
      "servicesInfoRequest": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "Идентификатор компании/агентства для запроса (необязательно, по умолчанию используется внутренний идентификатор компании).",
            "format": "int32"
          }
        },
        "description": "Обзор доступных услуг, включая их назначение и применение для клиентов."
      },
      "servicesInfoResponse": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "description": "Уникальный идентификатор компании, связанной с каталогом услуг.",
            "format": "int32"
          },
          "companyName": {
            "type": "string",
            "description": "Название компании, предоставляющей каталог услуг."
          },
          "categories": {
            "type": "array",
            "description": "Список доступных категорий услуг, организованных по профилю клиента.",
            "items": {
              "$ref": "#/components/schemas/ServiceCategory"
            }
          }
        },
        "description": "Обзор предоставленных клиенту услуг, включая детали, охват и применение."
      }
    }
  },
  "paths": {
    "/mcp/search": {
      "get": {
        "summary": "Поиск объявлений о недвижимости с использованием фильтров, таких как местоположение, цена, тип и состояние.",
        "description": "Поиск объявлений о недвижимости с использованием фильтров, таких как местоположение, цена, тип и состояние.",
        "operationId": "mcpSearch",
        "parameters": [
          {
            "name": "BusinessType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Определяет или возвращает идентификатор типа сделки недвижимости (Аренда, Продажа). Если не указано в поиске, по умолчанию используется Продажа"
          },
          {
            "name": "CountryName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Название страны, используемое в качестве критерия фильтрации. Это поле должно оставаться пустым, если страна не определена., (is required)"
          },
          {
            "name": "StateName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Название региона (район) для недвижимости (обязательно при поиске, если муниципалитет не указан)., (is required)"
          },
          {
            "name": "TownName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Название муниципалитета для недвижимости (обязательно при поиске, если район не указан)."
          },
          {
            "name": "NeighborhoodName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Название или ID района, где находится недвижимость."
          },
          {
            "name": "ZoneName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Идентификатор географической зоны для фильтрации при поиске."
          },
          {
            "name": "MasterCategoryIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Идентификаторы (ID) одной или нескольких основных групп категорий недвижимости (например, квартиры, дома, склады, земли, отели). Требуется указать хотя бы один, если не указан конкретный тип недвижимости."
          },
          {
            "name": "CategoryIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Идентификаторы (ID) одного или нескольких конкретных типов недвижимости (например, квартира, дом, склад, участок, отель)."
          },
          {
            "name": "Condition",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Состояние. (Remodelled, В проекте, В строительстве, Вторичный рынок, Зарезервировано, На продажу, На снос или под капитальный ремонт, Не применимо, Новый объект, Под ремонт, С капитальным ремонтом, с программой стимулирования для реабилитации)"
          },
          {
            "name": "MinPrice",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Минимальная цена в евро. Заполнять, когда пользователь указывает минимальный бюджет или нижний предел цены."
          },
          {
            "name": "MaxPrice",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Максимальная цена в евро. Заполнять, когда пользователь указывает максимальный бюджет или верхний предел цены."
          },
          {
            "name": "MinBedrooms",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Минимальное количество спален для фильтрации"
          },
          {
            "name": "MaxBedrooms",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Максимальное количество спален для фильтрации"
          },
          {
            "name": "Bathrooms",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Минимальное количество ванных комнат."
          },
          {
            "name": "ListingReference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Внутренний идентификатор недвижимости для идентификации."
          },
          {
            "name": "DevelopmentName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Название проекта."
          },
          {
            "name": "DevelopmentFractions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Указывает, должна ли поисковая система учитывать отдельные единицы проекта (например, квартиры или торговые помещения) вместо проекта в целом. При включении результаты содержат только единицы, связанные с проектом."
          },
          {
            "name": "DevelopmentTags",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Теги жилых комплексов, используемые для фильтрации поиска. (a minha casa de sonho, a minha casa nova, ALGARVE, Apartamento Lisboa, apartment in Lisbon with 4% yield for 6 years, Apartment in Nazare, broker in portugal, buy apartment in Lisbon, buy property vilamoura, casa de luxo, cobertura exclusiva, Condomínio luxo lisboa, corretor de imóveis, corretor de imóveis em Lisboa, Corretor de Imóveis em Portugal, DUBAI, Exclusivo, Highlight, HONGKONG, Hotel Apartments, i want to live in portugal, i want to move to portugal, imoveis de luxo portugal, imovel de luxo algarve, invest in portugal, investimento lisboa, investimento portugal, Litoral, live in portugal, luxury villa in Algarve, luxury villa in Vilamoura, move to Vilamoura, moving to portugal, NAZARE, predio em lisboa, properties, properties in portugal, real estate agent in portugal, real estate portugal, T0 Luxo Lisboa, T1 Lisboa, T2 Lisboa, T2 luxo lisboa, T2 Nazare)"
          },
          {
            "name": "WithVideos",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Ищет только объекты недвижимости с доступными видео. Применяется, когда пользователь упоминает выражения вроде 'с видео', 'есть видео', 'посмотреть видео объекта', 'видео онлайн', и т.д."
          },
          {
            "name": "WithBluePrints",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Ищет только объекты недвижимости с доступными планами (blueprints). Применяется, когда пользователь упоминает 'с планом', 'есть план', 'планы дома', 'карта объекта', 'план этажа', 'посмотреть план' и т.д."
          },
          {
            "name": "WithVirtualVisits",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Ищет только объекты с виртуальными турами. Применяется, когда пользователь упоминает 'виртуальный тур', '3D тур', 'интерактивный тур', 'виртуальный опыт', 'виртуальный просмотр', 'посмотреть виртуальный тур онлайн'."
          },
          {
            "name": "With360Photos",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Ищет только объекты недвижимости с доступными 360º фотографиями. Применяется, когда пользователь упоминает 'с 360º фото', 'есть 360º фото', 'с панорамными фото', 'есть панорамные фото', 'смотреть 360º фото онлайн' и т.д."
          },
          {
            "name": "FeaturesNames",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Особенности недвижимости, включая удобства, услуги и близлежащие места интереса, а также типы видов для полного и детального описания объекта (24 hours security, Closet, Dinning room, Double glass, Ejendommen har kontor, Electric gate, Esplanade, Fire detection, Fireplace, Golf course, Green spaces, Gymnasium, High Security Door, Kitchen, Piped gas, Playground, Porch, Shed, Shower, Storage house, Subway, Swimming pools, Trade Zone, Turkish bath, Video surveillance, Whirlpool tub, Акустическая изоляция, Аптека, Аттика, аэропорт, Банк, Барбекю, Бассейн, Безопасная коробка, Бластная дверь, Блок восстановления тепла, Бойлер, Больница, Видео, Видео запись, Винный погреб, Водоподготовка, Газовая горячая вода, Гараж, гольф, Город, Гостиная, Дашвашер, Детская площадка, Джакузи, Домотика, Доступ к земле, Естественный свет, Загерметизированный комплекс, Зеркальное стекло, Игровая комната, Интрудер детектор, Исторический район, Кладовка, Кондиционер, Конференц-зал, Кухни, Кухонная капюшон, Лифт, Месяц, Микроволновая, Музыка Ambience, Обогреваемые полотенце стеллажи, Оборудованная кухня, Общественная парковка, Общественный транспорт, Общий бассейн, Океан, Отдельная ванная комната, Открытое пространство, Отличный доступ, Парковка, плотину, Пляж, Подвал, Показать, Полиция, Прачечная, Предварительная установка солнечных панелей, Приемная, Природный газ, Радиантные полы, Река, рынок, Рядом с морем, С мебелью, Сад, Сельская местность, Сервисная ванная комната, сигнализация, Солнечная горячая вода, Солнечная ориентация, Солнечные панели, Спорт, Спортивный комплекс, Стиральная машина, Стоув, Строительство, Супермаркет, Сушилка, Сьют, Темное стекло, Термическая изоляция, Терраса, Торговый центр, Туб, Фитнесс зал, Фруктовые деревья, Холодильник, Центр города, Центральная система пылеудаления, Центральное отопление, Широкий спектр услуг, Школа, Шоссе, Щитая дверь, Электрическая плита, Электрические жалюзи)"
          },
          {
            "name": "Page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Номер страницы для отображения в результатах поиска."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/detail": {
      "get": {
        "summary": "Возвращает подробную информацию о недвижимости.",
        "description": "Возвращает подробную информацию о недвижимости.",
        "operationId": "mcpDetail",
        "parameters": [
          {
            "name": "ListingId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "ID недвижимости для контакта."
          },
          {
            "name": "ListingReference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Внутренний идентификатор недвижимости для идентификации."
          },
          {
            "name": "DevelopmentFractions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Указывает, должна ли поисковая система учитывать отдельные единицы проекта (например, квартиры или торговые помещения) вместо проекта в целом. При включении результаты содержат только единицы, связанные с проектом."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/lead": {
      "get": {
        "summary": "Отправить контактную форму для конкретного объявления.",
        "description": "Отправить контактную форму для конкретного объявления.",
        "operationId": "mcpLead",
        "parameters": [
          {
            "name": "ListingId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "ID недвижимости для контакта."
          },
          {
            "name": "ListingReference",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Внутренний идентификатор недвижимости для идентификации."
          },
          {
            "name": "Name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Имя пользователя., (is required)"
          },
          {
            "name": "Email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Адрес электронной почты пользователя (обязателен, если номер телефона не указан)., (is required)"
          },
          {
            "name": "Phone",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Номер телефона пользователя (необязательно, если указан адрес электронной почты)."
          },
          {
            "name": "PhoneCountryCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Код страны телефона с плюсом, например, \"+7\" для России, \"+351\" для Португалии."
          },
          {
            "name": "Message",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Пользовательское сообщение."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeadResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/companyinfo": {
      "get": {
        "summary": "Позволяет получать контактные данные компании, включая название агентства, адрес, телефон и электронную почту. Идеально для отображения институциональной информации или для возможности связи пользователя с агентством.",
        "description": "Позволяет получать контактные данные компании, включая название агентства, адрес, телефон и электронную почту. Идеально для отображения институциональной информации или для возможности связи пользователя с агентством.",
        "operationId": "mcpCompanyInfo",
        "parameters": [
          {
            "name": "CompanyId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Идентификатор компании/агентства для запроса (необязательно, по умолчанию используется внутренний идентификатор компании)."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyInfoWithAgenciesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/rasorinfo": {
      "get": {
        "summary": "Позволяет получать контактные данные консультанта по недвижимости, включая имя, телефон, электронную почту и адрес. Идеально для отображения контактной информации консультанта или для возможности связи пользователя с ним.",
        "description": "Позволяет получать контактные данные консультанта по недвижимости, включая имя, телефон, электронную почту и адрес. Идеально для отображения контактной информации консультанта или для возможности связи пользователя с ним.",
        "operationId": "mcpRasorInfo",
        "parameters": [
          {
            "name": "RasorName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Имя консультанта по недвижимости, о котором требуется получить подробную информацию."
          },
          {
            "name": "StateName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Позволяет искать консультантов по округу."
          },
          {
            "name": "TownName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Позволяет искать консультантов по муниципалитету."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RasorInfoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/imicalculator": {
      "get": {
        "summary": "Позволяет определить величину муниципального налога на недвижимость (IMI) на основе данных, предоставленных пользователем. Сервис проверяет указанный муниципалитет, определяет применяемый коэффициент, обрабатывает Налогооблагаемую Патримониальную Стоимость (VPT), количество иждивенцев и характер имущества (городской или сельский), возвращая окончательную сумму IMI к уплате в соответствии с действующими налоговыми правилами Португалии.",
        "description": "Позволяет определить величину муниципального налога на недвижимость (IMI) на основе данных, предоставленных пользователем. Сервис проверяет указанный муниципалитет, определяет применяемый коэффициент, обрабатывает Налогооблагаемую Патримониальную Стоимость (VPT), количество иждивенцев и характер имущества (городской или сельский), возвращая окончательную сумму IMI к уплате в соответствии с действующими налоговыми правилами Португалии.",
        "operationId": "mcpImiCalculator",
        "parameters": [
          {
            "name": "TownName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Название муниципалитета, в котором находится недвижимость. Это поле обязательно для географической идентификации и определения ставки IMI. Пример: \"Лиссабон\", \"Порту\", \"Синтра\", \"Албуфейра\"."
          },
          {
            "name": "TaxableValue",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "format": "decimal"
            },
            "description": "Налогооблагаемая кадастровая стоимость недвижимости (VPT), зарегистрированная в Португальской налоговой службе. Это официальная фискальная стоимость, используемая для расчёта IMI. Значение должно быть положительным десятичным числом в евро. Пример: \"185000.00\"."
          },
          {
            "name": "DependentsNumber",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Количество иждивенцев в домохозяйстве налогоплательщика за соответствующий налоговый год. Включает детей, пожилых родителей и других законно признанных иждивенцев, которые могут иметь право на снижение или освобождение от IMI. Допустимое значение: целое число ≥ 0. Пример: \"2\"."
          },
          {
            "name": "IsUrban",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Указывает, классифицируется ли недвижимость как городская или сельская. Городская недвижимость облагается IMI, а сельская может подлежать другим налоговым правилам. Пример: true/false."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IMIResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp/servicesinfo": {
      "get": {
        "summary": "Описание endpoint, предоставляющего полную информацию о доступных услугах для профиля клиента.",
        "description": "Описание endpoint, предоставляющего полную информацию о доступных услугах для профиля клиента.",
        "operationId": "mcpServicesInfo",
        "parameters": [
          {
            "name": "CompanyId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Идентификатор компании/агентства для запроса (необязательно, по умолчанию используется внутренний идентификатор компании)."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesInfoResponse"
                }
              }
            }
          }
        }
      }
    }
  }
}